一、简单命令
1、date命令
- 显示和修改时间
[root@localhost profile.d]#date ---显示时间
Fri Jan 25 20:45:25 CST 2018
[root@localhost ~]#date +%D ---以月/日/年的格式显示日期
01/25/18
[root@localhost ~]#date +%F ---以年-月-日的格式显示日期
2018-01-25
[root@localhost ~]#date +%T ---显示时间
20:53:37
[root@localhost ~]#date +"%F %T" ---显示日期和时间
2018-01-25 20:54:30
[root@localhost ~]#date 012520562018.30 ---修改时间,时间格式为月日小时分年.秒
Thu Jan 25 20:56:30 CST 2018
[root@localhost ~]#date -d -10day +%A ---显示10天前是星期几
Monday
- 和服务器172.18.0.1时间同步
[root@centos6 ~]#ntpdate 172.18.0.1
25 Jan 21:20:33 ntpdate[7744]: step time server 172.18.0.1 offset 37.359560 sec
- 显示硬件时间
[root@localhost ~]#clock
Thu 25 Jan 2018 09:22:21 PM CST -0.423684 seconds
选项
-w 以系统时间为准,校正硬件时间
-s 以硬件时间为准,校正系统时间
- 显示日历
[root@localhost ~]#cal
January 2018
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
[root@localhost ~]#cal 08 2008 ---显示某年某月日历
August 2008
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
- 调整时区
CentOS 6
[root@localhost ~]#date
Thu Jan 25 16:16:11 CAT 2018 ---目前时区
[root@localhost ~]#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ---修改时区
cp: overwrite `/etc/localtime'? y
[root@localhost ~]#date
Thu Jan 25 22:17:36 CST 2018 ---时区改变
CentOS 7
[root@localhost ~]#date
Thu Jan 25 16:29:17 CAT 2018 ---目前时区
[root@localhost ~]#timedatectl list-timezones ---查看时区
[root@localhost ~]#timedatectl set-timezone Asia/Shanghai ---修改时区
[root@localhost ~]#date
Thu Jan 25 22:30:23 CST 2018 ---时区改变
2、shutdown命令
用法:shutdown [OPTION]... TIME [MESSAGE]
-r: reboot
-h: halt
-c:cancel
TIME:无指定,默认相当于+1
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如+3
hh:mm: 绝对时间表示,指明具体时间
- 设置5分钟之后关机
[root@localhost ~]#shutdown +5 system will shutdown
Shutdown scheduled for Thu 2018-01-25 22:47:07 CST, use 'shutdown -c' to cancel.
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Thu 2018-01-25 22:42:07 CST):
system will shutdown
The system is going down for power-off at Thu 2018-01-25 22:47:07 CST!
shutdown -c
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Thu 2018-01-25 22:42:26 CST):
The system shutdown has been cancelled at Thu 2018-01-25 22:43:26 CST!
3、screen命令——同步终端操作信息
说明:screen命令主要有两个应用,一个是通过共享终端操作信息进行远程帮助,另一个是在会话中运行耗时长的命令,可以防止网络异常导致命令异常终止。
创建新screen会话
screen –S [SESSION]
剥离当前screen会话
Ctrl+a,d ---显示[detached]表示已经剥离出来
显示所有已经打开的screen会话
screen -ls
加入screen会话
screen –x [SESSION]
恢复某screen会话
screen -r [SESSION]
退出并关闭screen会话
exit
[root@localhost ~]#screen -ls
No Sockets found in /var/run/screen/S-root.
[root@localhost ~]#screen -S testscreen
Ctrl+a,d
[detached] ---显示[detached]表示已经剥离出来了
[root@localhost ~]#screen -ls
There is a screen on:
4305.testscreen (Detached)
1 Socket in /var/run/screen/S-root.
[root@localhost ~]#screen -x 4305
[detached]
[root@localhost ~]#screen -r 4305
exit
4、echo命令
语法:echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
选项:
-E (默认)不支持\解释功能
-n 不自动换行
-e 启用\字符的解释功能
- 常用选项
[root@centos7 ~]#echo -e "\a"---发出声音
[root@centos7 ~]#echo -e "abca\bef"---退格键
abcef
[root@centos7 ~]#echo -e "abc\cdf"---启用不自动换行
abc[root@centos7 ~]#echo -e "abc\ndf"---启用自动换行
abc
df
[root@centos7 ~]#echo -e "abe\rd"---不换行光标移至行首
dbe
[root@centos7 ~]#echo -e "aa\tbb\tcc\ndd\tee\tff"---加入制表符
aa bb cc
dd ee ff
[root@centos7 ~]#echo -e "\0101"---八进制所代表的ASCII字符
A
[root@centos7 ~]#echo -e "\x61"---十六进制所代表的ASCII字符
a
- 命令行扩展$( ) 或把一个命令的输出打印给另一个命令的参数
[root@centos7 ~]#echo "echo $UID"
echo 0
[root@centos7 ~]#echo 'echo $UID'
echo $UID---当成字符串
[root@centos7 ~]#echo `echo $UID`
0---命令调用命令即命令行扩展
- 括号扩展:{ }
打印重复字符串的简化形式
[root@centos7 ~]#echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@centos7 ~]#echo {20..10}
20 19 18 17 16 15 14 13 12 11 10
[root@centos7 ~]#echo {2,5,6}
2 5 6
[root@centos7 ~]#echo {a,b,c}.{txt,log}
a.txt a.log b.txt b.log c.txt c.log
[root@centos7 ~]#echo {1..100..3}
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100
[root@centos7 ~]#echo {000..100..3}
000 003 006 009 012 015 018 021 024 027 030 033 036 039 042 045 048 051 054 057 060 063 066 069 072 075 078 081 084 087 090 093 096 099
- 显示内容带颜色
echo显示内容带颜色显示,需要使用参数-e
格式如下:
echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"
例如:
echo -e "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
注意:
1、字背景颜色和文字颜色之间是英文的双引号""
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格
下面是相应的字和背景颜色,可以自己来尝试找出不同颜色搭配
例如:
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[34m 黄色字 \033[0m”
echo -e “\033[41;33m 红底黄字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
字颜色:30—–37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
字背景颜色范围:40—–47
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m”
二、命令历史(history)
命令行历史记录分为内存中储存的历史和硬盘上储存的历史。当开启一个会话时,系统读取硬盘上的历史记录到内存中,并且随着用户操作将新命令行历史记录追加到内存中。会话结束时,内存中的历史记录更新硬盘历史记录。
硬盘中的历史记录路径:~/.bash_history
1、调用历史
- 重复执行上一条命令:使用上方向键,并回车执行
- !string 重复前一个以“string”开头的命令
- !?string 重复前一个包含string的命令
- ^Sting1^String2 将上一条命令中的第一个string1替换为string2
- command !^ : 利用上一个命令的第一个参数做cmd的参数
- command !$ : 利用上一个命令的最后一个参数做cmd的参数
- command !* : 利用上一个命令的全部参数做cmd的参数
2、命令history
history [-c] [-d offset] [n]
history -anrw[filename]
history -psarg[arg...]
-c: 清空命令历史
-d: 删除历史中指定的命令 如history -d 2 表示删除第二条历史
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件---注意是新执行的命令
-n: 读历史文件中未读过的行到历史列表---比如新开的会话,历史不多,会把历史文件中未读过的行到历史列表中,不重复
-r: 读历史文件附加到历史列表---输入一次就会读一次,会重复
-w: 保存历史列表到指定的历史文件---重新登录也会保存到历史文件中
-p: 展开历史参数成多行,但不存在历史列表中---意思是执行参数命令但是不形成历史记录,隐藏历史
-s: 展开历史参数成一行,附加在历史列表后---意思是不执行参数命令,但是形成历史记录,伪造历史
- 常用选项
[root@centos7 ~]#history -c ---删除内存中的历史,退出重新登录后会从历史文件中把历史读到内存中
[root@centos7 ~]#history
1 history
[root@centos7 ~]#history -p `hostname`---执行命令但不记录历史
centos7.magedu.com
[root@centos7 ~]#history
1 history
[root@centos7 ~]#history -p `rm -f /app/*`---但遇到删除命令等敏感词汇时还是会记录历史
[root@centos7 ~]#history
1 history
2 history -p `rm -f /app/*`---记录历史
3 history
[root@centos7 ~]#history -s "rm -rf /"--- 命令不执行,但记录到历史中
[root@centos7 ~]#history
1 history
2 history -n
3 history
4 ls
5 pwd
6 ll
7 history
8 rm -rf /---记录到历史中,可以伪造历史
9 history
总结:如果要想做坏事不被别人发现,可以先删除历史文件、再删除内存中的历史,然后exit。
3、命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups默认,忽略重复的命令,连续且相同为“重复”
ignorespace忽略所有以空白开头的命令
ignoreboth相当于ignoredups, ignorespace的组合
erasedups删除重复命令
export 变量名="值“
存放在/etc/profile 或~/.bash_profile,建议存放在自己的家目录里,然后.或者source让文件生效即可。
- 举例
[root@centos7 ~]#HISTTIMEFORMAT="%F %T "---加时间
[root@centos7 ~]#history
1 2017-07-18 10:27:18 history
2 2017-07-18 10:27:20 l
3 2017-07-18 10:27:21 ll
4 2017-07-18 10:27:23 pwd
5 2017-07-18 10:27:24 cd
6 2017-07-18 10:31:09 HISTTIMEFORMAT="%F %T "
7 2017-07-18 10:31:15 history
[root@centos7 ~]#HISTIGNORE="ll*"---忽略以ll开头的命令
[root@centos7 ~]#ll
total 8
-rw-------. 1 root root 1884 Jul 14 11:24 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Desktop
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Documents
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Downloads
-rw-r--r--. 1 root root 1915 Jul 14 11:54 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Music
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Pictures
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Public
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Templates
drwxr-xr-x. 2 root root 6 Jul 14 11:54 Videos
[root@centos7 ~]#history
1 2017-07-18 10:27:18 history
2 2017-07-18 10:27:20 ls
3 2017-07-18 10:27:21 ll
4 2017-07-18 10:27:23 pwd
5 2017-07-18 10:27:24 cd
6 2017-07-18 10:31:09 HISTTIMEFORMAT="%F %T "
7 2017-07-18 10:31:15 history
8 2017-07-18 10:32:56 HISTIGNORE="passwd*"
9 2017-07-18 10:33:38 HISTIGNORE="ll*"
10 2017-07-18 10:33:49 history
[root@centos7 ~]#HISTCONTROL=ignoreboth---忽略重复和以空白开头的命令
[root@centos7 ~]#pwd
/root
[root@centos7 ~]#pwd
/root
[root@centos7 ~]# ls
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
[root@centos7 ~]#history
1 2017-07-18 10:27:18 history
2 2017-07-18 10:27:20 ls
3 2017-07-18 10:27:21 ll
4 2017-07-18 10:27:23 pwd
5 2017-07-18 10:27:24 cd
6 2017-07-18 10:31:09 HISTTIMEFORMAT="%F %T "
7 2017-07-18 10:31:15 history
8 2017-07-18 10:32:56 HISTIGNORE="passwd*"
9 2017-07-18 10:33:38 HISTIGNORE="ll*"
10 2017-07-18 10:33:49 history
11 2017-07-18 10:35:42 pwd
12 2017-07-18 10:35:50 history
13 2017-07-18 10:36:54 HISTCONTROL=ignoreboth
14 2017-07-18 10:36:58 pwd
15 2017-07-18 10:37:19 history
3、如何实现屏幕录像
[root@centos7 ~]#script -t 2> /app/time.log -a /app/cmd.log---准备录屏的time.log和cmd.log两个文件,一个用来存时间,一个用来存执行的命令,并开始录屏
Script started, file is /app/cmd.log
---执行一些命令
[root@centos7 ~]#hostname
centos7.magedu.com
[root@centos7 ~]#ls
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
---执行退出命令
[root@centos7 ~]#exit
exit
Script done, file is /app/cmd.log
---执行以下命令开始播放录屏
[root@centos7 ~]#scriptreplay /app/time.log /app/cmd.log
三、如何获取帮助
- 内部命令获取帮助
help command
man bash - 外部命令获取帮助
man command
command -- help - 获取帮助的步骤
[root@centos7 ~]#type passwd---判读以下是内部命令还是外部命令
passwd is /usr/bin/passwd
[root@centos7 ~]#whatis passwd---查看章节,并显示每个章节的信息
passwd (1) - update user's authentication tokens
sslpasswd (1ssl) - compute password hashes
passwd (5) - password file
[root@centos7 ~]#man 1 passwd ---最后用man来查帮助信息
- 一些命令
[root@centos7 ~]#whereis passwd---显示路径和man帮助文档路径
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
[root@centos7 ~]#man -a passwd---显示全部章节信息,按q后进入下一个章节
[root@centos7 ~]#man -k passwd 相当于搜索,比如不知道干什么,可以搜索的关键字
chpasswd (8) - update passwords in batch mode
fgetpwent_r (3) - get passwd file entry reentrantly
getpwent_r (3) - get passwd file entry reentrantly
gpasswd (1) - administer /etc/group and /etc/gshadow
grub2-mkpasswd-pbkdf2 (1) - Generate a PBKDF2 password hash.
lpasswd (1) - Change group or user password
lppasswd (1) - add, change, or delete digest passwords.
pam_localuser (8) - require users to be listed in /etc/passwd
passwd (1) - update user's authentication tokens
sslpasswd (1ssl) - compute password hashes
passwd (5) - password file
passwd2des (3) - RFS password encryption
pwhistory_helper (8) - Helper binary that transfers password hashes from passwd or shadow to opasswd
saslpasswd2 (8) - set a user's sasl password
smbpasswd (5) - The Samba encrypted password file
vncpasswd (1) - change the VNC password
- man帮助文档行间跳转
gg/1G 跳至第一行
G 跳至最后一行
100G 跳至第100行
三、文件系统分层结构
-
目录结构
- 文件类型-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket - 如何不重启机器识别新增加的磁盘
执行以下命令
echo '- - -' > /sys/class/scsi_host/host0/scan
echo '- - -' > /sys/class/scsi_host/host1/scan
echo '- - -' > /sys/class/scsi_host/host2/scan
echo '- - -' > /sys/class/scsi_host/host3/scan
echo '- - -' > /sys/class/scsi_host/host4/scan