第一章:Linux 最基础命令
特别提醒:此篇教程的所有命令是在Ubuntu 系统中进行的,如果是其他的 Linux 系统,那么可能有一小部分命令没有效果,这是正常的,特意在此提醒一下。
一、Linux 命令小技巧
# 放大缩小终端字体【针对图形界面的终端】
ctrl + = # 放大终端窗口的字体显示
ctrl + - # 缩小终端窗口的字体显示
# 自动补全快捷键
- 在敲出 【文件|目录|命令】 的前几个字母之后,按下 【tab 键】,如果输入的没有歧义,系统会自动补全
- 如果还存在其他 【文件|目录|命令】,再按一下 【tab 键】,系统会提示可能存在的【文件|目录|命令】
# 来回切换使用过的命令
- 按 【上|下】 光标键可以在曾经使用过的命令之间来回切换
- 如果想要退出选择,并且不想执行当前选中的命令,可以按 【ctrl + c】
# Linux 终端命令格式
command [-options] [parameter]
# 终端命令格式的说明
command # 命令名,相应功能的英文单词或单词的缩写
[-options] # 表示选项,可用来对命令进行控制,也可以省略【加了中括号表示可选】
parameter # 传给命令的参数,可以是 零个、一个 或者 多个
[parameter] # [] 代表可选;[parameter] 代表可选参数
# 举例说明
ls -lh /root # 【ls】是命令名,【-lh】是选项, 【/root】是参数
二、最常用的 Linux 命令
# ls 命令,对应英文是 list,用于查看文件夹下的内容
ls # 查看当前目录下的文件
ls /home # 查看 /home 目录下的文件
# pwd 命令,对应英文是 print work directory,用于查看当前所在目录
pwd # 查看当前所在目录
# cd 命令,对应英文是 change directory,用于切换目录
cd /home # 切换到 /home 目录
cd / # 切换到根目录
cd . # . 代表当前目录,所以这条命令不会发生目录切换
cd .. # 切换到上一级目录
cd - # 切换到上一次所在目录
# touch 命令,用于新建文件【注意:是文件,而不是目录】
touch hello.txt # 如果 hello.txt 文件不存在,那么就会新建此文件。如果存在,就会修改文件的末次修改日期
# mkdir 命令,对应英文是 make directory,用于创建目录
mkdir hello # 再当前目录下新建 hello 目录
# rm 命令,对应英文是 remove,用于删除指定的文件或目录
rm hello.txt # 删除 hello.txt 文件
rm hello # 删除 hello 目录,将提示:rm: cannot remove 'hello': Is a directory。【必须加 -r 选项】
rm -rf hello # r 表示递归删除,f 表示强制删除。所以,如果 hello 目录不为空,也是可以删除的
# 清除屏幕
clear
CTRL + L
# 万能帮助命令: help man info
mkdir --help # 查看 mkdir 命令的用法
man mkdir # 查看 mkdir 命令的用法,使用空格向下翻页【使用 q 退出】。man 是 manual 的缩写
info mkdir # 查看 mkdir 命令的用法,使用空格向下翻页【使用 q 退出】。info 是 information 的缩写
三、通配符介绍
| 通配符 | 具体含义 | 使用示例 |
|---|---|---|
| * | 代表任意个数个字符 | ls *.txt |
| ? | 代表任意一个字符,至少一个 | ls 1?1.txt |
| [] | 表示可以匹配字符组中的任意一个 | 参考如下示例 |
| [abc] | 匹配 a,b,c 中的任意一个 | ls [12345]23.txt |
| [a-f] | 匹配 a 到 f 范围内任意一个 | ls [1-6]21.txt |
第二章:文件和目录相关命令
一、文件和目录特点
# Linux 下文件和目录的特点
1、Linux 文件或者目录名称最长可以有 256 个字符
2、以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
3、. 代表当前目录
4、.. 代表上一级目录
二、ls 命令说明及使用
ls 命令 是英文单词 list 的简写,其功能为列出目录的内容 ,是用户最常用的命令之一,类似于 DOS 系统里面的 dir 命令 。 接下来就来介绍一下这个命令的常用参数选项,如下:
# ls 命令常用参数选项,其含义如下:
1、参数 -a 可以显示指定目录下所有的子目录与文件,包括隐藏文件
2、参数 -l 能够以列表的方式显示文件的详细信息
3、参数 -h 需配合参数 -l 以人性化的方式显示文件大小【以 KB,MB,GB 为单位】
4、参数 -r 表示逆序显示
5、参数 -R 表示递归显示
6、参数 -t 表示按照时间顺序显示
# ls 命令的基本使用
ls # 列出当前目录的所有内容,不包括隐藏文件
ls -a # 列出当前目录的所有内容,包括隐藏文件
ls -l # 列出当前目录的所有内容,以列表的方式展示
ls -l -h # 列出当前目录的所有内容,以列表的方式展示,且更人性化
ls -lh # 等同于上一条命令,是上一条命令的简写
ls -lha # 列出当前目录的所有内容,展示效果自行看参数
ls -lharRt # 列出当前目录的所有内容,展示效果自行看参数
ls 命令 结合通配符使用。 示例如下:
# ls 命令结合通配符使用。通配符的使用参考本篇博客第一章第三节即可
ls hello* # 查看以 hello 开头的文件或目录
ls *hello # 查看以 hello 结尾的文件或目录
ls *hello* # 查看包含 hello 的文件或目录
ls 1?1.txt # 匹配结果举例:111.txt、121.txt、131.txt 等,但不包括 11.txt
ls ?2?.txt # 匹配结果举例:121.txt、222.txt、321.txt 等
ls 1*1.txt # 匹配结果举例:111.txt、121.txt、131.txt 等,且包括 11.txt
ls [123]23.txt # 匹配结果:123.txt、223.txt、323.txt
ls [135]23.txt # 匹配结果:123.txt、323.txt、523.txt
ls [1-4]23.txt # 匹配结果:123.txt、223.txt、323.txt、423.txt
ls [1-5]23.txt # 匹配结果:123.txt、223.txt、323.txt、423.txt、523.txt
四、cd 命令说明及使用
cd 命令 是英文单词 change directory 的简写,其功能为更改当前的工作目录 ,也是用户最常用的命令之一。注意:Linux 所有的 目录和文件名 都是大小写敏感的。 具体使用如下:
# 相对路径和绝对路径的概念:
相对路径:在输入路径时,最前面不是【/或者~】,表示相对【当前目录】所在的目录位置
绝对路径:在输入路径时,最前面是【/或者~】,表示从【根目录/家目录】开始的具体目录位置
# cd 命令的使用
cd # 切换到当前用户的主目录(/home/用户目录)
cd ~ # 切换到当前用户的主目录(/home/用户目录)
cd . # 保持在当前目录不变
cd .. # 切换到上级目录
cd - # 可以在最近两次工作目录之间来回切换
cd /home # 切换到 /home 目录
cd / # 切换到根目录
五、touch 命令说明及使用
touch 命令 用于 创建文件或修改文件时间【如果文件已经存在】。如果文件不存在,那就创建此文件;如果文件已经存在,那就修改文件的末次修改日期,不改变文件里面的内容。 使用如下:
# touch 命令,用于新建文件【注意:是文件,而不是目录】
touch hello.txt # 若 hello.txt 文件不存在,则新建此文件。若存在,就会修改此文件的末次修改日期
touch 123.txt 456.txt # 同时创建多个文件
touch --version # 显示 touch 的版本信息
六、mkdir 命令说明及使用
mkdir 命令 用于 创建一个新的目录,选项 -p 可以递归创建目录。 示例如下:
# mkdir 命令的使用
mkdir hello # 创建 hello 目录
mkdir aa/bb/cc # 创建多级目录,但是没有 -p 选项,因此创建失败
mkdir -p aa/bb/cc # 创建多级目录,-p 选项可递归创建目录
七、rm 命令说明及使用
rm 命令 用于删除文件或目录。使用此要小心,因为文件删除后不能恢复。 示例如下:
# rm 命令的两个选项
-r 递归地删除目录下的内容,【删除文件夹】时必须加此参数
-f 强制删除,忽略不存在的文件,无需提示
# rm 命令使用示例
rm hello # 删除 hello 文件文件。若 hello 是目录,则会报错 ==> rm: cannot remove 'hello': Is a directory
rm -rf aa # 删除 aa 文件夹
rm -rf /* # 这个命令一定谨慎使用【千万小心】,否则你的 Linux 系统就没了
第三章:移动和复制相关命令
| 命令 | 对应英文 | 作用 |
|---|---|---|
| tree [目录名] | tree | 以树状图列出文件目录结构 |
| cp 源文件 目标文件 | copy | 复制文件或目录 |
| mv 源文件 目标文件 | move | 移动文件或目录,也可以重命名文件和目录 |
一、tree 命令
tree 命令 可以以树状图列出文件目录结构, 选项 -d 表示只显示目录。 示例如下:
# 安装 tree 命令
apt install -y tree # Ubuntu 系统使用这条命令安装 tree ,其他 Linux 系统使用如下命令
yum install -y tree # 如果系统未安装 tree 命令,那就使用这条命令进行安装
# tree 命令使用示例
tree # 列出当前文件或目录
tree -d # 列出当前目录,不包含文件
tree ~ # 列出当前用户家目录下的文件和目录
tree / # 列出根目录下的文件或目录
二、cp 命令
cp 命令 的功能是将给出的文件或目录复制到另一个文件或目录中,相当于 DOS 下的 copy 命令。 使用如下:
# 两个选项
-i 表示如果复制的目标路径下已有相同文件,那么覆盖文件前会进行提示【建议使用,防止误操作,把原有的文件给覆盖了】
-r 若给出的源文件是一个目录,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
# cp 命令使用示例
cp hello /hello # 将当前目录下的 hello 文件复制到根目录下
cp -r hello HELLO # 将当前目录下的 hello 目录复制到 HELLO 目录中
cp -i hello AA # 将 hello 文件复制为 AA ,如果 AA 文件存在,则进行提示
三、mv 命令
mv 命令 可以用来移动文件或目录,也可以给文件或目录重命名。 使用如下:
# 一个选项
-i 表示如果移动的目标路径下已有相同文件,那么覆盖文件前会进行提示
# mv 命令使用示例
mv hello / # 将当前目录下的 hello 文件或目录移动到根目录下
mv hello HELLO # 将 hello 目录重命名为 HELLO
mv -i hello AA # 将 hello 重命名为 AA ,如果 AA 存在,则进行提示
第四章:内容查看相关命令
| 命令 | 对应英文 | 作用 |
|---|---|---|
| cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
| more 文件名 | more | 分屏显示文件内容 |
| grep 搜索文本 文件名 | grep | 搜索文本文件内容 |
一、cat 命令
cat 命令 可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能。而且,此命令会一次显示所有的内容,适合 查看内容较少 的文本文件。 具体使用如下:
# 两个选项
-b 表示对非空输出行编号
-n 表示对输出的所有行编号
# cat 命令示例
cat hello.txt # 不显示行号,即不知道这个文件有多少行内容
cat -b hello.txt # 空行不显示行号
cat -n hello.txt # 所有行都显示行号,包括空行
cat 123.txt -b # 空行不编号
cat 123.txt -n # 显示所有的行,空行也编号
cat install.log.syslog | grep 1981 -n # 查看 install.log.syslog 文件中的含有 1981 的行
二、more 命令
more 命令 可以用于分屏显示文件内容,每次只显示一页内容。适合于 查看内容较多 的文本文件。 具体如下:
# more 命令示例
more hello.txt
# 内容太多,如何翻页?操作键如下:
space 显示手册页的下一屏
Enter 按一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
三、grep 命令
grep 命令 是一种强大的文本搜索命令,允许对文本文件进行 模式查找 ,即正则表达式。 使用示例如下:
# 三个选项
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写
# 常用的两种模式查找
^a 符号 ^ 用于搜寻以 a 开头的行
a$ 符号 $ 用于搜寻以 a 结束的行
# grep 命令示例
grep hello 123.txt # 查找包含 hello 的行
grep "hello python" 123.txt # 查找包含 hello python 的行
grep -i hello 123.txt # 查找包含 hello 的行,忽略大小写
grep -n hello 123.txt # 查找包含 hello 的行,并显示行号
grep -v hello 123.txt # 查找不包含 hello 的行
grep ^a 123.txt # 查找以 a 开头的行
grep a$ 123.txt # 查找以 a 结尾的行
grep 1981 install.log.syslog -n # 搜索 1981 字符串
grep "hello Linux" install.log.syslog -n # 搜索 hello Linux 字符串
grep ^a install.log.syslog -n # 搜索以 a 开头的行
grep a$ install.log.syslog -n # 搜索以 a 结尾的行
四、echo 命令
echo 命令 会在终端中显示参数指定的文字,通常会和 重定向 联合使用。 具体使用如下:
# 重定向介绍
Linux 允许将命令执行结果【重定向】到一个文件,将本应显示在终端上的内容【输出/追加】到指定文件中。其中:
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
# echo 命令和重定向示例
echo hello # 在终端输出 hello
echo hello > 123.txt # 将 hello 写入到 123.txt,如果 123.txt 原先有内容,那么原先内容会被覆盖
ls -lh > aa.txt # 将 ls -lh 的结果写入到 aa.txt,原先有内容的话,内容将会被覆盖
ls -lh >> aa.txt # 将 ls -lh 的结果追加到 aa.txt 文件
五、管道 | 命令
Linux 允许将 一个命令的输出通过管道作为另一个命令的输入。 管道 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 符号 | 的左右分为两端,左端塞东西(写),右端取东西(读)。 具体使用如下:
# 常用的管道命令有:
grep 在命令执行结果的基础上查询指定的文本
more 在命令执行结果的基础上分屏显示内容
# 管道 | 命令示例
ps -x | grep server # 查找包含 server 字样的进程
ps -ef | grep mysql # 查找包含 mysql 字样的进程
ls -lha ~ | more # 列出当前用户目录下的文件或目录,然后进行分页显示
tree / | more # 以树的方式显示根目录下的文件或目录,然后进行分页显示