Linux终端有两种,分别是桌面终端和远程终端,桌面终端根据不同的桌面分为GNOME桌面的GNOME Terminal、KDE桌面的Konsole Terminal。而远程终端有基于SSH2协议的SecureCRT、XShell。
GNOME Ternimal
SecureCRT
如果想要知道当前使用是哪个终端,可以使用tty命令查看终端
其中/dev/pts/1表示第一个终端,/dev/pts/2表示第二个终端。
如果你在SecureCRT上也登录了centos7.8,那么当输入tty命令时将会输出/dev/pts/3,即表示第三个终端
在操作终端的过程中有一些常用的快捷键
Ctrl+Shift+N:快速打开一个终端
Ctrl+Shift+ +:终端字体放大
Ctrl+Shift+ -:终端字体减小
在一台服务器的多个终端之间是可以进行通讯。例如可以使用echo message > 终端 发送指定的消息。
首先同时打开两个终端/dev/pts/1和/dev/pts/2然后在/dev/pts/1上使用命令echo ittimeline.net >/dev/pts/2时,第二个终端/dev/pts/2收到了消息ittimeline.net
shutdown命令用于关机,该命令必须使用root用户执行,普通用户(例如guanglei)无法执行该命令。
使用命令shutdown +10 实现十分钟后关机,该命令会向所有的终端广播消息
shutdown +10
其他终端也收到10分钟之后关机的消息
如果想要终止可以使用shutdown -c取消关机,在输入该命令之前需要使用Ctrl+c中断命令shutdown +10的执行。
当取消关机时,该命令也会发送广播消息给所有的终端
如果想要通过终端广播消息,可以使用命令wall ”message“实现
当在终端设备/dev/pst/1上使用命令wall "boss is comming"时,此时/dev/pst/2和/dev/pst/3都收到了该消息
wall message
Linux Shell提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并提交到内核去执行。Shell实际上是一个命令解释器,它通过解释用户输入的命令并提交给内核执行。Shell有自己的编程语言,它允许用户编写由Shell命令组成的程序。Shell编程语言具有常用编程语言(C/C++)的许多特点,比如说它也有循环结构和分支控制等等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
Shell执行命令的流程当用户输入命令时会提交到Shell,Shell会判断该命令是否是内部命令,如果是内部命令,则直接执行系统内核对应的功能调用,如果是外部命令,Shell会在系统中查找该命令对应的执行程序并加载到内存中执行。
内部命令是在系统启动时就加载到内存中,是常驻内存,所以执行效率高。外部命令是系统软件的功能,用户需要时才会从硬盘加载到内存中。
可以通过type command来查看当前执行的命令是内部命令还是外部命令。
例如当执行命令type pwd时输出pwd是shell 内嵌,即内部命令。而当执行命令type cat时输出cat 命令对应的路径/usr/bin/cat,即外部命令。
[root@ittimeline ~]# type pwd
pwd 是 shell 内嵌
[root@ittimeline ~]# type cat
cat 是 /usr/bin/cat
后期在进行Linux系统管理(文件目录、用户、权限、磁盘、软件、网络等等)都是通过Shell实现的。
当以root用户登录系统时,Shell命令提示会显示[root@ittimeline ~]#
[root@ittimeline ~]#
而当以普通用户guanglei登录时,Shell命令提示符会显示[guanglei@ittimeline ~]$
[guanglei@ittimeline ~]$
因此如果在Shell命令提示符中看到$表示该用户是普通用户,如果看到#表示该用户是系统管理员root用户。
如果想要从root用户切换到普通用户guanglei,可以使用su - guanglei
[root@ittimeline guanglei]# su - guanglei
上一次登录:二 6月 23 12:46:18 CST 2020pts/3 上
[guanglei@ittimeline ~]$ whoami
guanglei
Shell命令提示符[root@ittimeline ~]#表示的含义[用户名@主机名 当前所在目录],其中~表示用户的家目录,而#表示root用户,$表示普通用户。
如果想要知道系统支持哪些Shell类型,可以通过命令cat /etc/shells查看
[root@ittimeline ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
如果想要知道当前系统具体使用的是哪种Shell,取决于用户配置,可以通过命令head -1 /etc/passwd查看/etc/passwd文件的第一行
[root@ittimeline ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
通过命令可以查看到当前root用户使用的Shell是Bash Shell。
Linux命令由命令、【选项】和【参数】三部分组成,其中命令就是具体执行的命令,例如pwd,whoami,head等等,而选项是影响到命令的一些行为操作,通常是以-或者是--实现,参数就是命令作用的对象。
以命令ls -al /home/guanglei为例,其中ls命令查看文件列表,-a选项是显示所有文件,包含隐藏文件(.开头的文件就是隐藏文件),l表示文件的详细信息。参数/home/guanglei 就是命令作用的路径。
[root@ittimeline ~]# ls -al /home/guanglei/
总用量 32
drwx------. 15 guanglei guanglei 4096 6月 23 09:48 .
drwxr-xr-x. 3 root root 22 6月 23 07:29 ..
-rw-------. 1 guanglei guanglei 215 6月 23 12:52 .bash_history
-rw-r--r--. 1 guanglei guanglei 18 4月 1 10:17 .bash_logout
-rw-r--r--. 1 guanglei guanglei 193 4月 1 10:17 .bash_profile
-rw-r--r--. 1 guanglei guanglei 231 4月 1 10:17 .bashrc
drwx------. 14 guanglei guanglei 4096 6月 23 07:41 .cache
drwxr-xr-x. 14 guanglei guanglei 261 6月 23 09:48 .config
drwx------. 3 guanglei guanglei 25 6月 23 07:35 .dbus
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Desktop
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Documents
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Downloads
-rw-------. 1 guanglei guanglei 16 6月 23 07:35 .esd_auth
-rw-------. 1 guanglei guanglei 620 6月 23 09:48 .ICEauthority
drwx------. 3 guanglei guanglei 19 6月 23 07:35 .local
drwxr-xr-x. 4 guanglei guanglei 39 6月 23 07:20 .mozilla
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Music
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Pictures
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Public
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Templates
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Videos
ls命令的作用查看当前目录下有哪些文件,其语法就是ls 目录/文件,如果不加路径参数,默认就是查看当前路径下的内容
例如这里使用普通用户guanglei登录后查看/home/guanglei目录下的文件列表
[guanglei@ittimeline ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
使用pwd命令可以查看当前用户所在的路径
[guanglei@ittimeline ~]$ pwd
/home/guanglei
使用 ls -l 选项可以查看当前路径文件列表的详细信息
[guanglei@ittimeline ~]$ ls -l
总用量 0
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Desktop
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Documents
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Downloads
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Music
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Pictures
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Public
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Templates
drwxr-xr-x. 2 guanglei guanglei 6 6月 23 09:48 Videos
这里为了更加具体的了解文件的详细信息,首先使用命令cd Documents切换到Documents目录下,然后使用touch file.txt创建一个空的文本文件,接下来使用命令ls -l file.txt查看file.txt的文件详细信息
[guanglei@ittimeline ~]$ cd Documents/
[guanglei@ittimeline Documents]$ touch file.txt
[guanglei@ittimeline Documents]$ ls -l file.txt
-rw-rw-r--. 1 guanglei guanglei 0 6月 23 13:30 file.txt
ls -l file.txt命令输出如下
-rw-rw-r--. 1 guanglei guanglei 0 6月 23 13:30 file.txt
使用命令echo "hello world" >file.txt往file.txt写入字符串helloworld,然后再次使用ls -l file.txt查看文件详细信息。
[guanglei@ittimeline Documents]$ echo "hellworld" > file.txt
[guanglei@ittimeline Documents]$ ls -l file.txt
-rw-rw-r--. 1 guanglei guanglei 10 6月 23 13:35 file.txt
Linux下/dev目录是用于存放各种设备文件,如果想要查看不同类型的文件,可以使用命令ls -l /dev查看,CentOS系统中不同的颜色表示不同的文件类型。
颜色代表内容举例蓝色目录/etc黑色文件/etc/passwd浅蓝色链接/etc/grub2.cfg红色压缩包boot.tar.gz绿色可执行文件/etc/init/d/network黑底黄字设备文件/dev/sda
ls -a选项用于列出指定目录下的所有文件,包括以.开头的隐藏文件,如果存在两个点代表着父目录,一个点表示当前目录。
ls -a 查看/home/guanglei/下的所有文件
[guanglei@ittimeline ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
[guanglei@ittimeline ~]$ ls -a
. .bash_history .bash_profile .cache .dbus Documents .esd_auth .local Music Public Videos
.. .bash_logout .bashrc .config Desktop Downloads .ICEauthority .mozilla Pictures Templates
ls -ld 查看指定目录的详细信息
查看/root目录的详细信息
[guanglei@ittimeline ~]$ ls -ld /root/
dr-xr-x---. 5 root root 221 6月 23 12:58 /root/
查看/home/guanglei目录的详细信息
[guanglei@ittimeline ~]$ ls -ld /home/guanglei/
drwx------. 15 guanglei guanglei 4096 6月 23 09:48 /home/guanglei/
ls -S 查看文件目录,并且以文件的大小排序(默认是降序)
查看/root目录,并且按照文件大小排序
[root@ittimeline ~]# ls -lS /root/
总用量 8
-rw-r--r--. 1 root root 1852 6月 23 07:33 initial-setup-ks.cfg
-rw-------. 1 root root 1804 6月 23 07:29 anaconda-ks.cfg
在Shell中,ls -l和ll执行的结果是等价的
[root@ittimeline ~]# ll
总用量 8
-rw-------. 1 root root 1804 6月 23 07:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 1852 6月 23 07:33 initial-setup-ks.cfg
[root@ittimeline ~]# ls -l
总用量 8
-rw-------. 1 root root 1804 6月 23 07:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 1852 6月 23 07:33 initial-setup-ks.cfg
当使用type命令查看ll时输出结果显示ll是ls -al的别名
[root@ittimeline ~]# type ll
ll 是 `ls -l --color=auto' 的别名
那么如何创建一个别名呢?这里以常用的编辑网卡配置为例,CentOS7中编辑网卡配置,通常会使用命令vim
/etc/sysconfig/network-scripts/ifcfg-ens33来编辑网卡配置文件ifcfg-ens33。为了实现同样的作用,我们可以使用alias命令来创建一个别名,其格式类似于编程语言中变量的声明,alias 变量名=变量值,其中变量值需要使用""包含起来,而变量名通常是英文开头。
[root@ittimeline ~]# alias vimens33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
当别名创建完成后就可以使用vimens33来快速编辑网卡配置文件ifcfg-ens33
[root@ittimeline ~]# vimens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="f474f5ec-6f09-43b5-bfd9-88750562441f"
DEVICE="ens33"
ONBOOT="yes"
IPV6_PRIVACY="no"
如果想要删除别名,可以使用命令unalias 命令别名。
[root@ittimeline ~]# unalias vimens33
[root@ittimeline ~]# vimens33
bash: vimens33: 未找到命令...
而alias命令创建的别名在服务器重启后会丢失。
如果想要别名永远有效,可以使用命令vim .bashrc来编辑.bashrc用户配置文件,将alias定义的别名存储在该文件中。
在使用vim .bashrc编辑.bashrc文件时,此时vim处于命令模式,可以按i键进入编辑模式。
[root@ittimeline ~]# vim .bashrc
当编辑文件时,系统已经存在如下别名
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
然后将ens33的别名追加到已有别名的后面
别名追加完成以后输入:wq保存.bashrc修改的内容,然后使用命令source .bashrc重新加载配置,需要注意的是该命令只在当前终端刷新.bashrc的配置。如果是其他已经打开的终端无法使用,则需要再次使用source .bashrc重新加载配置文件。
[root@ittimeline ~]# source .bashrc
刚才编辑的.bashrc文件位于/root目录下,因此别名vimens33只会对root用户有效,普通用户(例如guanglei)则是无效的
Last login: Tue Jun 23 13:26:10 2020 from 192.168.0.115
[guanglei@ittimeline ~]$ vimens33
bash: vimens33: 未找到命令...
[guanglei@ittimeline ~]$
如果想要所有用户都能使用别名(例如ens33),则需要在修改/etc目录下的bashrc文件。
[root@ittimeline ~]# vim /etc/bashrc
在使用vim编辑该文件时,首先下滑到文件的末尾,然后按i键由命令模式切换到编辑模式,然后添加别名vimens33的配置
alias vimens33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
添加vimens33配置
配置添加完成后按esc退出编辑模式,然后按:wq保存文件,再使用命令source /etc/bashrc重新加载配置。
[root@ittimeline ~]# source /etc/bashrc
然后重新使用普通用户(guanglei)登录,输入别名vimens33便可以实现快速修改网卡配置
[guanglei@ittimeline ~]$ vimens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="f474f5ec-6f09-43b5-bfd9-88750562441f"
DEVICE="ens33"
ONBOOT="yes"
IPV6_PRIVACY="no"
~
通过ens33别名修改网卡
cd命令用于切换目录,其用法就是cd 目录
可以使用cd ~切换到用户的家目录
root用户使用cd ~和cd切换到家目录
[root@ittimeline ~]# cd ~
[root@ittimeline ~]# pwd
/root
[root@ittimeline ~]# cd
[root@ittimeline ~]# pwd
/root
普通用户guanglei使用cd ~和cd切换到家目录
[guanglei@ittimeline ~]$ cd ~
[guanglei@ittimeline ~]$ pwd
/home/guanglei
[guanglei@ittimeline ~]$ cd
[guanglei@ittimeline ~]$ pwd
/home/guanglei
cd ..可以切换到上一级目录
guanglei用户切换到/home/guanglei的上一级目录
[guanglei@ittimeline ~]$ pwd
/home/guanglei
[guanglei@ittimeline ~]$ cd ..
[guanglei@ittimeline home]$ pwd
/home
cd .进入到当前目录
[guanglei@ittimeline home]$ pwd
/home
[guanglei@ittimeline home]$ cd .
[guanglei@ittimeline home]$ pwd
/home
cd - 返回切换前的目录
[guanglei@ittimeline home]$ pwd
/home
[guanglei@ittimeline home]$ cd -
/home/guanglei
[guanglei@ittimeline ~]$ cd -
/home
在Shell中可以通过上下键来切换之前输入的命令,除此以外可以使用history获取输入的历史命令
[guanglei@ittimeline home]$ history
1 ifconfig
2 tty
3 tty
4 echo ittimeline.net >/dev/pts/2
5 shutdown +10
6 clear
7 tty
8 clear
9 tty
10 walk "boss is coming"
11 whoami
12 exit
13 su root
14 su - root
15 su root
16 eixt
17 exit
18 clear
19 su guanglei
20 clear
21 clear
22 su -guanglei
23 clear
24 su - guanglei
25 ls
26 pwd
27 ls -l
28 cd Documents/
29 touch file.txt
30 ls -l file.txt
31 echo "hellworld" > file.txt
32 ls -l file.txt
33 ls /dev
34 clear
35 ls -l /dev
36 clear
37 cd ../
38 pwd
39 clear
40 ls
41 ls -a
42 ls /
43 clear
44 ls .
45 ls
46 ls -ld /root/
47 ls -ld /home/guanglei/
48 ls /home/guanglei/
49 ls -l /home/guanglei/
50 ls -ld /home/guanglei/
51 pwd
52 ls -lS /root/
53 clear
54 vimens33
55 clear
56 cd ~
57 pwd
58 cd
59 pwd
60 cd ..
61 pwd
62 cd -
63 pqd
64 clear
65 pwd
66 cd .
67 pwd
68 cler
69 clear
70 history
如果想要在history命令的输出结果中查找历史的命令,可以使用如下方法:
[guanglei@ittimeline network-scripts]$ !26
pwd
/etc/sysconfig/network-scripts
当输入!who,history会匹配到whoami命令
[guanglei@ittimeline network-scripts]$ !who
whoami
guanglei
例如在使用ping baidu.com 检查网络连接时,如果网络通常,则会一直输出接收的数据包信息,如果想要此时停止接收数据,则此时可以使用快捷键Ctrl+c来终止前台运行的ping程序
[guanglei@ittimeline network-scripts]$ ping baidu.com
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=50 time=27.7 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=50 time=27.8 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=50 time=29.7 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=4 ttl=50 time=28.2 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 27.797/28.414/29.781/0.833 ms
[guanglei@ittimeline network-scripts]$
使用clear或者快捷键Ctrl+L清除屏幕
当首先执行cat /etc/hosts后,再执行vim !$后,上一个命令的最后一个参数/etc/hosts会传入到vim命令中并被得到执行
[guanglei@ittimeline ~]$ cat /etc/hosts
7.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[guanglei@ittimeline ~]$ vim !$
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
~
[guanglei@ittimeline ~]$ wh
whatis whereis which while whiptail who whoami
Tab补全命令还有一种应用场景就是补全路径,例如在使用cd切换路径时,如果忘记某个完整路径,可以使用Tab来补全
[guanglei@ittimeline ~]$ cd /home/guanglei/
在Linux中有硬件时钟与系统时钟两种时钟。硬件时钟指的是主板上的时钟设备,也就是通常可以在BIOS中设定的时钟,可以在root用户登录后使用hwclock命令查看
[root@ittimeline guanglei]# hwclock
Thu 25 Jun 2020 11:57:39 AM CST -0.037282 seconds
CST (China Standard Time):中国标准时间GMT(Greenwich Mean Time):格林威治时间UTC(Universal Time Coordinated):世界标准时间
系统时钟指的是Linux Kernel中的时钟,所有Linux相关的指令与函数都是读取系统时钟的设定。当Linux系统启动时,系统时钟会去读取硬件时钟的设定,然后系统时钟独立运作。系统时间可以通过date命令查看。
[guanglei@ittimeline ~]$ date
Thu Jun 25 11:57:38 CST 2020
date除了可以显示系统时间外,还可以修改系统时间,在使用date 命令修改时间之前,首先需要了解时间的格式,可以通过命令date --help查看date命令的帮助信息
下面是截取的日期格式说明
%% 一个文字的 %
%a 当前locale 的星期名缩写(例如: 日,代表星期日)
%A 当前locale 的星期名全称 (如:星期日)
%b 当前locale 的月名缩写 (如:一,代表一月)
%B 当前locale 的月名全称 (如:一月)
%c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d 按月计的日期(例如:01)
%D 按月计的日期;等于%m/%d/%y
%e 按月计的日期,添加空格,等于%_d
%F 完整日期格式,等价于 %Y-%m-%d
%g ISO-8601 格式年份的最后两位 (参见%G)
%G ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
%h 等于%b
%H 小时(00-23)
%I 小时(00-12)
%j 按年计的日期(001-366)
%k hour, space padded ( 0..23); same as %_H
%l hour, space padded ( 1..12); same as %_I
%m month (01..12)
%M minute (00..59)
%n 换行
%N 纳秒(000000000-999999999)
%p 当前locale 下的"上午"或者"下午",未知时输出为空
%P 与%p 类似,但是输出小写字母
%r 当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
%R 24 小时时间的时和分,等价于 %H:%M
%s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S 秒(00-60)
%t 输出制表符 Tab
%T 时间,等于%H:%M:%S
%u 星期,1 代表星期一
%U 一年中的第几周,以周日为每星期第一天(00-53)
%V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
%w 一星期中的第几日(0-6),0 代表周一
%W 一年中的第几周,以周一为每星期第一天(00-53)
%x 当前locale 下的日期描述 (如:12/31/99)
%X 当前locale 下的时间描述 (如:23:13:48)
%y 年份最后两位数位 (00-99)
%Y 年份
%z +hhmm 数字时区(例如,-0400)
%:z +hh:mm 数字时区(例如,-04:00)
%::z +hh:mm:ss 数字时区(例如,-04:00:00)
%:::z 数字时区带有必要的精度 (例如,-04,+05:30)
%Z 按字母表排序的时区缩写 (例如,EDT)
其中比较常用的日期格式有
%F 完整日期格式,等价于 %Y-%m-%d
%y 年份最后两位数位 (00-99)
%Y 年份
%m month (01..12)
%d 按月计的日期(例如:01)
%M minute (00..59)
%H 小时(00-23)
%S 秒(00-60)
date除了可以显示时间以外,还可以通过date -s "STRING" 把时间设置成字符串所描述的时间
将日期修改为指定的时间
[root@ittimeline ~]# date -s "2020-6-25 12:17 "
2020年 06月 25日 星期四 12:17:00 CST
[root@ittimeline ~]# date
2020年 06月 25日 星期四 12:17:00 CST
显示完整日期
[root@ittimeline ~]# date "+%F"
2020-06-25
显示完整日期和时间
[root@ittimeline ~]# date "+%Y-%m-%d %H:%M:%S"
2020-06-25 12:32:34
[root@ittimeline ~]# date "+%Y/%m/%d %H:%M:%S"
2020/06/25 12:32:42
显示时间
[root@ittimeline ~]# date "+%H:%M:%S"
12:30:42
date -d 显示字由字符串描述的时间,而不是当前时间
例如查看当前时间的下个月的时间
[root@ittimeline ~]# date
2020年 06月 25日 星期四 12:34:37 CST
[root@ittimeline ~]# date -d "+1 months"
2020年 07月 25日 星期六 12:34:45 CST
[root@ittimeline ~]# time ls -al /etc/
real 0m0.010s
user 0m0.005s
sys 0m0.005s
real 表示实际使用时间,user表示用户状态使用时间,sys表示内核状态使用时间。实际使用时间=用户状态使用时间+内核状态使用时间
由于CentOS7.8在企业运维的应用场景基本都是基于字符界面的命令使用。如果在使用命令时不知道怎么使用,这时就可以通过帮助命令来了解命令的使用方法。常用的查看帮助信息的命名有如下几个
[root@ittimeline ~]# man find
man find
在使用man 命令时使用/ keyword可以搜索指定的关键字,搜索关键字时使用n跳转到下一个匹配结果,p返回上一个匹配结果,退出使用q。
2. 命令的--help选项
通过--help选项查看find命令的帮助信息,通过输出结果显示对比man命令,--help显示的帮助信息就少很多了。
[root@ittimeline ~]# find --help
find --help
Linux下常用的关机、重启命令有shutdown、init、reboot
shutdown主要是用于关机、重启和定时关机。该命令只用root用户能够使用,普通用户无法使用shutdown -r表示重启计算机shutdown -r 时间 表示定时重启shutdown -h表示关机,shutdown -h 时间 表示定时关机shutdown -c 取消关机
使用shutdown -h +10实现10分钟后关机,然后立即使用shutdown -c 取消关机
[root@ittimeline ~]# shutdown -h +10
Shutdown scheduled for 四 2020-06-25 13:20:26 CST, use 'shutdown -c' to cancel.
[root@ittimeline ~]#
Broadcast message from root@ittimeline.net (Thu 2020-06-25 13:10:26 CST):
The system is going down for power-off at Thu 2020-06-25 13:20:26 CST!
^C
[root@ittimeline ~]# shutdown -c
Broadcast message from root@ittimeline.net (Thu 2020-06-25 13:10:31 CST):
The system shutdown has been cancelled at Thu 2020-06-25 13:11:31 CST!
[root@ittimeline ~]#
如果想要立即关机可以使用shutdown -h now实现,关机以后需要从VMware WorkStation Pro 中启动虚拟机。
而且关机以后所有的客户端连接(例如这里的SecureCRT)都会关闭,
待虚拟机中的系统开机之后点击会话重新连接。
Linux系统的启动级别主要作用是切换系统的运行级别,通过init命令加上数字0-6之间的7个数字来进行切换。该命令也只能是root用户使用0:系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,此时机器处于关闭状态。1:单用户模式:root权限,用于系统维护,禁止远程登录,就像windows下的安全模式登录2:多用户模式,没有NFS和网络支持3:完整的多用户文本模式,有NFS和网络,登录后进入控制台的命令行模式4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情,例如在笔记本电脑电池耗尽时,可以切换到这个模式做一些设置。5:图形化模式,登录后进入图形GUI模式,例如CentOS7.8就会进入GNOME桌面6:重启模式,默认运行级别不能为6,否则不能正常启动,运行init 6机器就会重启。
在Linux系统的日常使用中,通常使用init 0来进行关机,init 3进入字符界面,init 5进入图形界面(前提条件是安装了图形界面)。如果是从init3切换到init5,通常是在系统内置的虚拟终端进行。
当使用普通用登录时,默认打开终端登录的用户也是普通用户,此时可以使用 命令su root命令和密码来切换成root用户
然后输入命令init 3回车后进入字符界面,然后输入普通用户的账号和密码就可以登录
然后便可以输入相关的命令进行操作了
如果想要切换回图形界面只需要输入命令init 5并输入root用户密码后便可以切换成图形界面,因为之前的CentOS7.8安装了图形化界面GNOME。
图形界面
如果图形界面卡顿时可以修改默认的启动级别为字符界面CentOS7不在使用/etc/inittab文件进行默认的启动级别设置,而是使用比sysvinit的运行级别更为自由的target替代。其中第三运行级别用multi-user.target替代,第五运行级别用graphical.target替代。
设置默认启动级别为3,即字符界面,该设置重启后生效
[root@ittimeline ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
[root@ittimeline ~]#
使用shutdown -r now命令重启系统后发现CentOS7.8是在字符界面下启动
设置默认启动级别为5,即图形化界面,该设置重启后生效
[root@ittimeline ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
如果想要查看当前系统的运行级别,可以通过runlevel命令或者是systemctl get-default查看
如果systemctl get-default输出的结果是graphical.taget表示当前的运行级别是图形化界面
[root@ittimeline ~]# systemctl get-default
graphical.target
runlevel命令可以查看系统启动级别的切换过程
[root@ittimeline ~]# runlevel
5 3
[root@ittimeline ~]# init 5
[root@ittimeline ~]# runlevel
3 5