[Linux Shell学习系列三]常用Shell(Bash)命令-其他常用命令

hongsheyoumo 2020-05-14

D9

1. hostname命令

hostname命令用于查看系统的主机名,或是修改系统的主机名。

# hostname #显示当前的主机名
hostname

# hostname newhostname #修改为新的主机名

# cat /root/hostname.txt #在文件中列出新的主机名
newhostname
# hostname -F /root/hostname.txt #使用-F参数,从文件中读取新的主机名(以#开头的注释行会被忽略)

2. w、who命令

w命令用于显示登录的用户及他们当前运行的进程。

$ w
 13:38:39 up 163 days, 23:48,  6 users,  load average: 0.61, 0.59, 0.51
 #第一行与uptime命令输出信息一样
USER     TTY      FROM                IDLE   JCPU   PCPU WHAT
 #登录账户的用户名 tty名称 从哪台主机登录 登录时间 空闲时间 tty上的所有进程所使用的CPU时间 当前进程所使用的CPU时间 当前运行的进程
root     tty1                      12:27    1:10m  0.13s  0.13s -bash
user1   pts/0    192.168.1.200    09:44    3:43   0.10s  0.21s sshd: user1 [priv]

who命令与w命令相似,但功能更强大。

语法:who [OPTION]... [ FILE | ARG1 ARG2 ]

$ who #显示当前登录的所有用户信息
root     tty1         May 14 12:27
user1   pts/0        May 14 09:44 (192.168.1.100)
user1   pts/3        May 13 17:39 (192.168.1.200)

$ who -b #使用-b选项,显示系统的启动时间
         system boot  Dec  2 13:50

$ who -l #使用-l选项,显示系统登录进程
LOGIN    tty1        Dec  2 13:50              2158 id=1

$ who -m #使用-m选项,只显示与当前标准输入关联的用户信息
user1   pts/4        May 14 08:26 (192.168.1.200)

$ who -r #使用-r选项,显示系统的运行级别
         run-level 5  Dec  2 13:50

$ who -q #使用-q选项,只显示所有登录用户的用户名和登录的用户数
root user1 user1
# users=3

3. uptime命令

uptime命令用于打印系统的运行时间等信息。

$ uptime
 13:48:01 up 163 days, 23:57,  3 users,  load average: 1.01, 0.69, 0.57
#当前时间 系统已经连续运行了163天23小时57分钟 正在登录2个用户 load average显示系统过去1分钟、5分钟和15分钟的平均负载

注:什么是平均负载?参考:https://www.cnblogs.com/qiaoyanlin/p/12010413.html

简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。

4. uname命令

uname命令用于打印内核名称和版本、主机名等系统信息。

语法:uname [OPTION]...

$ uname #只打印内核的名称
Linux

$ uname -n #只打印系统的主机名
hostname

$ uname -r #打印内核版本信息
2.6.18-238.9.1.el5PAE

$ uname -m #打印系统的硬件名称
i868

$ uname -p #打印处理器类型的信息
i868

$ uname -i #打印系统的硬件平台信息
i386

$ uname -a #打印上述所有结果,与uname -snrvmpio命令相同
Linux hostname 2.6.18-238.9.1.el5PAE #1 SMP Thu Jul 18 20:25:13 UTC 2019 i868 i868 i386 GNU/Linux

5. date命令

date命令用于以多种格式显示日期和时间,或设置系统的日期和时间。

语法:

1) date [-u|--utc|--universal] [MMDDhhmm [ [CC] YY] [.ss] ]

$ date #以默认格式直接显示系统的当前时间
Thu May 14 13:59:53 CST 2020

$ date --date="10/1/2013" #使用-d或--date选项,指定日期和时间的字符串值,date命令会将输入的字符串转为相应的日期时间格式
Tue Oct  1 00:00:00 CST 2013 
$ date --date="1 Oct 2013"
Tue Oct  1 00:00:00 CST 2013
$ date --date="Oct 1 2013"
Tue Oct  1 00:00:00 CST 2013
$ date --date="Oct 1 2013 12:13:14"
Tue Oct  1 12:13:14 CST 2013
$ date --date="next mon"
Mon May 18 00:00:00 CST 2020
$ date --date="next week"
Thu May 21 14:01:14 CST 2020
$ date --date="last week"
Thu May  7 14:01:21 CST 2020
$ date --date="1 week ago"
Thu May  7 14:01:28 CST 2020
$ date --date="yesterday"
Wed May 13 14:01:36 CST 2020
$ date --date="last day"
Wed May 13 14:01:42 CST 2020

$ cat datefile #写了日期字符串的源文件
Oct 17 1986
Oct 13 1989
$ date --file=datefile #使用-f或--file选项,从文件中读取多个日期时间字符串,并以日期时间格式打印
Fri Oct 17 00:00:00 CST 1986
Fri Oct 13 00:00:00 CST 1989

# date -s "Thu May 14 15:59:53 CST 2020" #使用-s或--set选项,设定系统的日期和时间
Thu May 14 15:59:53 CST 2020

$ date -u #使用-u或--utc或--universal选项,打印世界标准时间
Thu May 14 06:03:42 UTC 2020

$ stat datefile #datefile文件的信息
  File: ‘datefile‘
  Size: 24              Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 265192      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1001/  ntrade)   Gid: ( 1001/  ntrade)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2020-05-14 14:02:51.911037671 +0800
Modify: 2020-05-14 14:02:46.465037671 +0800
Change: 2020-05-14 14:02:46.465037671 +0800
 Birth: -
$ date -r datefile #使用-r选项,打印指定文件的最近修改时间,同stat命令输出的Modify时间
Thu May 14 14:02:46 CST 2020

2) date [OPTION]... [+FORMAT]

$ date ‘+%T%n%D‘ #使用格式化选项来自定义date命令输出的日期和时间的格式,详细信息可$ man date
14:10:35
05/14/20

$ date ‘+%T%t%D‘ 
14:10:48        05/14/20

6. id命令

id命令用于打印用户的uid、gid、用户名和组名等用户身份信息。

语法:id [OPTION]... [USERNAME]

$ id #输出当前用户的uid、gid、用户组及所属的所有群组信息
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t
$ id -u #使用-u选项,只打印输出用户的uid
0
$ id -un #使用-u选项和-n选项,打印输出帐号的用户名,而不是uid
root
$ id -g #使用-g选项,只打印帐号当前起作用的gid
1001
$ id -gn #使用-g选项和-n选项,打印当前起作用的用户组名,而不是gid
root
$ id -G root #使用-G选项,打印帐号所属的所有群组的id
0
$ id -Gn root #使用-G选项和-n选项,打印输出帐号所属的所有群组的名称
root

本节结束

相关推荐