linux终端命令总结

有些命令是桌面版linux的,是刚开始学习linux时做的一些笔记。
1、启动终端:ctrl+alt+t
2、终端字体放大:ctrl+shift+‘+’, 终端字体缩小:ctrl+‘-’
3、ls:查看当前目录下的文件信息

ls [-l|-a] [目录文件]
-l:用来显示所有文件的详细信息
-a:显示指定目录下面的所有文件包括隐藏文件
ll:功能等同于ls –l

4、pwd:相看目录所在的路径
5、touch:创建文件
6、mkdir:创建文件夹\

mkdir -p test/test
-p:创建多层路径

7、rmdir:删除文件夹,提示:只能是空文件夹
8、rm:默认删除的是文件,如果删除文件夹需要加上-r选项,-r以递归的方式把文件夹下的所有文件信息删除掉

-r:通过递归删除文件夹以及文件夹下面的所有的文件。
-f:强制删除文件,不进行询问。
-v:显示删除的信息

9、cd:切换目录

9.1 cd 目录名:切换到指定目录
9.2 cd .:切换到当前目录
9.3 cd …:切换到上一级目录
9.4 cd ~:切换到当前用户的家目录
9.5 cd:等价与cd ~ 切换到当前用户的家目录
9.6 cd -:切换到上一次目录

10、绝对目录:从根目录算起的路径叫做绝对路径,比如:/home/python
11、相对路径:从当前目录算起的路径叫做相对路径,比如:./AAA/BBB
12、路径的使用总结:如果离当前目录近使用相对路径,如果离根目录近使用绝对路径,如果进入的是中间目录建议使用绝对路径
13、自动补全:两次tab键
14、cp:拷贝

14.1 cp 文件名 路径:把文件拷贝到指定路径
14.2 cp 路径/文件名 路径:把指定路径的文件拷贝到指定路径
14.3 cp 文件名 路径/新的文件名:先把文件拷贝到指定目录然后再重命名
14.4 cp 文件夹 路径 -r:拷贝文件夹 -r:以递归的方式把文件夹下的所有文件拷贝过去

15、mv:移动(剪切)

15.1 mv 文件名 路径:把文件移动到指定路径
15.2 mv 路径/文件名 路径:把指定路径的文件移动到指定路径
15.3 mv 文件名 新的文件名:重命名
15.4 mv 文件夹 路径:把文件夹移动到指定目录,不需要加上-r
15.-i:移动文件显示提醒信息
15.-v:显示移动后的路径描述

16、tree:以目录树方式显示当前文件夹信息

16.1 tree /:以目录树方式显示指定路径的文件信息

17、命令的格式

17.1 命令名 选项 参数,提示:有些命令选项可以放到参数的后面,但是:scp选项必须放到命令名的后面

18、ls 选项

18.1 -l:以列表的方式去显示
18.2 -a:显示隐藏文件
18.3 -h: 显示文件大小的单位
18.4 -al:显示隐藏文件并且以列表方式显示
18.5 -lh:以列表的方式去显示并且显示文件的大小

19、mkdir 选项

19.1 -p:把依赖文件夹提取创建好,比如:mkdir 123/345/567 -p

20、rm 选项

20.1 -r:以递归的方式删除文件夹里面的所有内容
20.2 -i:删除的时候提醒信息
20.3 -v:显示删除后的描述信息
20.4 -d:删除空目录
20.5 -f:如果文件或者目录存在则删除,否则就不删除也不报错

21、cp 选项

21.1 -i:拷贝文件的时候如果指定目录有该文件需要显示提醒信息
21.2 -v:显示拷贝文件的路径描述
21.3 -r:以递归的方式拷贝文件夹里面的所有内容

22、重定向(>,>>):在终端显示的内容信息重写规定方向,保存到指定文件里面,以后查看数据是文件查看就可以了

22.1 >:如果文件不存在,那么先创建,否则会先把原有文件的数据清空然后再写入
22.2 >>:在原有数据的基础上进行追加
22.3 总结:ls,cat,tree都可以使用重定向

23、gedit:文本编辑工具,可读可编辑
24、cat:内容在终端显示,不能进行编辑,提示:适合查看小型文件,大型文件使用分屏方式显示(more)
25、more:分屏显示

25.1 f:表示下一页
25.2 空格:表示下一页
25.3 回车:表示下一行
25.4 b:表示上一页
25.5 q:退出

26、文件合并

cat 1.txt 2.txt > 3.txt

27、管道|:可以理解成是一个容器,存放在终端显示的内容

27.1 总结:ls /bin | more ,cat,tree,ls都是可以结合管道使用完成分屏显示的

28、链接

28.1 ln -s 源文件 链接文件软连接:可以理解成快捷方式,把原文件删除掉通过软链接无法打开文件的数据,提示:创建软连接不会对硬链接数加1
28.2 ln 源文件 链接文件硬连接:同一个数据有多个文件名在使用,某个文件删除掉,还可以通过其它文件名访问这个文件的数据,提示:创建硬链接硬链接数会加1
28.3 提示:如果创建的软链接没有和原文件在同一个目录里面,那么需要使用绝对路径创建软连接(源文件和连接文件都要写路径)

29、grep:根据指定的内容在文件中进行查找

29.1 grep “a” 8.txt:根据指定内容在文件中进行查找
29.2 -n:行号,-i:忽略大小写,-v:取反
29.3 总结:^,linux如何使用终端进入R语言 linux进入终端命令_服务器" passwd` -E表示扩展的正则表达式,以root开头或者以ROOT结尾的行
29.5 -c, --count print only a count of matching lines per FILE(统计行数,每行多个只显示1个)
29.6 -o, --only-matching show only the part of a line matching PATTERN(统计个数,每行多个显示多个)

30、find:在指定目录查找对应的文件

语法:find [文件夹名] [选项] 文件名|文件大小|用户名
30.1 -name “.txt”:在当前目录查找后缀是.txt的文件,-name根据文件名查找
30.2 -perm 666:在当前目录查找文件权限是可读可写的,-perm根据权限查找
30.3 -size:根据文件的大小进行查找,+代表大于, -代表小于,不写等于
30.4 -user:根据文件的拥有者查找
30.5 总结:?[]支持的通配符
[root@master ~]# find /root -size +2000
[root@master etc]# find sys*
[root@master ~]# find -user root
[root@master ~]# find -perm 644

31、ls:支持的通配符:_,?,[],[]表示匹配任意列举中的一个字符
32、通配符:? _ [],起到了模糊查询的作用
33、tar:打包、压缩、解包、解压缩

33.1 打包tar -cvf test *.txt,-c:表示要打包,-v:显示文件打到包里面,-f:表示文档名称,提示-f必须放到所有选项的后面
33.2 解包 tar -xvf test.tar,-x:表示解包
33.3 打包及压缩合并的命令:tar -zcvf test.tar.gz *.txt
33.4 解压缩及解包合并的命令:tar -zxvf tast.tar.gz ->得到对应的文件
33.5 指定解压缩的路径 tar -zxvf test.tar.gz -C …/BBB,-C:指定解压缩后的路径
33.6 tar -jcvf test.bz2 *.txt ->test.bz2
33.7 tar -jxvf test.bz2 ->得到对应的文件
33.8 -C:指定解压缩的路径:tar -jxvf test.bz2 -C …/BBB
33.9 -z:设置压缩文件的格式(格式主要是:.tar.gz)

34、zip的压缩及解压缩

34.1 zip test *.txt -> test.zip,提示:压缩包的后缀不需要指定默认是.zip
34.2 unzip test.zip -> 得到是压缩包里面的文件
34.3 unzip -d ./123 test.zip -> 解压到指定路径,-d:表示解压的路径

35、chmod:修改权限

35.1 -r(4):可读 -w(2):可写 -x(1):可执行
35.2 u:当前用户 g:同组用户 a:所有用户
35.3 +:添加权限 -:撤销权限 =:赋值权限
35.4 chmod 000 1.txt:全部没有权限
35.5 chmod a=- 1.txt chmod a= 1.txt:全部没有权限
35.6 chmod 777 1.txt chmod a=rwx 1.txt:都有权限,可读可写可执行
35.7 chmod 664 1.txt chmod u=rw,g=rw,o=r 1.txt 设置不同用户不同权限

36、cp选项

36.1 -a:保留文件原有权限,-a包含-r,也就是使用-a也可以拷贝文件夹

37、which/type:查看命令本身shell脚本的路径\

38、sudo -s:使用管理员权限

38.1 root用户切换到普通用户: su - cyx

39、passwd [用户名]:修改密码
40、who:当前哪些用户登录
41、whoami:当前电脑登陆的用户是谁
42、exit:退出
43、ssh:远程登陆

43.1 ssh:可以远程登陆服务端 可以通过vim修改文件
43.2 ssh 客户端用户名@服务器ip地址 ssh python123@192.168.17.12

44、scp:远程拷贝

44.1 scp 1.txt python123@192.168.17.12:/home/python/Desktop,把本地文件拷贝到服务器端
44.2 scp -r test python123@192.168.17.12:/home/python/Desktop,把本地文件夹拷贝到服务器端
44.3 scp python123@192.168.17.12:/home/python/Desktop/1.txt,把服务端的文件拷贝到本地
44.4 scp -r python123@192.168.17.12:/home/python/Desktop/test,把服务端的文件夹拷贝到本地

45、apt list 支持的安装包
46、vim的使用

46.1 命令模式,编辑模式,末行模式,命令模式是编辑模式和末行模式的中转站

47、vim常用命令

47.1 i:进入编辑模式
47.2 yy:复制光标所在行 复制多行:数字+yy
47.3 p:粘贴 粘贴多次:数字+p
47.4 dd(删除、剪切),剪切或者删除多行:数字+dd
47.5 V:选中多行
47.6 上下左右:k:上 j:下 l:右 h:左 等同于方向键
47.7 x:从前往后删除一个字母
47.8 X:从后往前删除一个字母
47.9 u:撤销
47.10 shift + >:往右缩进
47.11 shift + <:往左缩进
47.12 .:重复上一次操作
47.13 G:回到最后一行
47.14 gg:回到第一行 1G
47.15 18G:回到指定行
47.16 shift + 4:回到行末
47.17 shift + 6:回到行首
47.18 搜索::/1 n:查看下一个搜索到的内容,N:查看上一个搜索到的内容
47.19 替换::%s/1/2/g %:整个文件,s:替换,g:全局
47.20 ctrl+f:下一页
47.21 ctrl+b:上一页
47.22 :wq 保存退出
47.23 :x 保存退出
47.24 :set nu 显示行号
47.25 :set nu! 撤销显示行号
47.26 :w 对文件进行保存
47.27 :q 直接退出,(如果对文件进行修改操作,则直接退出不了,必须要强制退出)
47.28 :q! 强制退出

48、reboot:重启
49、shutdown now/init 0:关机
50、chown -R cyx:cyx filename:修改文件所属
51、lsblk:默认情况下将以树状列出所有块设备
52、head:用来查看文件中的前n行,默认前10行

语法 head [-n 行数] 文件名

从500w条数据中截取100w到新文件
head -n 1000000 sogou.500w.utf8 > sogou.100w.utf8

53、tail:用来查看文件中的后n行,默认后10行

语法 tail [-n 行数] 文件名

tailf
等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电

54、less:分屏查看文件中的内容,并且支持搜索功能

语法:less 文件名
搜索:/搜索内容
退出:q

55、wget:进行文件下载

[root@master3 ~]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.29/mysql-connector-java-8.0.29.jar
注意:早wget使用之前必须要先安装wget插件

56、adduser|useradd [用户名]:创建用户

useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]

参数说明:

-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录>  指定用户登入时的起始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组。
-G<群组>  指定用户所属的附加群组。
-m  制定用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s<shell>   指定用户登入后所使用的shell。
-u<uid>  指定用户ID。

57、id 用户名:查询某一个用户是否存在。
58、userdel:删除用户

语法:userdel [-r] 用户名
-r:如果在删除用户的时候不使用该选项则代表不删除该用户所在的家目录的文件夹。

59、whereis:显示命令所在的位置

[root@master3 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

60、echo:将内容输出在控制台上。

echo  要显示的内容
重定向符号(追加符号):
>>  :在原有的文件的内容的基础上进行追加操作,不会覆盖原来的内容
> :覆盖,就代表会将文件中原来的内容进行替换。

61、wc:用来统计文件的行数

语法 wc -l 文件名
[root@master3 ~]# wc -l sogou_ext

62、date:操作时间的命令,获取当前的时间

[root@master3 ~]# date
2022年 06月 15日 星期三 16:22:29 CST
设置一个时间字符串:-d
[root@master3 ~]# date -d '2022-7-30 12:23:54'
2022年 07月 30日 星期六 12:23:54 CST
设置当前系统的时间:-s
[root@master3 ~]# date -s '2022-7-30 12:23:54'
2022年 07月 30日 星期六 12:23:54 CST
[root@master3 ~]# date +%F
2022-06-15
[root@master3 ~]# date +%Y
2022
[root@master3 ~]# date +%m
06
[root@master3 ~]# date +%M
28
[root@master3 ~]# date +%T
16:28:58
[root@master3 ~]# date +%d
15
[root@master3 ~]# date +%D
06/15/22
[root@master3 ~]# date +%j
166
[root@master3 ~]# date +%s   (时间戳)
1660785818
[root@master3 ~]# date '+%Y-%m-%d %H:%M:%S'
2022-08-26 10:14:31

63、cal

显示日历
语法:cal [年份]

64、ping:用来测试当前的主机和指定的主机是否相通

ping ip地址/主机名/域名

65、ip addr:查看当前系统的ip地址
66、df [-h]:查看当前系统的文件的容量
67、下面的命令需要net-tools插件包支持,所以必须要先安装

netstat -nlpt:显示各种网络相关信息

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

ifconfig:查询当前系统的网络IP地址信息

68、kill:用来杀死某一个进程

1.pkill 进程名
2.killall 进程名
3.kill -9 $(ps -ef|grep 进程名关键字|grep -v grep|awk ‘{print $2}’)
这个是利用管道和替换将 进程名对应的进程号提出来作为kill的参数。
4.kill -9 $(pidof 进程名关键字)

69、ps:查看当前系统的进程

  • ps -aux 是以BSD方式显示
    a 显示所有用户的进程(show processes for all users) u 显示用户(display the process’s user/owner) x 显示无控制终端的进程(also show processes not attached to a terminal)
  • ps -ef 是以System V方式显示,该种方式比BSD方式显示的多
    e 显示所有用户的进程(all processes)此参数的效果和指定"a"参数相同 f 用ASCII字符显示树状结构,表达程序间的相互关系(ASCII art forest)

70、jps:如果搭建了hadoop平台则可以使用该命令来查询当前的java进程。
71、tty:查看当前所属的虚拟终端或叫伪终端

pts指的是伪终端,当打开一个终端时为pts/0,再次打开一个终端时就为pts/1,在图形界面使用的就是伪终端,使用xshell远程连接工具也是使用的伪终端。

[root@xuegod63 ~]# tty
/dev/pts/0

72、diff:比较两个文件的不同
diff命令比较两个文件的输出结果如下:

diff test1.txt test2.txt
2,4c2,4                     #(a=add,c=change,d=delete)
< I need to run the laundry.
< I need to wash the dog.
< I need to get the car detailed.
---                         #则是两个文件内容的分隔符号
> I need to do the laundry.
> I need to wash the car.
> I need to get the dog detailed.

73、top:观察cpu、内存使用情况

74、nohup:

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

语法格式
 nohup Command [ Arg … ] [ & ]

参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。

如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:
ps -aux | grep "runoob.sh" 

参数说明:
a : 显示所有程序
u : 以用户为主的格式来显示
x : 显示所有程序,不区分终端机
另外也可以使用 ps -def | grep "runoob.sh" 命令来查找。

找到 PID 后,就可以使用 kill PID 来删除。

kill -9  进程号PID

以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:
nohup /root/runoob.sh > runoob.log 2>&1 &

2>&1 解释:将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)

75、alias [别名]=[指令名称]
自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。