Linux常用命令汇总(带代码示例)
Posted 做1个快乐的程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令汇总(带代码示例)相关的知识,希望对你有一定的参考价值。
💦Linux常用命令汇总💦:
众所周知,Windows的交互方式是图形化界面,Linux的交互方式是命令行;在Linux操作系统当中可以进行各种语言的开发工作,我们可以通过命令进行各种指令操作,从而完成文件相关的管理工作。
💦接下来,小编带大家学习一下Linux常用的一些命令,帮助大家快速入门Linux的基本操作。不管大家学的怎么样,下图种的代码千万不敢运行,使用云服务器的系统还好,可以后台恢复,如果是装有虚拟机系统的同学,如果运行图中的代码会让系统直接不可逆转性的崩溃。
下面进入正题:
下面代码中,我们在csdn的目录下,执行ls指令,可以显示在该目录的文件
[xd@VM-4-5-centos csdn]$ ls
aaa.c a.c a.out a.txt bbb.c ccc.c test.c tmp.txt yyy
值得注意的是,ls不仅可以单独使用,还可以跟其他指令相配合完成我们需要的各种目的。比如:
1.1 ls -l = 显示更多文件属性信息
如下代码,我们执行ls -l 不仅显示了该目录下的文件,还详细的显示其属性信息,比如文件的权限、大小、拥有者、所属组、创建时间等信息。
[xd@VM-4-5-centos csdn]$ ls -l
total 28
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 aaa.c
-rw-rw-r-- 1 xd xd 0 Jul 23 21:28 a.c
-rwxrwxr-x 1 xd xd 8400 Jul 23 21:11 a.out
-rw-rw-r-- 1 xd xd 39 Jul 23 21:39 a.txt
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 bbb.c
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 ccc.c
-rw-rw-r-- 1 xd xd 76 Jul 23 21:11 test.c
-rw-rw-r-- 1 xd xd 20 Jul 23 21:41 tmp.txt
drwxrwxr-x 3 xd xd 4096 Jul 23 21:45 yyy
1.2 ls -a = 显示隐藏文件(Linux中以.开始的文件称为隐藏文件)
其中.代表该目录;…代表上级目录
[xd@VM-4-5-centos csdn]$ ls -a
. .. aaa.c a.c a.out a.txt bbb.c ccc.c .erq test.c tmp.txt .txt yyy
1.3 ls -al = 组合命令,显示文件和隐藏文件的属性信息,相当于:ls -a -l
[xd@VM-4-5-centos csdn]$ ls -al
total 36
drwxrwxr-x 3 xd xd 4096 Aug 2 14:59 .
drwxrwxr-x 7 xd xd 4096 Aug 2 14:11 ..
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 aaa.c
-rw-rw-r-- 1 xd xd 0 Jul 23 21:28 a.c
-rwxrwxr-x 1 xd xd 8400 Jul 23 21:11 a.out
-rw-rw-r-- 1 xd xd 39 Jul 23 21:39 a.txt
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 bbb.c
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 ccc.c
-rw-rw-r-- 1 xd xd 0 Aug 2 14:59 .erq
-rw-rw-r-- 1 xd xd 76 Jul 23 21:11 test.c
-rw-rw-r-- 1 xd xd 20 Jul 23 21:41 tmp.txt
-rw-rw-r-- 1 xd xd 0 Aug 2 14:59 .txt
drwxrwxr-x 3 xd xd 4096 Jul 23 21:45 yyy
1.4 ls -i = 显示更多的属性信息,输出文件的i节点的索引信息(数字标识符)
[xd@VM-4-5-centos csdn]$ ls -i
657241 aaa.c 657245 a.c 657237 a.out 657246 a.txt 657242 bbb.c 657243 ccc.c 657236 test.c 657247 tmp.txt 657238 yyy
1.5 ls -d = 只显示目录相关信息,不显示其下的文件
ls 文件名,进入文件中显示文件中的文件;ls -d 文件名,不进入文件中,显示该文件;ls -l 文件名,显示文件中的各个文件的属性信息;ls -ld 文件名,显示该文件的属性信息
[xd@VM-4-5-centos csdn]$ ls -d
.
[xd@VM-4-5-centos csdn]$ ls -ld
drwxrwxr-x 3 xd xd 4096 Aug 2 14:59 .
[xd@VM-4-5-centos csdn]$ ls -l
total 28
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 aaa.c
-rw-rw-r-- 1 xd xd 0 Jul 23 21:28 a.c
-rwxrwxr-x 1 xd xd 8400 Jul 23 21:11 a.out
-rw-rw-r-- 1 xd xd 39 Jul 23 21:39 a.txt
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 bbb.c
-rw-rw-r-- 1 xd xd 0 Jul 23 21:27 ccc.c
-rw-rw-r-- 1 xd xd 76 Jul 23 21:11 test.c
-rw-rw-r-- 1 xd xd 20 Jul 23 21:41 tmp.txt
drwxrwxr-x 3 xd xd 4096 Jul 23 21:45 yyy
[xd@VM-4-5-centos csdn]$ ls .
aaa.c a.c a.out a.txt bbb.c ccc.c test.c tmp.txt yyy
1.6 ls -n = 用数字显示用户信息,我们ls -l显示的用户信息是汉字或者英文
1.7 ls -R = 列出所有子目录下的文件
[xd@VM-4-5-centos csdn]$ ls -R
.:
aaa.c a.c a.out a.txt bbb.c ccc.c test.c tmp.txt yyy
./yyy:
a.c xxx xyz.txt yzx.txt
./yyy/xxx:
zzz
./yyy/xxx/zzz:
值得注意的是,命令之间是可以简写的,比如ll等价于ls -l
2、clear:清屏
对于clear相信大家可以理解,就是清空屏幕信息,我们日常所用的qq和微信都有此功能,在这里我提供一下clear命令前后的终端界面。
|
|
3、pwd:显示当前所处路径
/home/xxx,就叫做xxx用户的主工作目录,一般是在登陆之后默认的路径 ------普通用户
/root,------root账号
/xxx/yyy/zzz -> "/"称为路径分隔符,Linux的路径分隔符是/,windows的路径分隔符是\\
[xd@VM-4-5-centos csdn]$ pwd
/home/xd/code/csdn
4、cd:更改路径(change direct)
我们通过cd命令切换当前所处的路径
4.1 cd 文件名 = 进入该文件下的目录
我们用pwd来进行验证
[xd@VM-4-5-centos code]$ cd csdn/
[xd@VM-4-5-centos csdn]$ pwd
/home/xd/code/csdn
[xd@VM-4-5-centos csdn]$ cd csdnson/
[xd@VM-4-5-centos csdnson]$ pwd
/home/xd/code/csdn/csdnson
4.2 cd … = 返回上一级目录cd
[xd@VM-4-5-centos csdnson]$ pwd
/home/xd/code/csdn/csdnson
[xd@VM-4-5-centos csdnson]$ pwd
/home/xd/code/csdn/csdnson
[xd@VM-4-5-centos csdnson]$ cd ..
[xd@VM-4-5-centos csdn]$ pwd
/home/xd/code/csdn
4.3 cd / = 直接跳转到根目录
[xd@VM-4-5-centos csdn]$ cd /
[xd@VM-4-5-centos /]$ pwd
/
4.4 cd - = 跳转到上一次我们所在的路径目录
其中,cd - 可以多次使用,跳转到上一次所在的目录
4.5 cd ~ = 跳转到当前用户的主工作目录中
这里需要注意的是,一般云服务cd ~是没有东西的,因为没有装东西,但是虚拟机cd ~会显示下载、文件等内容
5、whoami:查看当前自己是谁
[xd@VM-4-5-centos /]$ whoami
xd
[root@VM-4-5-centos ~]# whoami
root
6、tree 文件名:以树的形式显示该文件夹下的文件
[xd@VM-4-5-centos code]$ tree csdn/
csdn/
|-- aaa.c
|-- a.c
|-- a.out
|-- a.txt
|-- bbb.c
|-- ccc.c
|-- csdnson
| |-- a.c
| |-- b.c
| `-- c.c
|-- test.c
|-- tmp.txt
`-- yyy
`-- qqq
`-- aaa
4 directories, 11 files
7、touch 文件名:在当前目录下创建一个普通的文件
touch xxx.txt = 在当前目录下创建一个xxx.txt的文件
touch xxx.c yyy.c = 可以同时创建多个文件
[xd@VM-4-5-centos qqq]$ ll
total 4
drwxrwxr-x 2 xd xd 4096 Aug 2 15:37 aaa
[xd@VM-4-5-centos qqq]$ cd aaa
[xd@VM-4-5-centos aaa]$ ll
total 0
[xd@VM-4-5-centos aaa]$ touch xxx.txt
[xd@VM-4-5-centos aaa]$ touch aaa.txt bbb.txt
[xd@VM-4-5-centos aaa]$ ll
total 0
-rw-rw-r-- 1 xd xd 0 Aug 2 15:41 aaa.txt
-rw-rw-r-- 1 xd xd 0 Aug 2 15:41 bbb.txt
-rw-rw-r-- 1 xd xd 0 Aug 2 15:41 xxx.txt
8、mkdir:在当前目录下创建文件夹
mkdir+绝对路径/相对路径也可以在指定路径下创建目录,但是该命令只能一次创建单个文件夹,即不能一次性再文件夹下创建子文件夹。
8.1 mkdir -p xxx/yyy/zzz = 创建一整条路径文件夹
在xxx下有yyy,在yyy下有zzz
9、rmdir:在当前目录下删除文件夹
rmdir+绝对路径/相对路径也可以在指定路径下删除文件夹,但是该命令只能一次删除单个文件夹,即不能一次性将含有子文件夹的文件删除。
9.1 rmdir -p xxx = 递归删除一整条路径文件夹
在xxx下有yyy,在yyy下有zzz,我们rmdir -p xxx,即可彻底删除。
9.2 rm xxx = 删除文件
rm除了可以删除文件夹外,还可以删除文件。
9.3 rm -f xxx = 删除文件,不再询问
我们进行任何文件删除时,系统都要进行询问操作,我们需要输入y/n的命令来确认操作是否继续进行,当加入-f的指令后,即不再询问,直接执行。
9.4 rm * = 删除当前目录下的所有文件
* 称为通配符:匹配当前目录下的任何内容;
10、man 命令/函数:查看使用手册
man命令是Linux自带的参考手册,都是英文的;可以查命令以及C的库函数
10.1 man man = 查看man的用法
man 1~8 命令,可以查看不同接口,不同权限,不同状态下的命令,q退出
man 3 printf = 查看printf的库函数;man 3 fgets = 查看fgets的库函数
不带数字的时候,默认查看1号
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
注意:运行man 3 printf等带数字的命令时,若出现No manual entry for …,是因为man命令的一个man-pages安装包没有安装,只需执行指令:yum install man-pages
即可
11、cp:拷贝
我们执行 cp test.c … 则是将test.c拷贝到上一目录。… 也可以换成绝对路径/相对路径进行拷贝,将文件拷贝到指定路径。如果上级目录存在xxx.c,然后又将xxx.c拷贝到上级目录,则是覆盖式的,而且没有询问
[xd@VM-4-5-centos yyy]$ ll
total 4
drwxrwxr-x 3 xd xd 4096 Aug 2 15:37 qqq
[xd@VM-4-5-centos yyy]$ cd qqq/
[xd@VM-4-5-centos qqq]$ ll
total 4
drwxrwxr-x 2 xd xd 4096 Aug 2 15:41 aaa
[xd@VM-4-5-centos qqq]$ cp -r aaa ..
[xd@VM-4-5-centos qqq]$ cd ..
[xd@VM-4-5-centos yyy]$ ll
total 8
drwxrwxr-x 2 xd xd 4096 Aug 2 16:01 aaa
drwxrwxr-x 3 xd xd 4096 Aug 2 15:37 qqq
cp 文件夹 = 不可拷贝,没有拷贝成功,删除目录需要递归,拷贝目录同样需要递归
cp -r 文件夹 路径 = 拷贝文件夹到指定路径
cp一些已经存在的文件可能会询问,这时候+f也会强制拷贝
拷贝多个文件怎么拷贝,比如有a.txt b.txt c.txt,我们可以cp rf *.txt …,将该目录下以txt结尾的全部文件拷贝到上一目录。即:借用通配符
12、mv:剪贴/重命名
12.1 mv的剪贴操作参考cp命令
12.2 mv a.txt aa.txt = 将a.txt重命名为aa.txt
[xd@VM-4-5-centos yyy]$ ll
total 8
drwxrwxr-x 2 xd xd 4096 Aug 2 16:01 aaa
-rw-rw-r-- 1 xd xd 0 Aug 2 16:04 a.txt
drwxrwxr-x 3 xd xd 4096 Aug 2 15:37 qqq
[xd@VM-4-5-centos yyy]$ mv a.txt aa.txt
[xd@VM-4-5-centos yyy]$ ll
total 8
drwxrwxr-x 2 xd xd 4096 Aug 2 16:01 aaa
-rw-rw-r-- 1 xd xd 0 Aug 2 16:04 aa.txt
drwxrwxr-x 3 xd xd 4096 Aug 2 15:37 qqq
13、cat:显示文本内容
在不打开一些文件的情况下,将文本内容打印出来,通常用来进行阅读少量代码和日志的作用。
13.1 cat test.c = 显示test.c文本中的内容
[xd@VM-4-5-centos yyy]$ cat aa.txt
abcdefghijklmnopqrstuvwxyz
qweasdzxc
13.2 tac = 倒叙的显示文本内容
[xd@VM-4-5-centos yyy]$ tac aa.txt
qweasdzxc
abcdefghijklmnopqrstuvwxyzx
13.3 cat -n test.c = 带行号的显示test.c文本中的内容
[xd@VM-4-5-centos yyy]$ cat -n aa.txt
1 abcdefghijklmnopqrstuvwxyz
2 qweasdzxc
14、more/less:查看文本内容
more file.txt = 文本查看,批量查看,依次从前往后查看,按回车键enter继续打印,只能下翻,也只能按回车才有作用
less file.txt = 与more命令几乎等价,可以上翻也可以下翻,按上下键
cat file.txt = 一次把文件打印完,如果文件很大,就会一直刷屏,想查看前面的内容,已经被刷上去了
more vs less:
a:都查看海量文本内容
b:more不支持上翻,less支持
15、head/tail:查看文本内容
head file.txt = 默认显示前10行
head -n3 file.txt = 显示前3行
head -3 file.txt = 显示前3行
tail -10 file.txt = 默认打印后10行
tail -5 file.txt = 默认打印后5行
16、date:时间相关的指令
[xd@VM-4-5-centos yyy]$ date
Mon Aug 2 16:14:45 CST 2021
16.1 格式化输出时间
date +%Y-%m-%d = 21-08-02
date +%Y-%m-%d = 2021-08-02
date +%Y-%m-%d-%H-%M-%S = 2021-08-02
[xd@VM-4-5-centos yyy]$ date +%Y-%m-%d
2021-08-02
[xd@VM-4-5-centos yyy]$ date +%Y-%m-%d
2021-08-02
[xd@VM-4-5-centos yyy]$ date +%Y-%m-%d-%H-%M-%S
2021-08-02-16-15-54
16.2 时间戳
时间戳:代表1970年1月1日00点00分00秒到现在的秒数
16.2.1 查看时间戳
date +%s = 查看时间戳
[xd@VM-4-5-centos yyy]$ date +%s
1627892232
16.2.2 时间戳转换
date +%s 获得一个时间戳a
date -d @a,就可以把时间戳a转换成格式化时间
date +%Y-%M-%D-%H-%M -d @a
[xd@VM-4-5-centos yyy]$ date +%s
1627892394
[xd@VM-4-5-centos yyy]$ date -d@1627892394
Mon Aug 2 16:19:54 CST 2021
[xd@VM-4-5-centos yyy]$ date +%Y-%M-%D-%H-%M -d @1627892394
2021-19-08/02/21-16-19
17、cal:查看日历
cal 2019 = 查看2019年的日历
cal = 默认打印本月日历
cal -3 = 查看本月及前后两个月,即最近3个月的日历,只能够-3。没有-5,-6
18、find:查找某个文件是否存在
find可以查找文件也可以查找文件夹,可以按照名字、大小、创建日期等不同的方式去寻找。
18.1 按姓名查找
find ~ -name test.c = 在用户的工作目录下,按名字的方式,查找名为test.c的文件,带路径打印出来。
18.2 按大小查找
find ~ +size 10 -size 11 = 按文件大小寻找
19、grep:行过滤工具(根据关键字进行过滤)
我们现在创建一个file.txt文件,里面有10w不同的数字,但是这里太大,我们无法模拟,我们只模拟10行的数据。里面的数据如下:
[xd@VM-4-5-centos yyy]$ cat file.txt
aaaaa
bbbbb
ccccc
ddddd
EEEEE
fffff
GGGGG
hhhhh
iiiii
jjjjj
我们对其运行行过滤工具,对其进行查找。
19.1 grep ccccc file.txt = 在file.txt文件中查找ccccc
19.3 grep -n ccccc file.txt = 在file.txt文件中查找ccccc,并带行号显示出来
[xd@VM-4-5-centos yyy]$ grep ccccc file.txt
ccccc
[xd@VM-4-5-centos yyy]$ grep -n ccccc file.txt
3:ccccc
19.3 grep -nv ccccc file.txt = 在file.txt文件中查找ccccc,将找到的舍弃,并带行号把其它显示出来
[xd@VM-4-5-centos yyy]$ grep -nv ccccc file.txt
1:aaaaa
2:bbbbb
4:ddddd
5:EEEEE
6:fffff
7:GGGGG
8:hhhhh
9:iiiii
10:jjjjj
19.4 grep -ni eeeee file.txt = 在file.txt文件中查找eeeee,不区分大小写
[xd@VM-4-5-centos yyy]$ grep -ni eeeee file.txt
5:EEEEE
[xd@VM-4-5-centos yyy]$ grep -n eeeee file.txt
20、zip/unzip:压缩/解压
20.1 zip temp.zip ./*. = zip压缩命令,压缩后的文件名为temp.zip,将当前目录下的所有文件进行打包
[xd@VM-4-5-centos csdn]$ zip temp.zip ./*
adding: aaa.c (stored 0%)
adding: a.c (stored 0%)
adding: a.out (deflated 73%)
adding: a.txt (deflated 36%)
adding: bbb.c (stored 0%)
adding: ccc.c (stored 0%)
adding: csdnson/ (stored 0%)
adding: test.c (deflated 5%)
adding: tmp.txt (deflated 10%)
adding: yyy/ (stored 0%)
[xd@VM-4-5-centos csdn]$ ll
total 36
-rw-rw-r-- 1 xd xd 0 Aug 2 15:14 aaa.c
-rw-rw-r-- 1 xd xd 0 Aug 2 15:14 a.c
-rwxrwxr-x 1 xd xd 8400 Aug 2 15:14 a.out
-rw-rw-r-- 1 xd xd 39 Aug 2 15:14 a.txt
-rw-rw-r-- 1 xd xd 0 Aug 2 15:14 bbb.c
-rw-rw-r-- 1 xd xd 0 Aug 2 15:14 ccc.c
drwxrwxr-x 2 xd xd 4096 Aug 2 15:37 csdnson
-rw-rw-r-- 1 xd xd 3828 Aug 2 16:50 temp.zip
-rw-rw-r-- 1 xd xd 76 Aug 2 15:14 test.c
-rw-rw-r-- 1 xd xd 20 Aug 2 15:14 tmp.txt
drwxrwxr-x 4 xd xd 4096 Aug 2 16:28 yyy
20.2 unzip temp.zip = 解压temp.zip压缩包,默认解压到当前文件夹
[xd@VM-Linux 常用命令汇总及解释。