常用命令(CentOS)

1、查看系统内核及版本号:uname,cat

[root@lamp_small ~]# uname -r
3.10.0-957.el7.x86_64
[root@lamp_small ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

2、查看磁盘空间:df -h

[apache@ai_bk ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   45G  2.6G  95% /
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G   24K   16G   1% /dev/shm
tmpfs            16G  416K   16G   1% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
tmpfs           3.2G     0  3.2G   0% /run/user/48
tmpfs           3.2G     0  3.2G   0% /run/user/0

3、监控进程端口:netstat -tnlp

如果提示netstat命令没有找到,需要先安装:yum -y install net-tools

[root@lamp_small ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9052/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      9260/master         
tcp6       0      0 :::80                   :::*                    LISTEN      9057/httpd          
......

4、打包、解包:tar

使用tar进行打包压缩成xxx.tar.gz:tar -zcvf xxx.tar.gz xxx …(多个目录)  
使用tar查看压缩包内的内容:tar -ztvf xxx.tar.gz
使用tar解压缩xxx.tar.gz文件:tar -zxvf xxx.tar.gz
使用tar解压缩xxx.tar.gz文件到指定的目录(该目录需已经存在):tar -zxvf xxx.tar.gz -C destdir
使用tar解压缩xxx.tar.gz中某个文件: tar -zxvf xxx.tar.gz aaa/bbb

5、共享内存的查看及删除:ipcs,ipcrm

查看:ipcs -m

[apache@ai_bk test]$ ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x91135ad2 98304      root       600        1000       11                      
0xffffffff 196610     apache     644        256        0 

删除:ipcrm -m 196610

[apache@ai_bk test]$ ipcrm -m 196610
[apache@ai_bk test]$ ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x91135ad2 98304      root       600        1000       11 

6、关机、重启命令:shutdown/reboot/init

立刻关机:shutdown -h now
立即关机:halt

20:30关机:shutdown -h 20:30
10分钟后关机:shutdown -h +10
立刻重启:shutdown -r now
立即重启:reboot

10分钟后重启:shutdown -r +10
关机:init 0
切换到多用户:init 3
切换到界面:init 5
重启:init 6

7、用户和用户组

7.1 添加新用户:useradd
useradd [选项] 用户名
用户基本信息:存储在 /etc/passwd 文件中;
用户密码信息:存储在 /etc/shadow 文件中;
用户群组基本信息:存储在 /etc/group 文件中;
用户群组信息信息:存储在 /etc/gshadow 文件中;
用户个人文件:主目录默认位于 /home/用户名,邮箱位于 /var/spool/mail/用户名。
7.2 删除系统用户:userdel
userdel -r 用户名
-r 选项表示在删除用户的同时删除用户的家目录。
用户基本信息:存储在 /etc/passwd 文件中;
用户密码信息:存储在 /etc/shadow 文件中;
用户群组基本信息:存储在 /etc/group 文件中;
用户群组信息信息:存储在 /etc/gshadow 文件中;
用户个人文件:主目录默认位于 /home/用户名,邮箱位于 /var/spool/mail/用户名。
7.3 修改系统用户密码:passwd
passwd [选项] 用户名
7.4 修改系统用户信息:usermod
usermod [选项] 用户名
-d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
-g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
-u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
-G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
-L:临时锁定用户(Lock);
-U:解锁用户(Unlock),和 -L 对应;
....
#把lamp用户加入root组
[root@localhost ~]# usermod -G root lamp
7.5 强制系统用户登陆时修改密码:chage
chage [选项] 用户名
-l:列出用户的详细密码状态;
-d 日期:修改 /etc/shadow 文件中指定用户密码信息的第 3 个字段,也就是最后一次修改密码的日期,格式为 YYYY-MM-DD;
-m 天数:修改密码最短保留的天数,也就是 /etc/shadow 文件中的第 4 个字段;
-M 天数:修改密码的有效期,也就是 /etc/shadow 文件中的第 5 个字段;
-W 天数:修改密码到期前的警告天数,也就是 /etc/shadow 文件中的第 6 个字段;
-i 天数:修改密码过期后的宽限天数,也就是 /etc/shadow 文件中的第 7 个字段;
-E 日期:修改账号失效日期,格式为 YYYY-MM-DD,也就是 /etc/shadow 文件中的第 8 个字段。
7.6 查看用户的UID和GID:id
[root@localhost ~]# id lamp
uid=501(lamp) gid=501(lamp) groups=501(lamp),0(root)
7.7 临时切换用户身份:su
su [选项] 用户名
-:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
7.8 Linux whoami和who am i
[root@localhost ~]# whoami
root
[root@localhost ~]# who am i
root     pts/0        2020-07-20 19:23 (192.168.0.1)
7.9 添加用户组:groupadd
7.10 修改用户组:groupmod
7.11 删除用户组:groupdel
7.12 修改文件的拥有者及用户组:chown(change owner)

基本语法:

chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录的情况。

8、修改文件权限:chmod(change mode)

语法:chmod [对谁操作] [操作符] [赋予的权限] 文件名

chmod +x test.sh
chmod 755 test.sh

9、文件创建、删除、移动:mkdir,rm,mv

语法:mkdir [选项] [目录]
-m:建立目录的时候同时设置目录的权限
-p:若所建立的上层目录目前尚未建立,则会一并建立上层目录;

创建一个空目录:mkdir test1
递归创建多个目录:mkdir -p /test2/test22
创建权限为777的目录:mkdir -m 777 test3
当前目录下创建/text5/text6且权限为750:mkdir -p-m 750 text5/text6

10、查看文件常用指令:cat,tac,nl,more,less,head,tail,od

cat:由第一行开始显示档案内容 
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示! 
nl:显示的时候,同时输出行号! 
more:一页一页的显示档案内容 
less 与 more 类似,但是比 more 更好的是,可以通过[page down][page up]进行翻页。 
head:查看头几行(head [-n number] 文件名 )
tail:查看尾几行 (tail[-n number] 文件名 )
od:以二进制的方式读取档案内容! 

nl类似cat -n,显示文件行号
输出了从11行到30行的内容:head -n 30 filename | tail -n 10 

11、五个查找命令:find,locate,whereis,which

find <指定目录> <指定条件> <指定动作>,硬盘中搜索

搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息:find . -name "my*" -ls

locate命令其实是“find -name”的另一种写法,比find快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。这个数据库每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

查找和pwd相关的所有文件(文件名中包含pwd):locate pwd
搜索etc目录下所有以sh开头的文件: locate /etc/sh

whereis只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。

whereis grep

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

which grep

12、磁盘空间查询:df,du,free

df:显示磁盘分区上可以使用的磁盘空间

-a:查看全部文件系统,单位默认KB
-h:使用-h选项以KB、MB、GB的单位来显示,可读性高~~~(最常用)
[root@localhost /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  1.4G   49G   3% /
devtmpfs                 899M     0  899M   0% /dev
tmpfs                    911M     0  911M   0% /dev/shm
tmpfs                    911M  9.6M  902M   2% /run
tmpfs                    911M     0  911M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/mapper/centos-home   67G   33M   67G   1% /home
tmpfs                    183M     0  183M   0% /run/user/0

du : 显示每个文件和目录的磁盘使用空间~~~文件的大小。

-h:以K  M  G为单位显示,提高可读性~~~(最常用的一个~也可能只用这一个就满足需求了)
[root@localhost ~]# du -h /root
28K	/root

free:显示系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer

-b :以Byte为单位显示内存使用情况。
-k :以KB为单位显示内存使用情况。
-m :以MB为单位显示内存使用情况。
-g:以GB为单位显示内存使用情况。
[root@localhost /]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1821         138        1471           9         212        1479
Swap:          2047           0        2047

12、历史命令:history

默认保存1000条,注销是存入用户目录.bash_history文件

[root@ai_bk www]# cat ~/.bash_history
 
#1572412952
systemctl stop firewalld
#1572412962
systemctl disable firewalld
........................
history [#] :列出最近的#条命令,不带#时,为列出全部。
history -w :将本次登录的命令写入命令历史文件中, 默认写入~/.bash_history。
! number 执行第几条命令(命令号通过History可查)
! command 从最近的命令查到以command开头的命令执行
!! 执行上一条

13、例行任务:crontab

crontab [-u username] [-l|-e|-r]
-u :只有 root 才能执行,即帮其他使用者创建/删除 crontab 计划任务
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :删除所有的 crontab计划任务,若仅要删除一项,请用 -e 去编辑。
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
重启:systemctl restart crond
启动:systemctl start crond
停止:systemctl stop crond
状态:systemctl status crond
实例1:每1分钟执行一次command
命令:* * * * * command
实例2:每小时的第3和第15分钟执行
命令:3,15 * * * * command
实例3:在上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 * * * command
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 */2 * * command
实例5:每个星期一的上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 * * 1 command
实例6:每晚的21:30重启smb 
命令:30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb 
命令:45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
命令:10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb 
命令:0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb 
命令:0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb 
命令:* */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb 
命令:* 23-7/1 * * * /etc/init.d/smb restart
实例13:每月的4号与每周一到周三的11点重启smb 
命令:0 11 4 * mon-wed /etc/init.d/smb restart
实例14:一月一号的4点重启smb 
命令:0 4 1 jan * /etc/init.d/smb restart
实例15:每小时执行/etc/cron.hourly目录内的脚本
命令:01 * * * * root run-parts /etc/cron.hourly

14、文件格式:dos2unix filename

安装:yum install dos2unix
转换:dos2unix chp.sh

15、查看内容、CPU等信息:top

top命令下,按 P表示按cpu排序,默认也是按cpu排序;按M 表示按占用内存排序。

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

  • PID:进程的ID
  • USER:进程所有者
  • PR:进程的优先级别,越小越优先被执行
  • NInice:值
  • VIRT:进程占用的虚拟内存
  • RES:进程占用的物理内存
  • SHR:进程使用的共享内存
  • S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  • %CPU:进程占用CPU的使用率
  • %MEM:进程使用的物理内存和总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  • COMMAND:进程启动命令名称

如:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25282 nobody 20 0 428m 110m 93m S 0.0 1.9 0:34.42 php-cgi

表示:

  • PID 25282
  • 用户 nobody
  • 虚拟内存 428M
  • 物理内存 110M 110*1024= 112640 「和前面计算出来的值基本一致」
  • 共享内存 93M
  • 进程使用的物理内存和总内存的百分比 1.9 %

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注