我们程序员在实际开发中或多或少会用到一些linux命令,这些命令可能会用于项目部署或者运维阶段等。那么对于这些命令我们可能并不是都能牢记,所以为了自己使用方便,这里为大家对常见的linux命令,进行了系统的总结。有需要的朋友,强烈建议收藏下。
那么,对于常用的linux查找命令,我们对其进行了划分,大概划分如下:
(1) 常用系统工作命令
(2) 系统状态检测命令
(3) 工作目录切换命令
(4) 文本文件编辑命令
(5)文件目录管理命令
(6) 打包压缩和查找命令
按照上述划分,我们对这6块常用的具体命令,再次进行具体列举:
一、常用系统工作命令
1.1 date 命令
该命令用于查看当前系统时间
[root@JavaCentos ~]# date
2022年 08月 13日 星期六 20:12:32 CST
参数介绍
%t 跳格[Tab键]
%H 小时( 00~23 )
%I 小时(00~12)
%M 分钟( 00~59 )
%S 秒(00~59 )
%j 今年中的第几天
举例说明
查看今天是今年的第几天
[root@JavaCentos ~]# date "+%j"
225
设置当前系统时间
[root@JavaCentos ~]# date -s "20220813 20:40:00"
2022年 08月 13日 星期六 20:40:00 CST
1.2 reboot 命令
该命令用于重启linux系统,相当于windows系统中的重启
1.3 poweroff 命令
该命令用于关闭linux系统,相当于windows系统中的关机
1.4 ps 命令
该命令用于查看系统中的进程状态,常用用法:ps aux 或 ps -ef
[root@JavaCentos ~]# ps -ef | grep redis
root 4592 1 0 8月12 ? 00:02:57 redis-server *:6379
root 24754 24297 0 20:49 pts/2 00:00:00 grep --color=auto redis
1.5 pidof 命令
pidof命令用于查询某个指定服务进程的 PID值,格式为 pidof[参数][服务名称]
[root@JavaCentos ~]# pidof sshd
24293 21743 1010
1.6 kill 命令
kill命令用于终止某个指定 PID的服务进程,格式为“ kill [参数 ] [进程 PID]”
[root@JavaCentos ~]# kill 24754
二、系统状态检测命令
2.1 ifconfig 命令
该命令被用来获取网络接口配置信息
[root@JavaCentos ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.29 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::fb9b:6787:bf0f:e53c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:94:ee:e3 txqueuelen 1000 (Ethernet)
RX packets 1731788 bytes 2406778821 (2.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 395540 bytes 49209244 (46.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.2 uname命令
uname命令用于查看系统内核与系统版本等信息,格式为“ uname [-a]”。
在使用uname命令时,一般会固定搭配上 -a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息
[root@JavaCentos ~]# uname -a
Linux JavaCentos 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
2.3 uptime 命令
uptime用于查看系统的负载信息,格式为 uptime。
它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。
平均负载值指的是系统在最近 1分钟、 5分钟、 15分钟内的压力情况(加粗的信息部分);
负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5。
[root@JavaCentos ~]# uptime
21:01:17 up 1 day, 34 min, 4 users, load average: 0.00, 0.01, 0.05
2.4 free 命令
free用于显示当前系统中内存的使用量信息,格式为“ free [-h]”。
为了保证Linux系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。
[root@JavaCentos ~]# free -h
total used free shared buff/cache available
Mem: 1.9G 1.2G 69M 3.7M 646M 444M
Swap: 2.0G 566M 1.4G
2.5 who 命令
who用于查看当前登入主机的用户终端信息
[root@JavaCentos ~]# who
root :0 2021-12-27 19:25 (:0)
root pts/1 2022-07-18 10:16 (192.168.1.10)
root pts/0 2022-02-11 15:20 (:0)
root pts/2 2022-08-13 20:12 (192.168.1.10)
2.6 history 命令
用于显示历史执行过的命令,非常好用
该命令可以显示出当前用户在本地计算机中执行过的最近 1000条命令记录
[root@JavaCentos ~]# history
2.7 netstat 命令
该命令是一个用于监控 TCP / IP 网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
参数介绍
-n
直接使用ip地址,而不通过域名服务器
-o
显示计时器
-p
显示正在使用 Socket 的程序识别码pid和程序名称
-r
显示核心路由信息
-s
显示网络工作信息统计表
举例说明
[root@JavaCentos ~]# netstat -s # 显示所有端口的统计信息
[root@JavaCentos ~]# netstat -st # 显示所有TCP的统计信息
[root@JavaCentos ~]# netstat -su # 显示所有UDP的统计信
[root@JavaCentos ~]# netstat -antp | grep ssh # 查看端口和服
[root@JavaCentos ~]# netstat -p # 显示pid和进程名
2.8 top 命令
该Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
参数介绍
-b
批处理
-u<用户名>
指定用户名
-p
指定进程
-n
循环显示的次数
-S
累积模式
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
[root@JavaCentos ~]# top
三、工作目录切换命令
3.1 pwd命令
pwd命令用于显示用户当前所处的工作目录
[root@JavaCentos ~]# pwd
/root
3.2 ls 命令
ls命令用于显示目录中的文件信息
“-a”参数看到全部文件(包括隐藏文件),
“-l”参数可以查看文件的属性、大小等详细信息。
将这两个参数整合之后,再执行 ls命令即可查看当前目录中的所有文件并输出这些文件的属性信息
[root@JavaCentos ~]# ls -al
四、文本文件编辑命令
4.1 cat命令
用于查看纯文本文件(内容较少的),如果在查看文本内容时还想顺便显示行号的话,可以追加参数 -n
[root@JavaCentos ~]# cat -n text.sh
4.2 more 命令
more命令用于查看纯文本文件(内容较多的)
4.3 head 命令
head命令用于查看纯文本文档的前 N行
[root@JavaCentos ~]# head -n 20 text.sh
4.4 tail 命令
tail命令用于查看纯文本文档的后N行或持续刷新内容
[root@JavaCentos ~]# tail -n 20 text.sh
4.5 stat 命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为“ stat 文件名称”
[root@JavaCentos ~]# stat text.sh
五、文件目录管理命令
5.1 touch 命令
touch命令用于创建空白文件或设置文件的时间
参数作用
-a 仅修改“读取时间”( atime )
-m 仅修改“修改时间”( mtime )
-d 同时修改atime 与 mtime
[root@JavaCentos ~]# touch text.sh
5.2 mkdir 命令
mkdir命令用于创建空白的目录,格式为“ mkdir [选项 ] 目录”。
在Linux系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外, mkdir命令还可以结合 -p参数来递归创建出具有嵌套叠层关系的文件目录。
[root@JavaCentos ~]# mkdir -p a/b/c
5.3 cp 命令
cp命令用于复制文件或目录,格式为“ cp [选项 ] 源文件 目标文件”。
大家对文件复制操作应该不陌生,在Linux系统中,复制操作具体分为 3种情况:
1、如果目标文件是目录,则会把源文件复制到该目录中;
2、如果目标文件也是普通文件,则会询问是否要覆盖它
3、如果目标文件不存在,则执行正常的复制操作
5.4 mv 命令
mv命令用于剪切文件或将文件重命名,格式为“ mv [选项 ] 源文件 [目标路径 |目标文件名 ]”。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果
在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名:
[root@JavaCentos ~]# mv text.sh text1.sh
5.5 rm 命令
rm命令用于删除文件或目录,格式为“ rm [选项 ] 文件”。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是
看到这种反复的确认信息,可在 rm命令后跟上 -f参数来强制删除。另外,想要删除一个目录,
需要在 rm命令后面一个 -r参数才可以,否则删除不掉。我们来尝试删除前面创建的 install.log和 linux.log文件
[root@JavaCentos ~]# rm test.sh
[root@JavaCentos ~]# rm -f test.sh
5.6 dd 命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“ dd [参数 ]”。
dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容
参数作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制“块”的个数
六、打包压缩与搜索命令
6.1 tar 命令
tar命令用于对文件进行打包压缩或解压
参数作用
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-Z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限和属性
-P 使用绝对路径来压缩
-c 指定解压到的目录
[root@JavaCentos tools]# tar -zxvf redis-3.2.5.tar.gz / 解压
[root@JavaCentos tools]# tar -czvf redis-3.2.5.tar.gz / 压缩
6.2 grep 命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果
参数作用
-n 参数用来显示搜索到信息的行号
-v 参数用于反选信息(即没有包含关键词的所有信息行)
6.3 find 命令
find命令用于按照指定条件来查找文件,格式为“ find [查找路径 ] 寻找条件 操作”。
“Linux系统中的一切都是文件”
参数作用
-name 匹配名称
-perm 匹配权限( mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间( -n指n天以内,+n指n天以前)
-exec 用于把find命令搜索到的结果交给紧随其后的命令做进一步处理
以上这些命令是结合实际开发总结的常用命令,大家有补充的话,也可以在公众号下为博主留言,希望可以帮助到大家。