首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LINUX常用100条命令总结【四】

LINUX常用100条命令总结【四】

原创
作者头像
好派笔记
修改2021-09-13 14:36:53
修改2021-09-13 14:36:53
1.4K0
举报
文章被收录于专栏:好派笔记好派笔记
10.6 parted

功能:磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。

语法:

代码语言:javascript
复制
parted [参数] [设备]

参数:

代码语言:javascript
复制
-i	交互式模式
-s	脚本模式,不提示用户
-l	列出所有块设备上的分区布局
-h	显示帮助信息

实例:

  • 列出所有块设备上的分区布局
代码语言:javascript
复制
[root@localhost ~]# parted -l
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  42.9GB  41.9GB  primary               lvm
  • 磁盘设备分区
代码语言:javascript
复制
[root@localhost ~]# parted

十一、系统权限及用户授权

11.1 chmod

功能:改变文件或目录权限。

语法:

代码语言:javascript
复制
chmod [参数] [文件]

参数:

代码语言:javascript
复制
-c	若该文件权限确实已经更改,才显示其更改动作
-f	若该文件权限无法被更改也不显示错误讯息
-v	显示权限变更的详细资料
-R	对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

实例:

  • 将档案 test.txt 设为所有人皆可读取
代码语言:javascript
复制
[root@localhost ~]# chmod a+r test.txt

[root@localhost ~]

# ll test.txt -rw-r--r-- 1 root root 0 4月 17 07:51 test.txt

[root@localhost ~]

#

  • 将目前目录下的所有文件与子目录皆设为任何人可读取
代码语言:javascript
复制
[root@localhost mydirall]# chmod -R a+r * 
  • 将 file.txt 设定为只有该文件拥有者可以执行
代码语言:javascript
复制
[root@localhost ~]# chmod u+x test.txt

[root@localhost ~]

# ll test.txt -rwxr--r-- 1 root root 0 4月 17 07:51 test.txt

[root@localhost ~]

#

11.2 chown

功能:改变文件或目录的属主和属组。

语法:

代码语言:javascript
复制
chown [参数]

参数:

代码语言:javascript
复制
-R	对目前目录下的所有文件与子目录进行相同的拥有者变更
-c	若该文件拥有者确实已经更改,才显示其更改动作
-f	若该文件拥有者无法被更改也不要显示错误讯息
-h	只对于连结(link)进行变更,而非该 link 真正指向的文件
-v	显示拥有者变更的详细资料

实例:

  • 更改文件的属主和属组
代码语言:javascript
复制
[root@localhost ~]# ll file1
-rw-r--r-- 1 root root 0 4月  17 20:54 file1

[root@localhost ~]

# chown tom file1

[root@localhost ~]

# ll file1 -rw-r--r-- 1 tom root 0 4月 17 20:54 file1

[root@localhost ~]

# chown .tom file1

[root@localhost ~]

# ll file1 -rw-r--r-- 1 tom tom 0 4月 17 20:54 file1

[root@localhost ~]

#

[root@localhost ~]

# chown tom.tom file1

[root@localhost ~]

# ll file1 -rw-r--r-- 1 tom tom 0 4月 17 20:54 file1

[root@localhost ~]

#

11.3 chgrp

功能:更改文件用户组

语法:

代码语言:javascript
复制
chgrp [参数] [目录]

参数:

代码语言:javascript
复制
-c	效果类似”-v”参数,但仅回报更改的部分
-f	不显示错误信息
-h	对符号连接的文件作修改,而不更动其他任何相关文件
-R	递归处理,将指定目录下的所有文件及子目录一并处理
-v	显示指令执行过程
--reference	把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

实例:

  • 更改文件属组为tom组
代码语言:javascript
复制
[root@localhost ~]# ll file2
-rw-r--r-- 1 root root 0 4月  17 21:05 file2

[root@localhost ~]

# chgrp tom file2

[root@localhost ~]

# ll file2 -rw-r--r-- 1 root tom 0 4月 17 21:05 file2

[root@localhost ~]

#

  • 更改目录的属组,-p子目录也更改属组
代码语言:javascript
复制
[root@localhost ~]# chgrp -R hr mytestdir

[root@localhost ~]

# ll -d mytestdir drwxr-xr-x 3 root hr 20 4月 17 21:09 mytestdir

[root@localhost ~]

# ll -d mytestdir/mydir2/ drwxr-xr-x 2 root hr 6 4月 17 21:09 mytestdir/mydir2/

11.4 umask

功能:设定权限掩码

语法:

代码语言:javascript
复制
umask [参数] [权限掩码]

参数:

代码语言:javascript
复制
-S	以文字的方式来表示权限掩码
-p	输出的权限掩码可直接作为指令来执行

实例:

  • 查看当前权限掩码
代码语言:javascript
复制
[root@localhost ~]# umask
0022
  • 使组用户的写权限,其他用户的读、写和执行权限都被取消
代码语言:javascript
复制
[root@localhost ~]# umask u=,g=w,o=rwx

十二、查看系统用户登陆信息的命令

12.1 whoami

功能:打印当前登录用户,本指令相当于执行”id -un”指令。

实例:

代码语言:javascript
复制
[root@localhost ~]# id -un
root

[root@localhost ~]

# whoami root

12.2 who

功能:打印当前登录用户。

who命令的输出信息默认来自文件“/var/log/utmp”和“/var/log/wtmp”。

语法:

代码语言:javascript
复制
who [参数] [选项]

参数:

代码语言:javascript
复制
-a	打印全面信息
-b	打印系统最近启动时间
-d	打印死掉的进程
-l	打印系统登录进程
-H	带有列标题打印用户名,登录终端和登录时间
-t	打印系统上次锁定时间
-u	打印已登录用户列表

实例:

  • 打印用户登录信息(-H 带有列标题打印)
代码语言:javascript
复制
[root@localhost ~]# who -H
名称   线路       时间           备注
(unknown) :0           2020-02-11 00:14 (:0)
root     pts/0        2020-04-17 20:53 (123.183.158.11)

[root@localhost ~]

#

  • 打印系统最近启动时间
代码语言:javascript
复制
[root@localhost ~]# who -b
         系统引导 2020-02-11 00:13

[root@localhost ~]

#

  • 打印系统登录进程
代码语言:javascript
复制
[root@localhost ~]# who -l
12.3 w

功能:显示已登录用户。

语法:

代码语言:javascript
复制
w [参数]

参数:

代码语言:javascript
复制
-h/--no-header	不打印头信息
-u/--no-current	当显示当前进程和cpu时间时忽略用户名
-s/--short	使用短输出格式
-f/--from	显示用户从哪登录
-o/--old-style	老式输出
-i/--ip-addr	显示IP地址而不是主机名(如果可能)

实例:

  • 显示目前登入系统的用户信息
代码语言:javascript
复制
[root@localhost ~]# w
 21:38:35 up 66 days, 21:25,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    123.183.158.11   20:53    3.00s  0.04s  0.00s w

[root@localhost ~]

#

12.4 last

功能: 显示用户或终端的登录情况

实例:

  • 显示近期用户或终端的登录情况
代码语言:javascript
复制
[root@localhost ~]# last
root     pts/0        123.183.158.11   Fri Apr 17 20:53   still logged in   
root     pts/0        123.183.158.11   Fri Apr 17 07:35 - 10:16  (02:41)    
root     pts/0        123.183.158.11   Tue Feb 11 22:27 - 01:37  (03:10)    
  • 简略显示,并指定显示的个数
代码语言:javascript
复制
[root@localhost ~]# last -n 5 -R
root     pts/0        Fri Apr 17 20:53   still logged in   
root     pts/0        Fri Apr 17 07:35 - 10:16  (02:41)    
root     pts/0        Tue Feb 11 22:27 - 01:37  (03:10)    
root     pts/0        Tue Feb 11 00:14 - 03:21  (03:06)    
(unknown :0           Tue Feb 11 00:14   still logged in   

wtmp begins Mon Apr  1 14:10:36 2019

[root@localhost ~]

#

  • 显示最后一列显示主机IP地址
代码语言:javascript
复制
[root@localhost ~]# last -n 5 -a -i
root     pts/0        Fri Apr 17 20:53   still logged in    123.183.158.11
root     pts/0        Fri Apr 17 07:35 - 10:16  (02:41)     123.183.158.11
root     pts/0        Tue Feb 11 22:27 - 01:37  (03:10)     123.183.158.11
root     pts/0        Tue Feb 11 00:14 - 03:21  (03:06)     123.183.158.11
(unknown :0           Tue Feb 11 00:14   still logged in    0.0.0.0

wtmp begins Mon Apr  1 14:10:36 2019

[root@localhost ~]

#

12.5 lastlog

功能: 显示用户最近一次登录信息

参数:

代码语言:javascript
复制
-b <天数>	显示指定天数前的登录信息
-t <天数>	显示指定天数以来的登录信息
-u <用户名>	显示指定用户的最近登录信息

实例:

  • 显示系统中所有用户最近一次登录信息
代码语言:javascript
复制
[root@localhost ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/0    123.183.158.11   六 4月 18 08:20:06 +0800 2020
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
  • 显示指定天数前的登录信息
代码语言:javascript
复制
[root@localhost ~]# lastlog -b 2
  • 显示指定天数以来的登录信息
代码语言:javascript
复制
[root@localhost ~]# lastlog -t 7
用户名           端口     来自             最后登陆时间
root             pts/0    123.183.158.11   六 4月 18 08:20:06 +0800 2020

[root@localhost ~]

#

  • 显示指定用户的最近登录信息
代码语言:javascript
复制
[root@localhost ~]# lastlog -u tom
用户名           端口     来自             最后登陆时间
tom              pts/1                     六 4月 18 08:24:21 +0800 2020
12.6 users

功能:显示当前登录的用户

实例:

代码语言:javascript
复制
[root@localhost ~]# users
(unknown) root root

[root@localhost ~]

#

12.7 finger

功能:查询其他使用者的资料

参数:

代码语言:javascript
复制
-l	列出该用户的账号名称、真实姓名、用户根目录、登录所用的 shell、登录时间、邮件地址、电子邮件状态等
-m	排除查找用户的真实姓名
-s	列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话
-p	列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容

实例:

  • 列出当前登录用户的相关信息
代码语言:javascript
复制
Login: root           			Name: root
Directory: /root                    	Shell: /bin/bash
On since 六 4月 18 08:20 (CST) on pts/0 from 123.183.158.11
   5 seconds idle
On since 六 4月 18 08:26 (CST) on pts/2 from 123.183.158.11
   5 minutes 16 seconds idle
New mail received 四 4月 18 08:43 2019 (CST)
     Unread since 三 4月 17 17:57 2019 (CST)
No Plan.

[root@localhost ~]

#

  • 显示远程用户信息
代码语言:javascript
复制
[root@localhost ~]# finger -m root@121.42.11.190
[121.42.11.190]
finger: connect: 拒绝连接

[root@localhost ~]

#

十三、内置命令相关

13.1 echo

功能:输出字符串或提取Shell变量的值

语法:

代码语言:javascript
复制
echo [参数] [字符串]

参数:

代码语言:javascript
复制
-n	不输出结尾的换行符
-e “\a”	发出警告音
-e “\b”	删除前面的一个字符
-e “\c”	结尾不加换行符
-e “\f”	换行,光标扔停留在原来的坐标位置
-e “\n”	换行,光标移至行首
-e “\r”	光标移至行首,但不换行
-E	禁止反斜杠转移,与-e参数功能相反

实例:

  • 输出一段字符串
代码语言:javascript
复制
[root@localhost ~]# echo "www.haopython.cm"
www.haopython.cm

[root@localhost ~]

#

  • 输出变量提取后的值
代码语言:javascript
复制
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/www/wdlinux/mysql/bin:/root/bin

[root@localhost ~]

#

  • 对内容进行转义,不让$符号的提取变量值功能生效
代码语言:javascript
复制
[root@localhost ~]# echo \$PATH
$PATH

[root@localhost ~]

#

  • 结合输出重定向符,将字符串信息导入文件中
代码语言:javascript
复制
[root@localhost ~]# echo "It is a test" > mytest.txt

[root@localhost ~]

# cat mytest.txt It is a test

[root@localhost ~]

#

  • 使用反引号符执行命令,并输出其结果到终端
代码语言:javascript
复制
 [root@localhost ~]# echo `date`2020年 04月 18日 星期六 08:47:14 CST[root@localhost ~]# date2020年 04月 18日 星期六 08:47:17 CST[root@localhost ~]# 
  • 输出带有换行符的内容
代码语言:javascript
复制
[root@localhost ~]# echo -e "abc\ncdef\nghi"
abc
cdef
ghi

[root@localhost ~]

#

13.2 printf

功能:格式化 shell 输出

语法:

代码语言:javascript
复制
 printf [格式控制字符串] [参数]

参数:

代码语言:javascript
复制
\a	警告字符,通常为ASCII的BEL字符
\n	换行
\r	回车
\0ddd	表示1到3位的八进制值字符
\ddd	表示1到3位数八进制值的字符。仅在格式字符串中有效

实例:

  • 字符串输出
代码语言:javascript
复制
[root@localhost ~]# printf "HELLO WORLD\n"
HELLO WORLD

[root@localhost ~]

#

  • 格式化输出
代码语言:javascript
复制
[root@localhost ~]# cat test.sh
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234  
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543  
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 

[root@localhost ~]

#

代码语言:javascript
复制
[root@localhost ~]# sh test.sh
姓名     性别   体重kg
郭靖     男      66.12
杨过     男      48.65
郭芙     女      47.99

[root@localhost ~]

#

13.3 rpm

功能: RPM软件包管理器

rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。

语法:

代码语言:javascript
复制
rpm [参数] [软件包]

参数:

代码语言:javascript
复制
-a	查询所有的软件包
-b或-t	设置包装套件的完成阶段,并指定套件档的文件名称;
-c	只列出组态配置文件,本参数需配合”-l”参数使用
-d	只列出文本文件,本参数需配合”-l”参数使用
-e或--erase	卸载软件包
-f	查询文件或命令属于哪个软件包
-h或--hash	安装软件包时列出标记
-i	显示软件包的相关信息
--install	安装软件包
-l	显示软件包的文件列表
-p	查询指定的rpm软件包
-q	查询软件包
-R	显示软件包的依赖关系
-s	显示文件状态,本参数需配合”-l”参数使用
-U或--upgrade	升级软件包
-v	显示命令执行过程
-vv	详细显示指令执行过程
  • 直接安装软件包
代码语言:javascript
复制
[root@localhost ~]# rpm -ivh packge.rpm 
  • 忽略报错,强制安装
代码语言:javascript
复制
[root@localhost ~]# rpm --force -ivh package.rpm
  • 列出所有安装过的包
代码语言:javascript
复制
[root@localhost ~]# rpm -qa
  • 查询rpm包中的文件安装的位置
代码语言:javascript
复制
[root@localhost ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
  • 卸载rpm包
代码语言:javascript
复制
[root@localhost ~]# rpm -e package.rpm
  • 升级软件包
代码语言:javascript
复制
[root@localhost ~]# rpm -U file.rpm
13.4 yum

功能:基于RPM的软件包管理器

语法:

代码语言:javascript
复制
yum [参数]

参数:

代码语言:javascript
复制
-y	对所有的提问都回答“yes”
-c	指定配置文件
-q	安静模式
-v	详细模式
-t	检查外部错误
-d	设置调试等级(0-10)
-e	设置错误等级(0-10)
-R	设置yum处理一个命令的最大等待时间
-C	完全从缓存中运行,而不去下载或者更新任何头文件
install	安装rpm软件包
update	更新rpm软件包
check-update	检查是否有可用的更新rpm软件包
remove	删除指定的rpm软件包
list	显示软件包的信息
search	检查软件包的信息
info	显示指定的rpm软件包的描述信息和概要信息
clean	清理yum过期的缓存
shell	进入yum的shell提示符
resolvedep	显示rpm软件包的依赖关系
localinstall	安装本地的rpm软件包
localupdate	显示本地rpm软件包进行更新
deplist	显示rpm软件包的所有依赖关系

实例:

  • 自动搜索最快镜像插件
代码语言:javascript
复制
[root@localhost ~]# yum install yum-fastestmirror
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 yum-plugin-fastestmirror.noarch.0.1.1.31-40.el7 将被 升级
---> 软件包 yum-plugin-fastestmirror.noarch.0.1.1.31-52.el7 将被 更新
--> 解决依赖关系完成
  • 安装yum图形窗口插件
代码语言:javascript
复制
[root@localhost ~]# yum install yumex
  • 清除缓存目录下的软件包
代码语言:javascript
复制
[root@localhost ~]# yum clean packages
已加载插件:fastestmirror, langpacks
正在清理软件源: base docker-ce-stable epel extras updates
1527 package 文件已移除

[root@localhost ~]

#

  • 卸载/删除vim-common
代码语言:javascript
复制
[root@localhost ~]# yum remove vim-common.x86_64  
已加载插件:fastestmirror, langpacks
  • 列出匹配到“foo*”的可用的数据包
代码语言:javascript
复制
[root@localhost ~]# yum list available 'foo*' 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
可安装的软件包
foomatic.x86_64                                                                                    4.0.9-9.el7                                                                               base
foomatic-db.noarch                                                                                 4.0-41.20130911.el7                                                                       base
foomatic-db-filesystem.noarch                                                                      4.0-41.20130911.el7                                                                       base
foomatic-db-ppds.noarch                                                                            4.0-41.20130911.el7                                                                       base
foomatic-filters.x86_64                                                                            4.0.9-9.el7                                                                               base

[root@localhost ~]

#

  • 查看可能批量安装的列表
代码语言:javascript
复制
[root@localhost ~]# yum grouplist  
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   Cinnamon 桌面环境
   MATE 桌面环境
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   Cinnamon
   Fedora Packager
   Haskell
   LXQt 桌面环境
   MATE
   Milkymist
   TurboGears 应用程序构架
   Xfce
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   教育软件
   智能卡支持
   电子实验室
   科学记数法支持
   系统管理
   系统管理工具
   通用桌面
  • 显示httpd安装包信息
代码语言:javascript
复制
[root@localhost ~]# yum info httpd.x86_64   
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :90.el7.centos
大小    :9.4 M
源    :installed
来自源:base
简介    : Apache HTTP Server
网址    :http://httpd.apache.org/
协议    : ASL 2.0
描述    : The Apache HTTP Server is a powerful, efficient, and extensible
         : web server.

[root@localhost ~]

#

13.5 watch

功能:周期性的执行给定的命令,并将命令的输出以全屏方式显示

语法:

代码语言:javascript
复制
watch [参数] [命令]

参数:

代码语言:javascript
复制
-n/--interval	watch默认每2秒运行一下程序,可以用-n或-interval来指定间隔的时间
-d/--differences	用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来
-t/--no-title	关闭watch命令在顶部的时间间隔、命令、当前时间的输出

实例:

  • 重复执行uptime命令
代码语言:javascript
复制
[root@localhost ~]# watch uptime
  • 每隔一秒高亮显示网络链接数的变化情况
代码语言:javascript
复制
[root@localhost ~]# watch -n 1 -d netstat -ant
  • 每10秒一次输出系统的平均负载
代码语言:javascript
复制
[root@localhost ~]# watch -n 10 'cat /proc/loadavg'
  • 监测磁盘inode和block数目变化情况
代码语言:javascript
复制
[root@localhost ~]#  watch -n 1 "df -i;df"
  • 监测当前目录中test.txt文件的变化
代码语言:javascript
复制
[root@localhost ~]# watch -d 'ls -l|grep test.txt'
13.6 history

功能:查看命令执行的历史纪录。

语法:

代码语言:javascript
复制
history [参数] [目录]

参数:

代码语言:javascript
复制
-a	将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c	清空当前历史命令列表
-d	删除历史命令列表中指定序号的命令
-n	从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r	读取命令历史文件到当前的Shell历史命令内存缓冲区
-s	将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w	把当前的shell历史命令内存缓冲区的内容写入命令历史文件
  • 显示最近的10条命令
代码语言:javascript
复制
[root@localhost ~]# history 10
  800  yum info httpd.x86_64   
  801  yum info nginx
  802  watch uptime
  803  watch -n 1 -d netstat -ant
  804  watch -n 1 -d netstat -ant > a.txt
  805  cat a.txt
  806  watch -n 10 'cat /proc/loadavg'
  807   watch -n 1 "df -i;df"
  808  watch -d 'ls -l|grep test.txt'
  809  history 10

[root@localhost ~]

#

  • 将本次登录的命令写入历史文件中
代码语言:javascript
复制
[root@localhost ~]# history -w
  • 将命令历史文件中的内容读入到目前shell的history记忆中
代码语言:javascript
复制
[root@localhost ~]# history -r  
  • 将当前Shell会话的历史命令追加到命令历史文件中
代码语言:javascript
复制
[root@localhost ~]# history -a
  • 清空当前历史命令列表
代码语言:javascript
复制
root@localhost ~]# history -c
13.7 nc

功能:功能强大的网络工具。

语法:

代码语言:javascript
复制
nc [参数]

参数:

代码语言:javascript
复制
-l	使用监听模式,管控传入的资料
-p	设置本地主机使用的通信端口
-s	设置本地主机送出数据包的IP地址
-u	使用UDP传输协议
-v	显示指令执行过程
-w	设置等待连线的时间
-z	使用0输入/输出模式,只在扫描通信端口时使用

实例:

  • 扫描80端口
代码语言:javascript
复制
[root@localhost ~]# nc -nvv 10.128.25.130 80
Ncat: Version 6.40 ( http://nmap.org/ncat )
libnsock nsi_new2(): nsi_new (IOD #1)
libnsock nsock_connect_tcp(): TCP connection requested to 10.128.25.130:80 (IOD #1) EID 8
libnsock nsock_trace_handler_callback(): Callback: CONNECT SUCCESS for EID 8 [10.128.25.130:80]
Ncat: Connected to 10.128.25.130:80.
libnsock nsi_new2(): nsi_new (IOD #2)
libnsock nsock_read(): Read request from IOD #1 [10.128.25.130:80] (timeout: -1ms) EID 18
libnsock nsock_readbytes(): Read request for 0 bytes from IOD #2 [peer unspecified] EID 26
  • 扫描UDP端口
代码语言:javascript
复制
[root@localhost ~]# nc -u -w2 10.128.25.130 1-1000
  • 扫描TCP端口
代码语言:javascript
复制
[root@localhost ~]# nc -v -w2 10.128.25.130 1-1000
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection refused.

[root@localhost ~]

#

13.8 type

功能:显示指定命令的类型

语法:

代码语言:javascript
复制
type [参数] [命令]

参数:

代码语言:javascript
复制
lias	别名
keyword	关键字,Shell保留字
function	函数,Shell函数
builtin	内建命令,Shell内建命令
file	文件,磁盘文件,外部命令
unfound	没有找到

实例:

  • 别名命令
代码语言:javascript
复制
[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的别名

[root@localhost ~]

# type ll ll 是 `ls -l --color=auto' 的别名

[root@localhost ~]

#

  • 内建命令
代码语言:javascript
复制
[root@localhost ~]# type cd
cd 是 shell 内嵌

[root@localhost ~]

#

  • 关键字
代码语言:javascript
复制
[root@localhost ~]# type if
if 是 shell 关键字

[root@localhost ~]

#

13.9 bc

功能:浮点运算

语法:

代码语言:javascript
复制
bc [选项]

参数:

代码语言:javascript
复制
-i	强制进入交互式模式
-l	定义使用的标准数学库
-w	定义使用的标准数学库
-q	打印正常的GNU bc环境信息

实例:

  • 算术操作高级运算bc命令它可以执行浮点运算和一些高级函数
代码语言:javascript
复制
[root@localhost ~]# echo "1.212*3" | bc 
3.636

[root@localhost ~]

# echo "1.212*3" 1.212*3

  • 设定小数精度(数值范围)
代码语言:javascript
复制
[root@localhost ~]# echo "scale=2;3/8" | bc
.37

[root@localhost ~]

#

  • 计算平方和平方根
代码语言:javascript
复制
[root@localhost ~]# echo "10^10" | bc
10000000000

[root@localhost ~]

# echo "sqrt(100)" | bc 10

13.10 time

功能: 指令执行时所消耗的时间

语法:

代码语言:javascript
复制
time [参数] [命令]

参数:

代码语言:javascript
复制
-o	设定结果输出档。这个选项会将 time 的输出写入 所指定的档案中。
-a	配合 -o 使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
-f FORMAT	以 FORMAT 字串设定显示方式。

实例:

  • 显示命令date的时间统计结果
代码语言:javascript
复制
[root@localhost ~]# time date
2020年 04月 18日 星期六 10:00:27 CST

real	0m0.001s
user	0m0.000s
sys	0m0.001s

[root@localhost ~]

#

十四、关机 /重启 / 注销

14.1 shutdown

功能:关闭服务器

语法:

代码语言:javascript
复制
shutdown [选项] [参数]

参数:

代码语言:javascript
复制
-c	当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令
-f	重新启动时不执行fsck
-F	重新启动时执行fsck
-h	将系统关机
-k	只是送出信息给所有用户,但不会实际关机
-n	不调用init程序进行关机,而由shutdown自己进行
-r	shutdown之后重新启动
-t	送出警告信息和删除信息之间要延迟多少秒

实例:

  • 指定现在立即关机
代码语言:javascript
复制
[root@localhost ~]# shutdown -h now
  • 指定5分钟后关机,同时送出警告信息给登入用户
代码语言:javascript
复制
[root@localhost ~]#  shutdown +5 "System will shutdown after 5 minutes" 
Shutdown scheduled for 六 2020-04-18 10:13:03 CST, use 'shutdown -c' to cancel.

[root@localhost ~]

# Broadcast message from root@localhost.localdomain (Sat 2020-04-18 10:08:03 CST): System will shutdown after 5 minutes The system is going down for power-off at Sat 2020-04-18 10:13:03 CST!

  • 取消按预定时间关闭系统
代码语言:javascript
复制
[root@localhost ~]# shutdown -c

Broadcast message from root@localhost.localdomain (Sat 2020-04-18 10:08:13 CST):

The system shutdown has been cancelled at Sat 2020-04-18 10:09:13 CST!

[root@localhost ~]

#

  • 重启服务器
代码语言:javascript
复制
[root@localhost ~]# shutdown -r now
  • 按预定时间关闭系统
代码语言:javascript
复制
[root@localhost ~]# shutdown -h hours:minutes
14.2 halt

功能:关机

halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

参数:

代码语言:javascript
复制
-w	并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录
-d	不写wtmp纪录(已包含在选项[-n]中)
-f	没有调用shutdown而强制关机或重启
-i	关机(或重启)前关掉所有的网络接口
-p	该选项为缺省选项,就是关机时调用poweroff

实例:

  • 使用-p参数关闭操作系统,等同于poweroff 命令,并关闭了操作系统的电源
代码语言:javascript
复制
[root@localhost ~]# halt -p
  • 使用-f参数强制关机,操作系统电源未关闭
代码语言:javascript
复制
[root@localhost ~]# halt -f
14.3 poweroff

功能:关闭操作系统并切断电源

语法:

代码语言:javascript
复制
poweroff [参数]

参数:

代码语言:javascript
复制
-n	关闭操作系统时不执行sync操作
-w	不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中
-d	关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录
-f	强制关闭操作系统
-i	关闭操作系统之前关闭所有的网络接口
-h	关闭操作系统之前将系统中所有的硬件设置为备用模式

实例:

  • 关闭计算机操作系统并且切断系统电源
代码语言:javascript
复制
[root@localhost ~]# poweroff
  • 使用-h参数关闭操作系统之前将系统中所有的硬件设置为备用模式
代码语言:javascript
复制
[root@localhost ~]# poweroff -h
14.4 logout

功能: 退出系统

实例:

代码语言:javascript
复制
[root@localhost ~]# logout
14.5 exit

功能:退出shell

执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。状态值参数多用于脚本中,在终端状态下,直接输入“exit” 退出终端 。

快捷键:ctrl+d

参数:

代码语言:javascript
复制
0	执行成功
1	执行失败
$?	参照上一个状态值

实例:

  • 退出当前shell
代码语言:javascript
复制
[tom@localhost root]$ exit
exit

[root@localhost ~]

#

十五、进程管理相关命令

15.1 runlevel

功能:显示系统的运行级

runlevel命令是读取/var/run/utmp/文件或指定的其他文件,检索其中最近的运行级记录,显示系统先前与当前的运行级。

如果运行级记录中没有先前的运行级,则使用字符N表示先前的运行级。如果找不到运行级记录,runlevel将会输出一条表示不知道的错误信息,然后退出,返回一个非0的结束状态。

实例:

代码语言:javascript
复制
[root@localhost ~]# runlevel
N 5
15.2 jobs

功能: 查看当前有多少在后台运行的命令

语法:

代码语言:javascript
复制
 jobs [参数] [目录]

参数:

代码语言:javascript
复制
-l	显示作业列表时包括进程号
-n	显示上次使用jobs后状态发生变化的作业
-p	显示作业列表时仅显示其对应的进程号
-r	仅显示运行的(running)作业
-s	仅显示暂停的(stopped)作业

实例:

  • 显示当前的作业列表
代码语言:javascript
复制
[root@localhost ~]# jobs 
  • 显示当前的作业号以及对应的进程号
代码语言:javascript
复制
[root@localhost ~]# jobs -l
  • 仅显示运行的作业
代码语言:javascript
复制
[root@localhost ~]# jobs -r
  • 仅显示暂停的作业
代码语言:javascript
复制
[root@localhost ~]# jobs -s
  • 显示上次使用jobs后状态发生变化的作业
代码语言:javascript
复制
[root@localhost ~# jobs -n 
15.3 kill

功能:杀死进程

kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。

语法:

代码语言:javascript
复制
kill [参数] [进程号]

参数:

代码语言:javascript
复制
-l	列出系统支持的信号
-s	指定向进程发送的信号
-a	处理当前进程时不限制命令名和进程号的对应关系
-p	指定kill命令只打印相关进程的进程号,而不发送任何信号

实例:

  • 列出系统支持的信号列表
代码语言:javascript
复制
[root@localhost ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	

[root@localhost ~]

#

  • 查找进程,并用kill杀掉
代码语言:javascript
复制
[root@localhost ~]# ps
  PID TTY          TIME CMD
25357 pts/1    00:00:00 bash
25572 pts/1    00:00:00 ps

[root@localhost ~]

# kill -9 25337

[root@localhost ~]

#

15.4 killall

功能: 使用进程名称来杀死一组进程

参数:

代码语言:javascript
复制
killall [参数]

语法:

代码语言:javascript
复制
-e	对长名称进行精确匹配
-l	打印所有已知信号列表
-p	杀死进程所属的进程组
-i	交互式杀死进程,杀死进程前需要进行确认
-r	使用正规表达式匹配要杀死的进程名称
-s	用指定的进程号代替默认信号“SIGTERM”
-u	杀死指定用户的进程

实例:

  • 杀死httpd所有进程
代码语言:javascript
复制
[root@localhost ~]# killall -9 httpd
  • 使用-l参数打印所有已知信号列表
代码语言:javascript
复制
[root@localhost ~]# killall -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

[root@localhost ~]

#

15.5 pkill

功能:pkill命令可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序。如果想杀掉单个进程,请用kill来杀掉。

语法:

代码语言:javascript
复制
pkill [参数]

参数:

代码语言:javascript
复制
-o	仅向找到的最小(起始)进程号发送信号
-n	仅向找到的最大(结束)进程号发送信号
-P	指定父进程号发送信号
-g	指定进程组
-t	指定开启进程的终端

实例:

  • 仅向找到的最小(起始)进程号发送信号
代码语言:javascript
复制
[root@localhost ~]# pkill -o
  • 仅向找到的最大(结束)进程号发送信号
代码语言:javascript
复制
[root@localhost ~]# pkill -n
  • 杀死Apache进程
代码语言:javascript
复制
[root@localhost ~]# pkill httpd
15.6 ps

功能:显示进程状态

语法:

代码语言:javascript
复制
ps [参数]

参数:

代码语言:javascript
复制
-a	显示所有终端机下执行的程序,除了阶段作业领导者之外
a	显示现行终端机下的所有程序,包括其他用户的程序
-A	显示所有程序
-c	显示CLS和PRI栏位
c	列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
-C <指令名称>	指定执行指令的名称,并列出该指令的程序的状况
-d	显示所有程序,但不包括阶段作业领导者的程序
-e	此选项的效果和指定”A”选项相同
e	列出程序时,显示每个程序所使用的环境变量
-f	显示UID,PPIP,C与STIME栏位
f	用ASCII字符显示树状结构,表达程序间的相互关系
-g <群组名称>	此选项的效果和指定”-G”选项相同,当亦能使用阶段作业领导者的名称来指定
g	显示现行终端机下的所有程序,包括群组领导者的程序
-G <群组识别码>	列出属于该群组的程序的状况,也可使用群组名称来指定
h	不显示标题列
-H	显示树状结构,表示程序间的相互关系
-j或j	采用工作控制的格式显示程序状况
-l或l	采用详细的格式来显示程序状况
L	列出栏位的相关信息
-m或m	显示所有的执行绪
n	以数字来表示USER和WCHAN栏位
-N	显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码>	指定程序识别码,并列出该程序的状况
p <程序识别码>	此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异
r	只列出现行终端机正在执行中的程序
-s <阶段作业>	指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况
s	采用程序信号的格式显示程序状况
S	列出程序时,包括已中断的子程序资料
-t <终端机编号>	指定终端机编号,并列出属于该终端机的程序的状况
t <终端机编号>	此选项的效果和指定”-t”选项相同,只在列表格式方面稍有差异
-T	显示现行终端机下的所有程序
-u <用户识别码>	此选项的效果和指定”-U”选项相同
u	以用户为主的格式来显示程序状况
-U <用户识别码>	列出属于该用户的程序的状况,也可使用用户名称来指定
U <用户名称>	列出属于该用户的程序的状况
v	采用虚拟内存的格式显示程序状况
-V或V	显示版本信息
-w或w	采用宽阔的格式来显示程序状况
x	显示所有程序,不以终端机来区分
X	采用旧式的Linux i386登陆格式显示程序状况
-y	配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位
-- <程序识别码>	此选项的效果和指定”p”选项相同
--cols <每列字符数>	设置每列的最大字符数
--columns <每列字符数>	此选项的效果和指定”--cols”选项相同
--cumulative	此选项的效果和指定”S”选项相同
--deselect	此选项的效果和指定”-N”选项相同
--forest	此选项的效果和指定”f”选项相同
--headers	重复显示标题列
--help	在线帮助
--info	显示排错信息
--lines <显示列数>	设置显示画面的列数
--no-headers	此选项的效果和指定”h”选项相同,只在列表格式方面稍有差异
--group <群组名称>	此选项的效果和指定”-G”选项相同
--Group <群组识别码>	此选项的效果和指定”-G”选项相同
--pid <程序识别码>	此选项的效果和指定”-p”选项相同
--rows <显示列数>	此选项的效果和指定”--lines”选项相同
--sid <阶段作业>	此选项的效果和指定”-s”选项相同
-tty <终端机编号>	此选项的效果和指定”-t”选项相同
--user <用户名称>	此选项的效果和指定”-U”选项相同
--User <用户识别码>	此选项的效果和指定”-U”选项相同
--version	此选项的效果和指定”-V”选项相同
--widty <每列字符数>	此选项的效果和指定”-cols”选项相同

实例:

  • 把所有进程显示出来
代码语言:javascript
复制
[root@localhost ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  43164  3636 ?        Ss   2月11   0:45 /usr/lib/systemd/systemd --system --deserialize 13
root         2  0.0  0.0      0     0 ?        S    2月11   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    2月11   0:01 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   2月11   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    2月11   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    2月11   0:00 [rcu_bh]
代码语言:javascript
复制
[root@localhost ~]# ps -A
  PID TTY          TIME CMD
    1 ?        00:00:45 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:01 ksoftirqd/0
    5 ?        00:00:00 kworker/0:0H
    7 ?        00:00:00 migration/0
  • 查找特定进程信息
代码语言:javascript
复制
[root@localhost ~]# ps -ef | grep ssh
root      1784     1  0 2月11 ?       00:00:00 /usr/sbin/sshd
root     23126  1784  0 08:19 ?        00:00:00 sshd: root@pts/0
root     23325  1784  0 08:26 ?        00:00:00 sshd: root@pts/2
root     25351  1784  0 11:10 ?        00:00:00 sshd: root@pts/1
root     25413  1784  0 11:12 ?        00:00:00 sshd: root@pts/3
root     25728 25357  0 11:34 pts/1    00:00:00 grep --color=auto ssh

[root@localhost ~]

#

  • 显示指定用户信息
代码语言:javascript
复制
[root@localhost ~]#  ps -u root
  PID TTY          TIME CMD
    1 ?        00:00:45 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:01 ksoftirqd/0
    5 ?        00:00:00 kworker/0:0H
    7 ?        00:00:00 migration/0
  • 按 CPU 资源的使用量对进程进行排序
代码语言:javascript
复制
[root@localhost ~]# ps aux | sort -nk 3
avahi      767  0.0  0.1  57752  2256 ?        Ss   2月11   0:02 avahi-daemon: running [linux.local]
avahi      790  0.0  0.0  57624   384 ?        S    2月11   0:00 avahi-daemon: chroot helper
  • 按内存资源的使用量对进程进行排序
代码语言:javascript
复制
[root@localhost ~]# ps aux | sort -rnk 4 
gdm       3348  0.0  6.1 1509084 115020 ?      Sl   2月11  10:54 gnome-shell --mode=gdm
15.7 crontab

功能:定时任务命令

语法:

代码语言:javascript
复制
crontab [参数]

参数:

代码语言:javascript
复制
-e	编辑该用户的计时器设置
-l	列出该用户的计时器设置
-r	删除该用户的计时器设置
-u	指定要设定计时器的用户名称
--help	显示帮助信息

实例:

  • 创建、编辑计划任务
代码语言:javascript
复制
[root@localhost ~]# crontab -e  
no crontab for root - using an empty one
crontab: no changes made to crontab
  • 查看当前计划任务
代码语言:javascript
复制
[root@192 ~]# crontab -l  
*/2 * * * * /usr/sbin/ntpdate 58.220.207.226 &> /dev/null  
00 02 * * * sh auto_backup.sh &> /dev/null  
  • 删除某条计划任务
代码语言:javascript
复制
[root@localhost ~]# crontab -r 
15.8 nohup

功能:后端运行程序

nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

语法:

代码语言:javascript
复制
nohup [参数]

参数:

代码语言:javascript
复制
--help	在线帮助
--version	显示版本信息

实例:

  • 使用nohup命令在后台运行程序
代码语言:javascript
复制
[root@localhost ~]# nohup bash test.sh&

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10.6 parted
  • 十一、系统权限及用户授权
    • 11.1 chmod
    • 11.2 chown
    • 11.3 chgrp
    • 11.4 umask
  • 十二、查看系统用户登陆信息的命令
    • 12.1 whoami
    • 12.2 who
    • 12.3 w
    • 12.4 last
    • 12.5 lastlog
    • 12.6 users
    • 12.7 finger
  • 十三、内置命令相关
    • 13.1 echo
    • 13.2 printf
    • 13.3 rpm
    • 13.4 yum
    • 13.5 watch
    • 13.6 history
    • 13.7 nc
    • 13.8 type
    • 13.9 bc
    • 13.10 time
  • 十四、关机 /重启 / 注销
    • 14.1 shutdown
    • 14.2 halt
    • 14.3 poweroff
    • 14.4 logout
    • 14.5 exit
  • 十五、进程管理相关命令
    • 15.1 runlevel
    • 15.2 jobs
    • 15.3 kill
    • 15.4 killall
    • 15.5 pkill
    • 15.6 ps
    • 15.7 crontab
    • 15.8 nohup
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档