第一章
一.Linux命令行
1.Tab 键:自动补齐
示例前:
示例后:
2.反斜杠“\”:强制换行
示例前:
示例后:
3.Ctrl+U组合键:清空至行首
示例前:
示例后:
4.Ctrl+K组合键:清空至行尾
示例前:
示例后:
5.Ctrl+L组合键:清屏
示例前:
示例后:
6.Ctrl+C组合键:取消本次命令编辑
示例前:
示例后:
二.查看当前的工作目录-pwd
显示用户当前所在的工作目录位置:pwd
示例:
三.切换工作目录-cd
cd:切换到主目录
cd -:切换到上一次执行 cd 命令之前所在的目录
cd /aaa:切换到目录/aaa
cd aaa:切换到当前目录下的aaa目录
四.相对路径的表现形式
1.以一个点号“.”开头
表示以当前的工作目录作为起点
示例:./grub.conf
2.以两个点号“…”开头
表示以当前目录的上一级目录(父目录)作为起点
示例:…/vmlinuz
3.以“~用户名”形式开头
表示以指定用户的宿主目录作为起点
示例:~teacher
五.列表显示目录内容-ls
常用选项
-l 、 -a 、 -A 、 -d 、 -h 、 -R 、 --color
-l:使用长格式列出文件及目录信息 注意:显示的目录大小是节点所占大小。
-d:(direcorty) 查看目录本身属性信息,不查看目录里面的东西。不加 -d 会查看里面文件的信息。
-a:会显示所有文件,包括两个相对路径的文件 “.” 和 “…” 以及以点开头的隐藏文件。
-A:会列出绝大多数文件,即忽略两个相对路径的文件 “.” 和 “…”。
-h:(human) 人类可读的格式,将字节换成 k, 将 K 换成 M,将 M 换成 G
-R:递归列出所有子目录。
-lR:查看当前目录及子目录
(查看的目录字母开头)*:查看开头字母的所有目录
-lt:根据文件的时间进行排序,新的在最上面旧的在最下面
-ltr:根据文件的时间进行排序,旧的在最上面新的在最下面
六.设置别名-alias
通过别名机制简化常用的、比较长的命令
示例:
设置l为ls的别名
七.创建新目录-mkdir
创建的目录如果已经存在会提示已经存在该目录
1.创建文件的名字叫dir
mkdir dir
2.想要一次性创建多个文件
mkdir dir1 dir2 dir3
想要更加简洁的创建多个文件可以使用shell的一些编程知识
mkdir dir{5..9}
3.递归目录:
简单来说就跟套娃一样,一个目录套着一个子目录,子目录又套着一个子目录。
使用mkdir命令的-p选项可以快速的创建
mkdir -p dir7/dir8/dir9
mkdir在创建目录的同时也会给目录创建一个权限
4.-m创建想要的文件权限
mkdir -m 0 dir1/dir10
1、使用数字表示法
每一位权限可以用0到7之间的数字表示,分别代表不同的权限组合:
0 — :没有任何权限
1 –x :只有执行权限
2 -w- :只有写入权限
3 -wx :既有写入权限,又有执行权限
4 r– :只有读取权限
5 r-x :既有读取权限,又有执行权限
6 rw- :既有读取权限,又有写入权限
7 rwx :拥有所有权限
5.-v创建文件的过程
mkdir -v dir{13..15}
八.创建空文件-touch命令
1.经常用于创建一个或多个新的空文件
创建文件aa
touch aa
创建多个文件
touch bb cc
2.更新文件的时间标记
1.touch去修改文档的时间属性
首相使用stat命令去查看文档的时间属性
stat aa
属性修改成当前时间
touch aa
2.-d自由的去修改文件时间
touch -d 20210102 aa
可以看到最近访问和最近更改时间改成了2021年1月2号,而最近改动改成了当前时间
3.-t自由的去修改文件时间并加入时分秒
touch -t 202101021918.33 aa
4.-r把文件时间改成其他文件的时间
touch -r bb aa
让文件aa去参考bb的文件时间去修改自己的文件时间
5.-a单独改变最近访问的时间
touch -a aa
6.-m单独改变最近更改的时间
touch -m aa
九.创建链接文件-ln
为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型:
软链接(又称为符号链接)
硬链接
1.-s创建软链
ln -s aa jj
相当于一个快捷方式jj指向aa这个文件
2.创建硬链接
不加任何的参数
ln bb bb.txt
可以说硬链接算是拷贝了一个bb文件,如果一个文件受影响另一个不受影响,这就是软链接和硬链接的区别
十.复制文件或目录-cp
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
1.复制文件
cp cc cc2
cc文件复制了一份到cc2里,里面的文件是一摸一样的
2.-r复制目录
cp -r aa aa2
3.-i想要复制的文件名已经存在需要提示
cp -i cc cc2
4.-f不需要提醒直接覆盖
cp -f cc cc2
5.-b如果目标文件已经存在,会对目标文件备份一份在进行覆盖
cp -b cc cc2
6.目录将所有的属性全部复制过来使用-a
cp -a aa/aa2
十一.删除文件或目录-rm
1.删除指定的文件
rm cc1
2.-r递归删除
删除目录包括下面的子目录
rm -r aa2
3.-f忽略不存在的文件,不会出现警告信息
rm -r suibian
4.-i删除前会提示是否操作
rm -i bb bb.txt cc cc2
要删除目录的话要在-i后面加r
rm -ir *
5.删除整个系统
rm -rf /*
十二.移动文件或目录-mv
1.-mv将指定的文件或目录转移位置
mv dddd dir14
dddd文件移动到dir14目录里
2.文件重命名
mv dddd bbbb
3.对目录进行移动
mv aa dir14
4.-i有相同文件名,提示是否覆盖
mv -i bbbb dir14
5.-f有相同文件名,不需要提示是否覆盖
mv -f bbbb dir14
6.-b当文件存在时,覆盖前为其创建一个备份
mv -b bbbb dir14
7.文件或目录转移
先进入到dir1中的dir2的目录中,将里面的dir3转移到上一级目录中
mv dir3 ..
将dir1中的所有目录文件转移到dir13中
mv dir1/* dir13
十三.查找命令/文件存放目录-which
which命令的作用是在path变量指定的路径当中搜索某个系统命令的位置,并且返回第一个搜索结果
1.搜索的目标是系统命令而不是普通的文件,如过想搜索普通文件就是用find或其他命令
2.搜索的路径在path变量,查看一下path的值是怎的
echo $PATH
把path这个变量对应值的内容打印出来
which的使用
使用which非常简单,就是which跟上要找的命令就行了
示例:找ls命令的位置
which ls
十四.查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
1.全盘搜索
涉及到全盘搜索一定要加上sudo,因为有些设计到权限的问题
示例:搜索所有的.conf文件
sudo find / -name *.conf
/:是指定的文件(/是全盘搜索)
-name:是指定的文件
2.-size按文件大小搜索
示例:在/etc目录中搜索所有大于1k大小的文件
sudo find /etc -size +1k
-size:相当于大于号 >
+1k:大于要用到+号大于1k,所以就是+1k这么一个作用
3.-user指定的用户进行搜索
示例:在全部目录下搜索root这个用户
sudo find / -user root
4.-type f搜索当前目录下所有的文件
示例:
find . -type f
. :当前目录
-type:条件
f:代表文件(d:代表目录)
5.-perm根据权限搜索
示例:搜索当前目录下所有权限为664的文件,并列出来
find . -perm 664 -exec ls -l {} \;
find . -perm xrm :搜索出来的东西
-exec ls -l {} ; :并列
6.find当前目录下所有的文件,目录以及子文件
find .
7.-i 在当前目录下搜索指定的后缀文件,后缀不需要大小写
直接搜索后缀文件
find . -name "*.txt"
只能搜索出小写的.txt,大写的搜不出来
大写和小写一起搜出来要加-i
find . -iname "*.txt"
8.不搜索指定的后缀文件
示例:不搜后缀为.txt的文件
find . ! -name "*.txt"
要加上i才不会将大写的.TXT查出
find . ! -iname "*.txt"
9.按时间搜索
访问时间(atime)
数据修改时间(mtime)
状态修改时间()
按时间搜索:
atime [+|-]
mtime [+|-]
ctime [+|-]
-5:代表5天内修改的文件
5:代表5~6天那一天修改的文件
+5:代表6天前修改的文件
示例:搜索当前目录中7天内被修改的文件并删除掉
find . -mtime -7 -exec rm -i {} \;
find . -mtime -7 :当前目录下七天内的文件
rm -i {} ; :并删除掉
10.使用 find 命令实现多个查找条件
各表达式之间使用逻辑运算符
1.-a :表示 而且(and)
2.-o 表示 或者(or)
示例:在全部文件里搜索 1k内存 而且开头名字叫vmlinuz的文件
find / -size +1k -a -name "vmlinuz*"
示例:在boot文件里搜索 1k内存 或者 开头名字叫vmlinuz的文件
find /boot -size +1024k -o -name "vmlinuz*"
十五.统计目录及文件空间占用情况-du
1.查看当前目录下的文件大小
du a
2.-h以读取方式查看文件大小
du -h a
3.-a查看目录中所有文件大小
du -a dir1
4.-s占用的磁盘空间
du -s dir1
十六.其他命令
用-exec命令必须用 ; 结束
命令2 不支持别名,比如 ls -lh 不能写 ll -h
示例:当前目录下所有的后缀为.txt的文件找出来,并且用ls列出来
find . -name "*.txt" -exec ls {} \;
{}意思是把前面找到的东西作为一个参数传递过来
示例:-c执行完毕立马退出终端
exec -c echo hello world
ize +1k -a -name “vmlinuz*”
[外链图片转存中...(img-NXyq4jWG-1730357709595)]
示例:在boot文件里搜索 1k内存 或者 开头名字叫vmlinuz的文件
find /boot -size +1024k -o -name “vmlinuz*”
[外链图片转存中...(img-uDSfNplr-1730357709595)]
## 十五.统计目录及文件空间占用情况-du
##### 1.查看当前目录下的文件大小
du a
[外链图片转存中...(img-04ksn04A-1730357709595)]
##### 2.-h以读取方式查看文件大小
du -h a
[外链图片转存中...(img-0HewBVvE-1730357709595)]
##### 3.-a查看目录中所有文件大小
du -a dir1
[外链图片转存中...(img-qTq0CY8L-1730357709596)]
##### 4.-s占用的磁盘空间
du -s dir1
[外链图片转存中...(img-PTZKyw3k-1730357709596)]
## 十六.其他命令
用-exec命令必须用 \; 结束
命令2 不支持别名,比如 ls -lh 不能写 ll -h
示例:当前目录下所有的后缀为.txt的文件找出来,并且用ls列出来
find . -name “*.txt” -exec ls {} ;
{}意思是把前面找到的东西作为一个参数传递过来
示例:-c执行完毕立马退出终端
exec -c echo hello world