Linux常用命令
一、查看及切换目录(pwd、cd、ls、du)
查看当前的工作目录 —— pwd
pwd 显示用户当前所在的工作目录位置
示例: [root@localhost]# pwd
/root (当前工作目录)
切换工作目录 —— cd
- 将用户的工作目录更改到其他位置
格式 | 说明 |
---|---|
cd 目标位置 | 切换到目标位置 |
cd ~ cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd - | 切换到上一次执行cd命令之前所在的目录 |
- 绝对路径(以根目录为起点的路径)
- 相对路径(以当前所在的目录情况为起点)
相对路径的表现形式
表现形式 | 说明 | 示例 |
---|---|---|
直接使用目录名或文件名 | 标识当前工作目录中的子目录、文件的位置 | grub.conf |
以一个点号“.”开头 | 标识以当前的工作目录作为起点 | ./grub.conf |
以两个点号“. .”开头 | 表示以当前目录的上一级目录(父目录)作为起点 | . ./vmlinuz |
以"~用户名”形式开头 | 表示以指定用户的宿主目录作为起点 | ~teacher |
以“~”形式开头 | 表示以当前用户的宿主目录作为起点 | ~ |
列表显示目录内容 —— ls
1. 显示目录中内容,包括子目录和文件行管属性信息
ls [选项] [文件目录]
- ls的常用选项
-l:以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。ll命令与ls -l功能相同。 -a:显示所有(All)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录和隐藏文件。 -A:与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前目录的“.”和表示父目录的“..”。 -d:显示目录(Directory)本身的属性,而不是显示目录中的内容 -h:以跟人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后显示KB、MB等单位,此选项需要结合 -l 选项一起使用 -R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容。 --color:在字符模式中以颜色区分不同的文件。默认已开启 深蓝色表示目录,黑色或者白色表示一般文件,绿色表示可执行的文件,黄色表示设备的文件,红色表示压缩文件。 -i:显示文件和目录的inode号 -t:以时间排序,最新的文件会排在上面。 -r:表示反向排序、倒序输出
用ls -l命令查看某一个目录会得到一个7个字段的列表
-
第1个字段:文件属性字
第一个字符表示文件的类型: -:表示该文件是一个普通文件 d:表示该文件是一个目录 l:表示该文件是一个软链接文件。类似于Windows下的快捷方式 第1字符的后面9个字母表示该文件目录的权限位: r表示读(查看、下载)、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录) 其中前三个表示文件拥有者(属主)的权限,中间是哪个表示文件所属组拥有的权限,最后三个表示其他用户拥有得权限。
-
第2个字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数 如果是一个目录,则第二字段表示该目录所含子目录的个数 如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录
-
第3个字段:文件\目录拥有者
-
第4个字段:文件\目录拥有者所在的组
-
第5个字段:文件所占用的空间(默认以字节为单位)
如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小。 Linux系统中一起切皆是文件,因此目录也是一种文件。
-
第6个字段:文件\目录最近访问或修改时间
-
第7个字段:文件名
如果是一个符号链接(软链接文件),那么会有一个“->”箭头符号,后面跟一个它指向的文件名。
结合通配符
"?":代表任意一个字符,有且一个字符
"*":代表任意数个字符,可以是0个或者1个或者多个
"[]":表示可以匹配字符组中的任意一个字符
[abc]、[a-f]
统计目录及文件空间占用情况 —— du
-
统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录...]
-
常用选项
选项 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以kB计数,但不显示单位)显示出统计结果 |
-s | 只统计所占用空间总的大小,而不是统计每个子目录、文件大小 |
-max-depth=n | 统计所有小于等于第n层的目录的总大小 |
注:选项-a和-s不可同时使用
比如:统计出/var/log目录中子目录的大小
du -h --max-depth=1 /var/log/
二、创建目录和文件(mkdir、touch、ln)
创建新目录 —— mkdir
mkdir [选项] 目录位置及名称(选项中:-p:一次性创建嵌套的多层目录)
示例:
在当前目录下创建名为 puplic_html 的子目录
mkdir public_html
示例:
创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc
mkdir -p /aa/bb/cc
创建空文件 —— touch
-
更新文件的时间标记
-
经常用于创建多个新的空文件
touch 文件 ...
示例:
创建两个空文件,文件名分别为 aa.txt和bb.txt touch aa bb touch{a,b}.txt
创建链接文件 —— ln
-
为文件或目录建立链接文件,类似于Windows系统的快捷方式
-
链接文件类型
软链接(又称为符号链接) 硬链接 ln 源文件或目录...链接文件或目标位置(创建软链接在源文件或目录前加[ls]) 注:创建软链接最好用绝对路径
文件类型 | 软链接文件 | 硬链接文件 |
---|---|---|
删除源文件后 | 失败· | 仍然可用(文件占用空间与源文件相同) |
使用范围 | 适用于文件或目录 | 仅适用于文件 |
保存位置 | 与源文件可在不通的文件系统中 | 必须与源文件在同一个文件系统(即同一个分区)中 |
与源文件的关系 | 相当于快捷方式 | 相当于给文件起个别名 |
inode号码 | inode号码不同 | inode号码相同 |
三、复制、删除、移动目录和文件(cp、rm、mv)
复制文件或目录 —— cp
-
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp [选项]...源文件或目录...目标文件或目录
-
常用选项
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制复制 -i:覆盖目标同名文件或目录时提醒用户确认 -p:复制时保持源文件的权限、属性及时间标记等属性不变 -r:复制目录时必须使用此选项,表示递归复制所有文件及子目录 注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
删除文件或目录 —— rm
-
删除指定的文件或目录
rm [选项] 要删除的文件或目录...
-
常用选项
-f:删除文件或目录时不进行提醒,而直接强制删除 -i:删除文件或目录时提醒用户确认。(y表示删除,n表示不删除) -r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。 注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。 删除目录下文件时建议最好先切换到目录下载执行rm -rf命令
移动文件或目录 —— mv
-
将指定的文件或目录转移位置
-
如果目标位置与源位置相同,则相当于执行重命名操作
mv [选项]...源文件或目录...目标文件或目录
四、查找目录和文件(which、find)
查找命令文件存放目录 —— which
- 搜索范围由环境变量 PATH 决定(echo $PATH)
which 命令|程序名 //默认当找到第一个目标后不再继续查找 或 which -a 命令|程序名 //在所有搜索了路径中查找 示例: which ls shich history 使用which查找内部命令是,将找不到对应的程序
查找文件或目录 —— find
- 采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
- 常用查找条件类型
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用 “*” 及 “? ”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用 “+”、“-” 号设置超过或下雨指定的大小作为查找条件 常用的容量单位包括kB(注意k是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 块设备文件(b): 成块读取数据的设备(硬盘、内存、光驱) 字符设备文件(c):按单个字符读取数据的设备(键盘、鼠标) |
使用 find 命令实现多个查找条件
-
各表达式之间使用逻辑运算符
-a: 表示 而且(and)
-o:表示 或者(or)示例:
find /boot -size +1024k -a -name "vmlinuz*" #根据大小查找/boot目录下大于1024k且名字以vmlinuz结尾的文件
find /boot -size +1024k -o -name "vmlinuz*" #根据大小查找/boot目录下大于1024k或名字以vmlinuz结尾的文件
find之exec用法
-
-exec参数后面跟的是Linux命令,它是以分好“;”为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符“\”
{}代表前面find查找出来的文件名。 -
find 命令匹配到了当前目录下的所有普通文件,并在 -exec 选项中使用 ls -l 命令将它们列出
find ./-type f-exec ls -l {}\;
五、命令执行的优先级
- 第一优先级:指定路径的命令。绝对路径 /usr/bin/ls 或者相对路径 cd/usr、bin ./ls
- 第二优先级:别名指定的命令 allas myls=‘/usr/bin/ls -alh'
- 第三优先级:内部命令
- 第四优先级:hash命令
linux系统下回有一个hash表,当你正开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell皆是默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell皆是器首先会查看hash表,没有该命令才会去PATH路径下寻找,hash表能提高命令的调用速率。
- 第五优先级:通过 PATH 定义的查找顺序查找
如果以上顺序都找不到,就会宝“未找到命令...”的错误