Linux操作系统的常用命令
Linux命令的基础语法结构

[]包围起来的,表示是可选的意思。
ls命令
功能:列出来当前文件夹下,有哪些文件

如图,通过ls可以看到,在当前的文件夹下有许多的文件和文件夹,上图:深颜色的是文件夹,白色的是文件。

ls命令的选项
-a选项
语法:
ls-a
# 注意ls 和 -a 之间有一个 空格
通过ls -a就可以看到当前文件系统下的隐藏文件和隐藏文件夹

如图,Linux系统的隐藏文件就被列出来了。
-l选项:
语法:
ls-l
# 注意ls 和 -l之间有一个空格
可以将横向平铺的结果,变成纵向的结果

选项的组合使用
语法:
ls-la
# 表示组合使用-l和-a的功能
可以将结果变成纵向结果,同时列出来隐藏文件

如图,既有纵向结果又可以看到隐藏的文件
ls命令的参数
对于ls命令来说:
ls 想要查看的目录 可用的选项(-a -l)
想要查看的目录,如果你不写,默认就查看当前文件夹
如果你写了,就可以查看你指定的目录
比如,我想看看Linux的/(根目录)下面有什么东西:
ls / -la
# 查看 / 目录下面有什么内容
# 以及配合纵向显示 和 显示隐藏文件的功能
# ls后面的/ 就是参数

pwd命令查看当前文件夹是什么
功能:在命令行中,显示,你当前的文件夹在什么地方
语法:直接执行:pwd并回车即可


如图,我们通过pwd确认了当前的文件夹是:/root
通过FinalShell工具,可以看到,在这个文件夹下面,的文件夹和文件和ls列出的是一样的。
里面多了许多的用.作为开头的文件,这些是隐藏文件
cd 命令切换当前文件夹
功能:切换当前的文件夹
cd:change dir
语法:
cd 你要去的文件夹
# 没有选项,直接给一个参数,表明你想要切换去的文件夹即可

如图,当前所在的文件夹,就切换到/下面了
路径特殊符号
在Linux系统中,有2个特殊符号:
.,表示当前文件夹
..,表示上一级文件夹
~,表示的是用户的HOME目录
如果cd . 表示切换当前目录为当前文件夹,其实就没啥效果

如图可以发现,没有任何变化。
如果cd .. 表示,切换到上一级的文件夹

如图,可以发现,切换到上级目录中了。
综合应用

如图:cd ../games表示,回退到上级目录,并进入到上级目录内的games文件夹
用户的HOME目录
在Linux系统中,每一个用户,都会有一个自己的大本营的目录,称之为用户的HOME目录。
对于Linux系统的root用户来说,HOME目录就在:/root
~表示用户的HOME目录,所以:
cd /root
cd ~
是一个意思
Linux的相对路径和绝对路径

在Linux系统中,对于路径的表达方式是不同的,有2种:
相对路径(相对目录)
绝对路径(绝对目录)
相对路径:以当前所在的文件夹为基点,来描述路径
绝对路径:以/(根目录)为基点来描述路径


mkdir命令 - 创建文件夹
功能:创建文件夹
语法:
# 回忆一下Linux基础命令的格式: 命令本体 [可选的参数] [可选的选项]
mkdir 要创建的文件夹的路径 [-p选项]
参数表示要创建文件夹的路径(相对路径或绝对路径都可以)
选项有1个,-p选项

选项
-p选项
功能:将前置不存在的文件夹一并创建了

rm命令 - 删除文件或文件夹
功能:删除文件或文件夹
语法:
rm 被删除的路径 [-r选项 | -f选项]
参数:表示被删除的路径(可以是文件也可以是文件夹)
选项:
-r
-f

选项
-f选项
含义:强制删除,不提示(英文单词force的缩写)

如图,没有任何提示,文件就被删除了。
-r选项
含义:递归删除,将指定的文件夹的内部也全部清空

如图,直接rm aaa是无法删除aaa这个文件夹的,所以需要用-r选项

如图,可以发现,是可以删除,但是要有很多的提示,很烦
组合选项
含义:-r和-f可以组合使用,比如:rm -fr 或者 rm -rf 都一样
表示,递归删除(删除文件夹内部和文件夹本身),并且强制删除,不提示

如图,文件夹被删除,并且没有任何提示。
touch命令 - 创建文件
语法:
touch 文件的路径
在指定的文件路径上, 创建出来1个文件

如图,在当前目录中,就创建了hello.txt文件
cp命令 - 文件或文件夹的复制
cp: copy
语法:
cp [-r选项] 被复制的文件或文件夹 将要去复制到的地方

上面的写法,是用的相对路径

上面的写法,用的是绝对路径
总结:在Linux系统中,无论什么命令,只要用到路径的,相对和绝对都是可以用的。
选项
-r选项
功能:递归复制,将文件夹内的内容也复制过去,要复制文件夹,请用-r
如果不用:


如图,使用-r选项,就可以正常复制文件夹了。
mv命令 - 文件或文件夹的移动(剪切)同时兼具改名的功能
mv: move
语法:
mv 被移动的文件或文件夹 将要去移动到的地方

如图,将hello.txt移动到bbb文件夹的内部

如上图,可以发现,文件被移动到ccc文件夹内部,同时被修改名字为:heiheihei.txt
mv命令,不仅可以移动,同时还兼具改名的功能

如图,将nihao.txt移动到当前目录下作为dajiahao.txt存在,就等同于改名字了。
同样,改名字也可以用于文件夹:

同样,将ccc移动到当前目录下作为aaa存在,所以这个操作等同于将ccc改名为aaa
cat命令 - 查看文件的内容
语法:
cat 被查看的文件

如图,文件的内容被正常的查看到了。
more命令 - 以翻页的形式查看文件的内容
语法:
more 被查看的文件
当我们查看文件后,可以用键盘来控制查看:
space(空格键)向下翻页
b,向上翻页
q,退出查看
less命令 - 以翻页和支持搜索的形式查看文件内容
语法:
less 被查看的文件
支持键盘的快捷方式:
space(空格键),向下翻页
b,向上翻页
q,退出查看
/,输入要搜索的内容并回车,即可完成内容的搜索
n,向下搜索下一个匹配项
N,向上搜索匹配项
如果搜索的内容,没有找到会出现:

head命令 - 查看文件的头部内容
语法:
head [-n选项] 被查看的文件
不带选项查看文件,默认查看头部的10条内容
-n选项
功能:指定查看头部的多少条数据
如下:
head -n20 文件
# 表示查看文件的前20条数据
tail命令 - 查看文件的尾部内容
语法:
tail [-f选项 -n选项] 被查看的文件
不带选项查看,是直接查看文件的尾部10条内容
选项
-n选项
功能:和head的-n一样,表示查看几条
tail -n1 文件
# 表示查看文件的最后1条数据
-f选项
f来自于英文单词:follow
功能:跟随文件的尾部,持续的查看文件的修改

如图,tail -f后,程序就不会退出,会一直运行
一直运行的逻辑是:持续的监控文件的尾部修改,如果尾部有新增的内容,立刻就显示出来
如果要停止tail -f,可以使用键盘快捷键:ctrl + c
ctrl + c 是Linux系统中的万能停止快捷键,等同于Windows系统给窗口点击X关闭是一个意思
| 管道符
功能:将|符号前面命令的结果,作为后面命令的输入

如图,管道符就是将上一个命令的结果,作为下一个命令的输入参数的存在
语法:
命令1 | 命令2
示例
cat messages | more
# 将cat的结果,作为more命令的输入内容
# 本质上就等同于:more 文件了
示例
cat wohao.txt | grep o
# 等同于 grep o wohao.txt

嵌套使用

管道符可以从前到后,一直写
逻辑就是,每一个管道符|,都是:
将|左边的全部命令的结果,作为|右边的命令输入
grep 命令 - 过滤内容
基础用法(比较少)
语法:
grep 被过滤的内容 被过滤的文件

echo 命令 输出指定的内容
语法:
echo 被输出的内容
# 演示
echo hahaha # 在控制台输出hahaha
echo"ni hao ma"# 在控制台输出ni hao ma
# 一般我们建议复杂输出内容,通过双引号包围一下
重定向符号
在Linux系统中,有2个符号,作为重定向用。
重定向:将命令的结果,写入到指定的位置中
重定向有2个符号:
>:表示将>左边命令的结果,写入>右边指定的位置,覆盖写入
覆盖写入的意思:将老的内容全部删除,写入当前内容
>>:表示将>>左边命令的结果, 写入>>右边指定的位置,追加写入
追加写入的意思:将新的内容,写入到老的内容的后面
一般重定向符号,都是配合其它命令一起使用,比如echo

如图,将echo命令的结果,写入到指定的文件中,覆盖写入

如图,将echo命令的结果,写入到指定的文件中,追加写入
&& 和 || 符号
&&与运算符(类似Python的 and)
||或运算符(类似Python的 or)
&&表示的是:左边的命令执行成功,会接着执行右边的命令
echo"你好吗?" >> 1.txt && echo"我好吗?" >> 1.txt && echo"大家都好" >> 1.txt
# 如上,可以向1.txt中一次性追加3条数据
&&符号,一般用于:在1条Linux命令中,执行多个操作

如图,要注意的是,上一条命令的失败,下一条不会执行,如图:我好帅就没有输出
||表示的是:左边的命令执行失败,才会执行右边的命令

如图,由于mkdir命令执行失败,所以我好帅被输出了。
||,一般用于做备份命令,如果前置命令失败,下一条命令用来收尾
find命令 - 文件查找命令
功能:根据条件,查找满足要求的文件
基础语法按照文件名搜索:
find 要查找的路径 [-name选项 -size选项] 要查找的条件
-name 表示按照文件名字搜索
-size 表示按照文件大小搜索
示例,在Linux中全盘(从根目录开始)搜索名字叫做test的文件
find / -name"test"

如图,从根目录开始,所有文件名字叫做test的文件就被搜索到了。
配合通配符可以完成更加丰富的搜索条件
详细参见下方通配符的笔记
基础语法按照文件大小搜索:
find / -size+100M
# +100M 表示大小大于100MB的文件
# -100M 表示大小小于100MB的文件
经常用于在Linux系统中找出大文件
which 命令 - 查找指定的命令在哪里
我们所执行的Linux命令:它们都是程序
比如:cd、ls、pwd、mkdir、cp、mv等等命令,这些命令其实都是一个个程序
既然是程序,这些程序就肯定有程序文件,存在于Linux系统中
功能:通过which命令,找到执行的命令,的程序文件在哪里
语法:
which 要查找的命令

如图,就找到了mkdir这个命令的程序存在与:/usr/bin/mkdir
ln命令 - 创建软链接
软链接:和Windows系统的快捷方式是一个意思
将一个文件或者文件夹,创建出来一个快捷方式
语法:
ln-s 被创建快捷方式的文件或文件夹 快捷方式放到哪里
-s 表示软链接(快捷方式)
示例:
# 给/usr/local/bin文件夹创建快捷方式
ln-s /usr/local/bin kjfs

如图,kjfs这个文件夹就指向了 /usr/local/bin这个文件夹
示例:
# 给/root/dajiahao.txt创建快捷方式
ln-s /root/dajiahao.txt nihao.txt

如果要查看软链接的指向,通过 ls -l即可。
通配符 *
通配符*表示,匹配任意内容

如图,配合find搜索,找到了全部以test开头的文件

如图,所有以test结尾的文件,就全部搜索到了

如图,只要带有test,就算满足条件,就搜索到了
tar命令 - 进行压缩或解压缩
在Linux操作系统中,压缩包一般是.tar,.gz结尾的压缩包
在Windows操作系统中,压缩包一般见到的是.zip,.rar结尾的压缩包
进行文件的压缩(打包)
语法:
tar [-z -c-v-f] 参数1 参数2
参数1:打包后的压缩包的路径
参数2:被打包的文件或文件夹
选项:
-z使用gzip压缩格式,不写-z,使用tar格式
-c 表示执行压缩模式
-v 表示显示压缩的过程
-f 指定生成的压缩包的路径(指定的参数1)
一般生成压缩包,基本都是固定写法:
# 写法1,生成tar格式的包:
tar -cvf xxx.tar 被压缩的文件或文件夹
# 写法2,生成gzip格式的包:
tar -zcvf xxx.tar.gz 被压缩的文件或文件夹
打tar格式的压缩包演示:

如上图,将1.txt,2.txt,dajiahao.txt 三个文件,压缩到test.tar这个包内
打gzip格式的压缩包演示

如上图,将1.txt,2.txt,dajiahao.txt 三个文件,压缩到test.tar.gz这个包内
解压压缩包的操作
语法:
tar [-z -x-v-f] 参数1 [-C 参数2]
选项:
-z 解压 gzip格式,不写的话,是解压tar格式
-x 表示执行解压模式
-v 表示显示解压的过程
-f 指定被解压的压缩包的路径(指定的参数1)
参数1:被解压的压缩包
选项:
-C 指定将内容解压到哪里,如果不写,默认解压到压缩包所在的位置
如果使用-C,后面必须指定参数2:要解压到哪里的路径
示例:解压tar格式

如图,在当前目录中的test.tar文件解压出来了:1.txt 2.txt dajiahao.txt3个文件
示例:解压gzip格式(结尾是.gz的)

解压gzip格式,解压出来如图3个文件
示例:将内容解压到指定的目录中
-C选项就是将内容解压到指定的地方
如果不写-C,就解压到当前路径,就相当于在Windows中将压缩包解压到当前文件夹
如果写-C,就相当于在Windows中,将内容解压到指定文件夹

如图,通过-C的选项,将内容解压到指定的文件夹内了。
-C一定要注意,是大写的C
help命令
在每一个Linux命令中,其实都有非常丰富的选项可以用
比如ls,我们只讲解了-l -a2个选项
其实它有很多的选项
可以通过命令的:
-h
或
--help
选择去查看命令的帮助文档
比如,查看ls的帮助文档就是:ls --help

选项太多,不可能每一个都学习,我们主要学习常用选项
剩余选项,大家知道可以help列出来即可
需要的时候翻阅帮助文档
help命令列出来的只是基础简略的帮助文档
如果想要看命令的详细文档,需要使用man命令
man命令 - 查看命令的详细帮助文档
语法:
man 被查看详细帮助文档的命令
# 如
man ls
# 表示查看ls命令的详细帮助文档
命令的-h或--help选项,是查看简略帮助文档
man 命令 查看命令的详细帮助文档
通过vi | vim 编辑器完成文件的编辑
vi | vim程序,是可以完成文件的编辑操作,类似Windows系统的记事本程序
在Linux操作系统中,如果你使用命令行的形式去完成操作,是无法支持鼠标操作的。
在Linux命令行中,一切都是键盘操作
简介
在Linux系统中,如果要修改、编辑文件,需要通过内置的vi程序来进行编辑
vim是vi的升级版,这俩是同一个东西
vi编辑器的工作模式

vi编辑器支持3种工作模式,不同的模式,是有不同的功能:
命令模式
打开vi编辑器,默认就是命令模式,可以在命令模式下,通过键盘输入命令来控制文本的操作
输入模式
可以进行文本的输入(写入、删除、修改等)
底线命令模式
通过键盘命令,来对文件进行整体操作(保存,关闭等等)

模式 | 命令 | 描述 |
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 任何情况下输入esc都能回到命令模式 |
命令模式 | dd | 删除光标当期行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行的内容 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl + r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
命令模式 | 键盘上、键盘j | 向上移动光标 |
命令模式 | 键盘下、键盘k | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向后移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | & | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
无法打开vi程序,提示如下

表明,上一次对文件的修改,没有保存,然后就强制退出了vi程序(比如关闭了FinalShell)
vi为了编辑的内容不丢失,都会在编辑文件的时候,同步的保存一个:
.被vi的文件名.swp
比如,我vi修改一个文件叫做:1.txt,那么vi程序会同步保留一个:.1.txt.swp的文件用来做内容的备份
如果没有妥善的退出vi程序,下一次修改这个文件就会出现上述提示,解决方式很简单将这个.swp文件删除即可
通过:ls -la找到这个文件,(因为这个文件是.开头,是隐藏文件)
执行:rm -f 文件删掉即可
Linux的系统管理命令
查看日期
语法:
date

如图,查看到当前的时间
语法:
date +"%Y-%m-%d %H:%M:%S"
%Y - 四位数字的年份
%m -2位数字的月份
%d -2位数字的日期
%H -24小时格式的小时
%M -2位数字的分钟
%S -2位数字的秒数

修改时区为中国时间
默认Linux系统安装完成后的时区并不是中国时间
所以需要修改时区
# 复制下面的命令,直接粘贴使用即可修改时区
rm-f /etc/localtime;sudo ln-s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
查看日历
语法:
cal

查看磁盘的占用
语法:
df [-h]
-h表示以更加直观的单位显示容量

如图,可以看到根目录/的使用情况
查看内存的使用
语法:
free [-h]
# -h 表示以更加直观的单位显示容量

如图:
total表示总量
used表示当前使用
free表示可用剩余内容
Swap,表示的是虚拟内存
虚拟内存就是,将硬盘作为内存使用
一般内存不足的时候,就可以用虚拟内存来使用
查看CPU的使用情况
语法:
top

如图,top就和Windows系统的任务管理器是很像的。
可以查看各个进程的CPU占用率情况
查看CPU有几个核心
命令:
cat /proc/cpuinfo
可以查看processor单词出现几次,就是几核CPU
还有更简单的查看方式
cat /proc/cpuinfo | grep processor

查看系统中当前运行的进程信息
语法:
ps [-e -f]
# 一般有固定用法
ps-ef
-e 列出全部进程
-f 以格式化的形式输出(一列一列的)

如图,最右边的一列,就是进程的信息
组合使用,过滤特定进程
ps-ef | grep 你想要过滤的信息

验证自己的电脑是否能上网
# 方式1:
ping baidu.com

如图所示,即OK能上网
# 方式2:
curl baidu.com

如图,可以看到是正确联网了,能够连接到www.baidu.com