一文学完Linux常用命令(建议收藏)

2022-11-10 00:00:00 路径 命令 文件 目录 内容

一、Linux 终端命令格式

1.终端命令格式

command [-options] [parameter]

说明:

  • command : 命令名,相应功能的英文单词或单词的缩写
  • [-options] : 选项,可用来对命令进行控制,也可以省略
  • parameter : 传给命令的参数,可以是 零个、一个 或者 多个

1.1 常用 Linux 命令的基本使用

序号 命令 对应英文 作用
01 ls list 查看当前目录下的内容
02 pwd print working derectory 查看当前所在文件夹
03 cd [目录名] change directory 切换文件夹
04 touch [文件名] touch 如果文件不存在,新建文件
05 mkdir [目录名] make directory 创建目录
06 rm [文件名] remove 删除指定的文件名
07 clear clear 清屏

2.查阅命令帮助信息

因为一个命令有很多可选项,死记硬背肯定不行,所以需要借助手册查阅.

2.1 --help 帮助信息

command --help

说明:

  • 显示 command 命令的帮助信息

缺点: 虽然可以查询命令的帮助信息,但是没有提供 翻页、搜索功能.

2.2 man 手册

man command

说明:

  • 查询command命令的使用手册

    manmanual 的缩写,是 Linux 提供的一个手册, 包含了绝大部分的命令、函数的详细使用说明.

使用 man 时的操作键:

操作键 功能
空格键 显示手册的下一屏
Enter 键 一次滚动首页也得一行
b 回滚一屏 向上翻屏
f 前滚一屏 forward 向下翻屏
q (quit) 退出
/word 搜索 word 字符串
n(next) 搜索下一个
N 搜索上一个

二、文件和目录常用命令

1. 查看目录内容

1.1 终端使用技巧

1) 自动补全
  • 在敲出 文件/ 目录 / 命令 的前几个字母之后,按下 tab
  • 如果还存在其他 文件 / 目录 / 命令,再按一下 tab 键,系统会提示可能存在的命令

2) 曾经使用过的命令

  • 使用 / 光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c

1.2 ls 命令说明

  • ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户常用的命令之一
  • 因为需要编辑服务器上的文件,所以需要先确认指定目录下 是否存在

linux 下文件和目录的特点

  • linux 文件 或者 目录 名称长可以 256 个字符
  • . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • .. 代表上一级目录

演练目标:

创建文件夹: mkdir  -p    /export/servers
进入/export/servers文件夹
1 创建文件 01.txt    touch 01.txt
2 创建隐藏文件 02.txt   touch .02.txt
3 罗列非隐藏文件 ls
4 罗列非隐藏文件和隐藏文件 ls  -a

1.3 ls 常用选项

如果 只使用 ls 命令 就只能看到当前目录下 非隐藏 文件。

如果想增强功能,就需要学习更多的选项

选项 英文 含义
-a all 显示指定目录下所有子目录与文件,包含隐藏文件
-l
以列表方式显示文件的详细信息
-h human-readable 配合 -l 以人性化的方式显示文件大小

演练目标:

1 切换到 /usr/tmp 清空内容   cd /usr/tmp      rm -rf aaa/
2 创建隐藏文件 非隐藏文件 目录   mkdir  aaa
3 查看当前目录内容 (缺点: 隐藏文件看不到)   ls
4 查看当前目录所有内容 (既包含隐藏,也包含非隐藏)    -a
5 查看目录内容的详细信息(查看文件类型、权限、大小等 缺点:文件大小没有单位)  -l
6 简化合并 查看目录内容的详细信息  ls -alh

计算机中文件大小的表示方式(科普)

单温 英文 含义
字节 B(byte) 在计算机中作为一个数字单元,一般为 8 位二进制数
K(Kibibyte) 1KB = 1024 B,千字节( 1024 = 2 的 10 次方)
M(Mebibyte) 1MB = 1024 KB,百万字节
千兆 G(Gigabytee) 1GB = 1024 MB,十亿字节,千兆字节
T(Terabyte) 1 TB = 1024 GB,万亿字节,太字节
P(Petabyte) 1 PB = 1024 PB,百万亿字节,拍字节

1.4 ls 和通配符的使用

准备工作

# 切换到临时目录(先使用,稍候讲解)
cd /usr/tmp

# 清空目录内容(先使用,稍候讲解)
rm -rf *

# 创建文件
touch a23.txt 11.txt 111.txt 112.txt 123.txt 223.txt 323.txt 423.txt 523.txt

# 查看目录内容
ls
通配符 含义
* 代表 任意个数 的字符
? 代表任意一个字符,且只能是一个

需求 1:

1 查看以 1 开头的文件或目录   ls 1*
2 查看以 3.txt 结尾的 文件或目录  ls *3.txt
3 查看含有3的文件列表  ls *3*
4 查看第二个字符是2的文件  ls ?2*
通配符 含义
[abc] 匹配 a、b、c 中任意一个
[a-f] 匹配从 a 到 f 范围内的任意一个字符

需求 2:

1 查看 个字符是 1到5,以23.txt结尾 的 目录或文件名    ls [1-5]*23.txt

常用: ls -alh

ls -alh / 列出来/目录下面详细的文件及目录

2.切换目录

2.1 cd

  • cd 是英文单词 change directory 的缩写,其功能为 更改当前的工作目录,也是用户常用的命令之一

    注意: linux 的所有 目录文件名 都是大小写敏感的

命令 含义
cd 目录 切换到指定目录下
cd .. 切换到上级目录
cd - 可以在近的两次目录之间切换

需求:

1 查看当前所在目录    pwd
2 切换到 /usr/local   cd /usr/local/
3 切换到 上一级目录 /usr    cd  ..   (..代表上一级目录)
4 后退到上一次访问的目录中  cd -

2.2 相对路径和路径

2.2.1 目标 : 通过 路径 找到 目标
2.2.2 如何分步骤实现:

步: 使用相对路径定位目标

第二步: 使用路径定位目标

2.2.3 步: 使用相对路径定位目标
  1. 特征: 相对路径 输入路径时,前面不是以 "/" 开始的,表示相对 当前目录 所在的位置
  2. 缺点: 参照工作目录 发生变化 相对路径也要发生变化
需求1: 当前工作目录是 /usr,使用相对路径 切换到 /usr/tmp 目录下

需求2: 当前工作目录是 /root,使用相对路径 切换到 /usr/tmp 目录下 cd ../usr/tmp/
2.2.4 第二步: 使用路径定位目标
  1. 特征: 路径 在输入路径时,前面是以 / 开始的,表示 从 根目录 开始的具体目录位置
  2. 优点: 定位准确,不会因为 工作目录变化 而变化
需求1: 当前工作目录是 /usr,使用相对路径 切换到 /usr/tmp 目录下

需求2: 当前工作目录是 /root,使用相对路径 切换到 /usr/tmp 目录下
2.2.5 小总结
  • 相对路径 在输入路径时,前面不是以 / 开始的 ,表示相对 当前目录 所在的目录位置
  • 路径 在输入路径时,前面是以 / 开始的,表示 从 根目录 开始的具体目录位置

3.创建和删除操作

3.1 touch

3.1.1 目标
  • 通过 touch 命令 创建文件
3.1.2 路径
  • 步: 创建一个空白文件
  • 第二步: 修改文件的末次修改日期
3.1.3 实现

步: 创建一个空白文件

touch 不存在的文件

第二步: 修改文件的末次访问时间

touch 存在的文件
3.1.4 小结

通过 touch 文件名 创建文件 和 修改文件的末次访问时间

3.2 mkdir

3.2.1 目标:
  • 通过 mkdir 命令 创建目录
3.2.2 路径:
  • 步: 创建 没有层级关系的目录
  • 第二步: 创建 有层级关系的目录
3.2.3 实现

yum -y install tree

步: 创建 没有层级关系的目录

mkdir 目录名

第二步: 创建 有层级关系 的目录

mkdir -p 目录1/目录2/目录3
  • 创建一个新的目录
选项 英文 含义
-p parent 可以递归创建目录
3.2.4 小结

通过 mkdir -p 目录名 命令 创建目录

注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名

3.3 rm

3.3.1 目标

通过 rm -rf 文件/目录 命令实现删除 文件和目录的功能,rm 对应的英文是 remove 含义: 删除

3.3.2 路径
  • 步: 删除文件 (有提示) rm 111.txt
  • 第二步: 删除文件 (取消提示) rm -f 11.txt
  • 第三步: 删除目录 rm
  • 第四步: rm 结合 通配符
3.3.3 实现

步: 删除文件 (有提示)

rm 文件

第二步: 删除文件 (取消提示)

rm -f 文件
参数 英文 含义
-f force (强制) 强制删除,忽略不存在的文件,无需提示

第三步: 删除有内容的目录

rm -rf 目录
参数 英文 含义
-r recursive (递归) 递归地删除目录下的内容,删除文件夹 时必须加此参数

第四步: rm 结合 通配符 * ? \[abc][a-z]

rm -rf *.txt
3.3.4 小结
  • 通过 rm -rf 文件/目录 完成删除 文件或目录的功能.

  • 注意: 使用 rm 命令要小心,因为文件删除后不能恢复

    rmdir 删除空文件夹

04.拷贝和移动文件

序号 命令 对应英文 作用
01 tree [目录名] tree 以树状图 列出目录中的内容
02 cp 源文件 目标文件 copy 复制文件或者目录
03 mv 源文件 目标文件 move 移动文件或目录 或者 重命名

4.1 tree (扩展)

4.2.1 目标
  • 通过 tree 命令可以以树状图列出文件目录结构.
  • 安装: yum -y install tree
4.2.2 路径
  • 步: 以树形结构显示目录中的文件和目录
  • 第二步: 只显示 当前目录中的目录
  • 第三步: 显示指定的两层
4.2.3 实现

准备工作

# 创建目录
mkdir -p /export/aaa/bbb/ccc

# 创建文件
touch /export/aaa/01.txt /export/aaa/02.txt
touch /export/aaa/bbb/03.txt /export/aaa/bbb/04.txt
touch /export/aaa/bbb/ccc/05.txt /export/aaa/bbb/ccc/06.txt

默认没有安装 tree 组件,需要联网时安装:

# 安装 tree组件
yum -y install tree

# 卸载 tree组件
yum -y remove tree

步: 以树形结构显示目录中的文件和目录

tree [目录]
  • 如果指定目录,就显示指定目录的内容
  • 如果不指定目录,就显示当前目录的内容

第二步: 只显示 当前目录中的目录

tree -d [目录]
选项 英文 含义
-d derictory (目录) 只显示目录,不显示文件

第三步: 显示指定的两层

tree -L n [目录]
选项 英文 含义
-L level (层级) 显示几层目录
4.2.4 小结
  • 通过 tree 目录 命令可以以树状图列出文件目录结构.

4.2 cp

4.2.1 目标
  • 通过 cp 实现复制将指定的 文件 或 目录 复制到 两一个 文件 或 目录中
4.2.2 路径
  • 步: 备份指定文件
  • 第二步: 将文件复制到目录中
  • 第三步: 将文件复制到另一个文件中,实现覆盖效果
  • 第四步: 复制目录 到指定 目录中
4.2.3 实现

步: 备份指定文件

cp  文件1  备份文件名

第二步: 将文件复制到目录中

cp 文件1 目录/

第三步: 将文件复制到另一个文件中,实现覆盖效果

cp 文件1 文件2(存在的)

第四步: 复制目录 到指定 目录中

cp -r 目录1/ 目录2/
命令 英文 作用
-r recursive (递归) 递归复制目标目录的内容
4.2.4 小结
  • cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录

4.3 mv (move)

4.3.1 目标
  • 通过mv 命令可以用来 移动 文件 或 目录,也可以给 文件或目录重命名
4.3.2 路径
  • 步: 将文件 移动 另一个目录中
  • 第二步: 重命名
  • 第三步: 将目录移动到 另一个目录中
4.3.3 实现

步: 将文件 移动 另一个目录中

mv 文件 目录/

第二步: 重命名

mv 旧文件名 新文件名

第三步: 将目录移动 到 另一个目录中

mv 被移动目录 目标目录
4.3.4 小结
  • mv 可以用来 移动 文件 或 目录,也可以给 文件或目录重命名

5. 查看文件内容

序号 命令 对应英文 作用
01 cat 文件名 concatenate 查看小文件内容
02 less -N 文件名 less 分频 显示大文件内容
03 head -n 文件名
查看文件的前一部分
04 tail -n 文件名
查看文件的部分
05 grep 关键字 文件名 grep 根据关键词,搜索文本文件内容

准备工作

# 清空指定目录内容
cd /export/
rm -rf *

#
 复制 /etc/passwd 文件 到 /export/ 目录中
cp /etc/passwd /export/

#
 复制 /etc/profile 文件 到 /export/ 目录中
cp /etc/profile /export/

#
 罗列目录中内容
tree /export

5.1 cat

5.1.1 目标

通过 cat 会一次显示所有的内容,适合 查看内容较少 的文本文件

5.1.2 路径
  • 步: 显示文件内容
  • 第二步: 显示文件内容(显示行号 包含空行)
  • 第三步: 显示文件内容(显示行号 排除空行)
5.1.3 实现

步: 显示文件内容(不显示行号)

cat 文件名

第二步: 显示文件内容(显示行号 包含空行)

cat -n 文件名
参数 英文 含义
-n number 显示行号
  • 缺点: 空行也显示行号

第三步: 显示文件内容(显示行号 排除空行)

cat -b 文件名
参数 英文 含义
-b number-nonblank 非空行 显示行号
  • nl 文件名 也可以实现 非空行显示行号的效果
命令 英文 含义
nl 文件 number lines of files 查看文件内容非空行显示行号
5.1.4 小结
  • 通过 cat 文件名 查看 小文件内容
  • 准备工作
# >> 重定向这个命令,为了课程需要 我们先用,后面我们会讲
重定向:
>    : 覆盖形式
>>   : 追加的形式

# 将文件 /etc/profile 的内容 追加到 /export/01.txt目录中
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt

5.2 less

5.2.1 目标
  • 通过 less [参数] 文件名 命令可以用于分屏显示文件内容, 每次只显示一页内容
  • less 命令适合查看 内容较多 的文本文件
5.2.2 路径
  • 步 : 分屏显示文件内容
  • 第二步 : 根据关键词搜索内容
5.2.3 实现

步 : 分屏显示文件内容

命令 作用
less -N 文件名 分屏展示文件内容,适合 大文件
参数 英文 含义
-N number 显示文件内容 且 显示行号

使用 less 的操作键:

操作键 功能
空格键 显示手册页的下一屏幕
Enter 键 一次滚动手册页的一行
b 回滚一屏 向上翻屏
f 向前一屏 向下翻屏
q 退出
/word 搜索 word 字符串

第二步: 根据关键词 搜索

# 根据关键词搜索
/word
操作键 功能
n 向下找
N 向上找
5.2.4 小结
  • less 命令适合查看 内容较多 的文本文件

more 01.txt 分屏显示文件的内容 向上翻屏 向下翻屏

  • 准备工作
# 准备一个26个字母的文件,使用 WINscp客户端 上传到 /export/ 目录下

5.3 head

5.3.1 目标
  • 通过 head 命令查看文档的前几行内容
5.3.2 路径
  • 步: 查看文件的前 5 行内容
5.3.3 实现

步:查看文件的前 5 行内容

head -n 数字 文件
参数 英文 含义
-n number 表示显示前几行内容
5.3.4 小结
  • 通过 head 命令查看文档的前几行内容

5.4 tail

5.4.1 目标
  • 需求: 查看文档(日志)的后几行内容
5.4.2 路径
  • 步: 查看文档的后 10 行内容
  • 第二步: 动态显示文档的后内容,一般用来查看日志
  • 第三步: 动态显示文档的后 10 行内容
5.4.3 实现
  • 步: 查看文档的后 10 行内容
tail -10 文件
  • 第二步: 动态显示文档的后内容,一般用来查看日志
tail -f 文件名

  • 第三步: 动态显示文档的后 100 行内容
tail -100f 文件名
5.4.4 小结
  • 通过 tail -10f 文件 命令 查看文档(日志)的后几行内容

5.5 grep

5.5.1 目标
  • 通过 grep 命令 搜索存在 关键字 的行
5.5.2 路径
  • 步: 搜索 存在关键字 的行
  • 第二步: 搜索 存在关键字 的行 且 显示行号
  • 第三步: 忽略大小写 搜索 存在关键字 的行
  • 第四步: 搜索 不存在关键字 的行
  • 第五步: 搜索 以关键字开始 的行 或 以关键字结尾 的行
5.5.3 实现

步: 搜索 存在关键字 的行

grep 关键字 文件名

第二步: 搜索 存在关键字 的行 且 显示行号

grep -n 关键字 文件名
选项 英文 含义
-n number 显示匹配行和行号

第三步: 忽略大小写 搜索 存在关键字 的行

grep -i 关键字 文件名
选项 英文 含义
-i ignore-case 忽略大小写

第四步: 搜索 不存在关键字 的行

grep -v 关键字 文件名
选项 英文 含义
-v invert-match 显示 不包含关键字 的所有行

第五步: 搜索 以关键字开始 的行 或 以关键字结尾 的行

grep 正则 文件名
参数 含义
^a 行首,搜索以 a 开头的行
ke$ 行尾,搜索以 ke 结束的行
5.3.4 小结
  • 通过 grep 命令 搜索存在 关键字 的行

6. 其他

6.1 管道 |

6.1.1 目标
  • 通过 命令1 | 命令2 可以将命令 1 的结果 通过 命令 2 作进一步的处理
6.1.2 路径
  • 步 : 过滤 /etc/ 目录下 以 pro 开头的文件
  • 第二步 : 搜索 存在关键字 的行数
6.1.3 实现

步: 过滤 /etc/ 目录下 以 pro 开头的文件

ls /etc/ | grep ^pro

第二步: 搜索存在关键字的行数

ls /etc | grep ^pro |  wc -l

英文 作用
命令: wc [参数] [文件]
打印文件的行数,单词数,字节数
参数: -l line 行 显示 行数
6.1.4 小结
  • 通过 命令1 | 命令2 可以将命令 1 的结果 通过 命令 2 作进一步的处理

6.2 echo 文字内容

  • echo string 将字符串输出到控制台 , 通常会和 重定向 联合使用
echo hello

# 如果字符串有空格,为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"

6.3 重定向 >(覆盖) 和 >>(追加)

6.3.1 目标
  • 默认情况下 命令的结果 输出到 控制台
  • 通过 重定向 可以将结果 输出到文件
6.3.2 路径
  • 步: 将 命令的成功结果 覆盖 指定文件内容
  • 第二步: 将 命令的成功结果 追加 指定文件的后面
6.3.3 实现
  • 步: 将命令的成功结果 覆盖 指定文件内容
echo 2222 > 01.txt
命令 作用
结果 > 文件名 > 表示输出,会覆盖文件的原有内容
  • 第二步: 将命令的成功结果 追加 指定文件的后面
echo 3333333 >> 01.txt
命令 作用
命令 >> 文件名 >> 表示追加,会将内容追加到已有文件的末尾
  • 第三步: 将 命令的失败结果 追加 指定文件的后面
cat 不存在的目录  &>>  error.log

或者
cat  不存在的文件   2>&1 error.log
命令 作用
命令 &>> 文件 &>> 表示不区分错误类型 通通放到 日志中
6.3.4 小结
  • 通过 命令 > 文件命令的成功结果 覆盖 指定文件内容
  • 通过 命令 >> 文件命令的成功结果 追加 指定文件的后面
  • 通过 命令 &>> 文件命令的失败结果 追加 指定文件的后面

6.4 && 和 ||

6.4.1 目标
  • 如果 创建 目录 成功, 就提示 创建成功
  • 如果 创建 目录 失败, 就提示 创建失败
6.4.2 实现

步: 如果 创建 目录 成功, 就提示 创建成功

命令 作用
命令 1 && 命令 2 如果 命令1执行成功了,才执行 命令2
mkdir -p 正确目录 && echo "提示创建目录成功"

第二步: 如果 创建 目录 失败, 就提示 创建失败

命令 作用
命令 1 || 命令 2 如果 命令1 执行失败了,才执行 命令2
mkdir 错误目录 || echo "提示创建目录失败"
6.4.3 小结:
  • 通过 命令1 && 命令2 实现 如果 命令 1 执行成功,就执行 命令 2 的效果
  • 通过 命令1 || 命令2 实现 如果 命令 1 执行失败,就执行 命令 2 的效果

准备工作

0 清空/export目录中内容
cd /export && rm -rf *

# 1 创建目录
mkdir -p /export/aaa/bbb/ccc/ddd/eee

# 2 创建文件
touch /export/aaa/bbb/ccc/ddd/eee/01.txt /export/aaa/bbb/ccc/ddd/eee/02.txt

# 3 切换到 /export/aaa/bbb/ccc/ddd/eee/ 目录下 且 查看内容
# 3.1 cd /export/aaa/bbb/ccc/ddd/eee/ && ll
# 3.2 软链接(快捷方式)   cd 软链接 && ll

6.5 软链接(类似与 快捷方式)

  • 在 linux 中 文件名内容 是两个文件,分开的!!
  • 创建软链接的原理,如下!
6.5.1 目标
  • 因为 某些文件和目录 的 路径很深,所以 需要增加 软链接(快捷方式)
6.5.2 实现

语法如下:

命令 英文 作用
ln -s 目标文件路径 快捷方式路径 link 给目标文件增加一个软链接,通俗讲就是快捷方式
6.5.3 小结
  • 通过 ln -s 源文件的路径 快捷方式路径目标文件 增加 快捷方式
  • 注意: 必须 增加 -s ,否则 就变成了 硬链接 ,原理如下:

--END--

相关文章