. uname
显示系统相关信息,如内核版本号,硬件架构
-a # 显示系统所有相关信息
-m # 显示计算机硬件架构
-n # 显示主机名称
-r # 显示内核发行版本号
-s # 显示内核名称
-v # 显示内核版本
-p # 显示主机处理器类型
-o # 显示操作系统名称
-l # 显示硬件平台
[root@xiaolizi ~]# uname -a Linux xiaolizi 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux [root@xiaolizi ~]# uname -m x86_64 [root@xiaolizi ~]# uname -n xiaolizi [root@xiaolizi ~]# uname -r 2.6.32-431.el6.x86_64 [root@xiaolizi ~]# uname -s Linux [root@xiaolizi ~]# uname -v #1 SMP Sun Nov 10 22:19:54 EST 2013 [root@xiaolizi ~]# uname -p x86_64 [root@xiaolizi ~]# uname -o GNU/Linux [root@xiaolizi ~]# uname -i x86_64
. hostname
用于显示或这是系统的主机名,centos7以后,使用"hostnamectl set-hostname 主机名",来进行设置主机名,若是没有设置好,可能会导致网络服务不正常
-a # 如果设置了主机别名,则可以用a选项来显示主机的别名
-i # 显示主机IP地址,依赖DNS解析
-I # 显示主机的所有IP地址,不依赖DNS,速度较快
-s # 显示短格式主机名
[root@xiaolizi ~]# hostname -a [root@xiaolizi ~]# hostname -i 172.16.1.51 [root@xiaolizi ~]# hostname -I 172.16.1.51 [root@xiaolizi ~]# hostname -s xiaolizi
# 修改主机名可以 vi /etc/sysconfig/network centos7 系统是vi /etc/hostname
# 配置主机的hosts解析:vim /etc/hosts
. dmesg
显示内核环形缓冲区的内容。在进行系统引导时,内核会将硬件额模块儿初始化相关的额信息,写到这个缓冲区中。内核环形缓冲区中的消息对于诊断系统问题非常有用
缓冲区的内容同时会保存到/var/log目录中,名称为dmesg的文件。
-s bufsize # 设置缓冲区大小
-n level # 显示消息等级
-c # 显示信息后,清除环形数据区中的内容
. stat
详细显示文件或文件系统的状态信息
[root@mysql-141 log]# stat /etc/hosts File: `/etc/hosts' Size: 379 Blocks: 8 IO Block: 4096 regular fil e Device: 803h/2051d Inode: 524317 Links: 2 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root ) Access: 2019-04-18 09:30:01.513013568 +0800 Modify: 2019-03-04 22:31:01.421152388 +0800 Change: 2019-03-04 22:31:01.422152340 +0800
[root@mysql-141 log]# stat -f /etc/hosts # 查看文件系统属性
File: "/etc/hosts"
ID: 9a066e069b873705 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 12439993 Free: 11147539 Available: 10513952
Inodes: Total: 3170304 Free: 3082870
[root@mysql-141 log]# stat -c %a /etc/hosts # 取出文件的权限信息
644
. type
用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法
[root@NC-TEST ~]# type ls # 别名 ls is aliased to `ls --color=auto' [root@NC-TEST ~]# type mysql # 外部命令 mysql is /usr/bin/mysql [root@NC-TEST ~]# type alias # 内置命令 alias is a shell builtin [root@NC-TEST ~]# type if # shell的内置命令 if is a shell keyword
. du
统计磁盘空间的使用情况,主要用于找出磁盘占用较大的文件
-a # 显示所有文件大小
-h # 以K M G为单位查看文件
-s # 显示文件的总大小
--exclude=目录文件 # 忽略指定的目录文件
-X # 从文件中读取需要忽略的的目录或者文件
-max-depth=N 显示N级子目录的大小,当N=0时,该参数和-s参数的效果一样
[root@mysql-141 ~]# du -a # 显示当前目录下所有文件(包含隐藏文件) 4 ./.pki/nssdb 8 ./.pki 4 ./.bash_profile 4 ./backup_check.sh [root@mysql-141 ~]# du -s # 当前目录的总大小 164 . [root@mysql-141 ~]# du -h # 换成容易理解的方式 4.0K ./.pki/nssdb 8.0K ./.pki 4.0K ./test 164K . [root@mysql-141 ~]# du -sh # 此用法较多 164K . [root@mysql-141 ~]# du -sh /usr/local/ 132K /usr/local/ [root@mysql-141 ~]# du -h --max-depth=1 /usr/local/ # 只显示第一层目录的大小,不能与-s连用,会报错,冲突 4.0K /usr/local/etc 4.0K /usr/local/lib 4.0K /usr/local/include 4.0K /usr/local/bin 4.0K /usr/local/src [root@mysql-141 ~]# du -h --max-depth=1 /usr/local/ --exclude=/usr/local/share # 排除指定目录 4.0K /usr/local/etc 4.0K /usr/local/lib 4.0K /usr/local/include
. date
用于显示当前的系统时间或设置系统时间,一般用于根据date命名备份文件
-d # 显示指定字符串所描述的时间,而非当前时间
-f # 从日期文件中按行读入时间描述
-r # 显示指定文件的最后修改时间
-u # 显示或设置UTC时间
-s # 设置时间
[root@mysql-141 ~]# date # 显示当前日期 Thu Apr 18 10:29:19 CST 2019 [root@mysql-141 ~]# date +%y # 显示年,短格式 19 [root@mysql-141 ~]# date +%Y # 显示年,长格式 2019 [root@mysql-141 ~]# date +%m # 显示月 04 [root@mysql-141 ~]# date +%d # 显示日 18 [root@mysql-141 ~]# date +%H # 显示小时 10 [root@mysql-141 ~]# date +%M # 显示分钟 30 [root@mysql-141 ~]# date +%S # 显示秒 07 [root@mysql-141 ~]# date +%F # 显示特殊格式日期(年-月-日) 2019-04-18 [root@mysql-141 ~]# date +%T # 显示特殊格式日期(时分秒) 10:30:38
[root@mysql-141 ~]# date +%F -d "-1day" # 显示前一天的日期,day可以替换成year,month等 2019-04-17 [root@mysql-141 ~]# date +%F -d "+1day" 2019-04-19 [root@mysql-141 ~]# date # 时间并没有变化 Thu Apr 18 10:34:00 CST 2019 [root@mysql-141 ~]# date -d "Thu Apr 18 10:34:00 CST 2019" "+%Y-%m-%d % H:%M:%S" # 时间格式转化 2019-04-18 10:34:00
. echo
将指定的文本先到在命令行上
-n # 不自动换行
-E # 默认参数,不接戏转义字符
-e # 当出现下列字符,需要进行特别处理,而不会当成一段文字输出
a # 发出警告声
# 删除前一个字符
c # 最后不加上换行符号
# 换行且光标移至行首
# 光标移至行尾,但不换行
# 插入空格
[root@mysql-141 ~]# echo Hello world! Hello world! [root@mysql-141 ~]# echo 'Hello world!' Hello world! [root@mysql-141 ~]# echo "Hello world!" -bash: !": event not found [root@mysql-141 ~]# echo -e "Hello world" Hello world [root@mysql-141 ~]# echo "xiaolizi1";echo "xiaolizi2" xiaolizi1 xiaolizi2 [root@mysql-141 ~]# echo -n "xiaolizi1";echo "xiaolizi2" xiaolizi1xiaolizi2
[root@mysql-141 ~]# echo $PATH
/application/mysql/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/
sbin:/usr/bin:/root/bin
echo -e " 33[40;37m 黑底白字 xiaolizi 33[0m"
echo -e " 33[41;37m 红底白字 xiaolizi 33[0m"
echo -e " 33[42;37m 绿底白字 xiaolizi 33[0m"
echo -e " 33[43;37m 黄底白字 xiaolizi 33[0m"
echo -e " 33[44;37m 蓝底白字 xiaolizi 33[0m"
echo -e " 33[45;37m 紫底白字 xiaolizi 33[0m"
echo -e " 33[46;37m 天蓝白字 xiaolizi 33[0m"
echo -e " 33[47;30m 白底黑字 xiaolizi 33[0m"
. watch
以全屏的方式动态显示命令或程序的执行情况
-n # 命令执行的时间间隔,默认为2s
-d # 高亮显示命令结果的变动之处
-t # 关闭watch命令在顶部显示的时间间隔,命令及当前时间的输出
[root@mysql-141 ~]# watch -n 1 -d netstat -ant Every 1.0s: netstat -ant Thu Apr 18 11:16:36 2019 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 10.0.0.141:22 10.0.0.1:64080 ESTABLISHED tcp 0 0 :::3306 :::* LISTEN tcp 0 0 :::22 :::* LISTEN ctrl + c 退出
. which
显示命令的全路径
-a # 遍历所有PATH路径,尽心匹配命令路径,输出所有匹配项
. whereis
定位指定命令的可执行文件,源码文件及man帮助文件的路径
-b # 查找可执行文件
-m # 查找man帮助文件
-s # 查找源代码文件
[root@mysql-141 ~]# whereis svn svn: /usr/bin/svn /usr/share/man/man1/svn.1.gz [root@mysql-141 ~]# whereis -b svn svn: /usr/bin/svn [root@mysql-141 ~]# whereis -m svn svn: /usr/share/man/man1/svn.1.gz [root@mysql-141 ~]# whereis -s svn # 没找到相应文件 svn:
. locate
快速定位文件路径。系统中包含一个mlocate.db的数据库文件,里面有文件系统的文件名及对应的路径信息
此命令查找文件时不用遍历磁盘,而是直接查找数据库文件,可以快速给出结果。但是,如果是新添加的文
件,name数据库就没有记录,因此可以先使用updatedb命令更新一下mlocate.db文件。
-c # 不显示匹配内容,只显示匹配到的行数
-r # 支持基本正则表达式
-i # 匹配时忽略大小写
--regex # 支持扩展正则表达式匹配
[root@mysql-141 ~]# locate pwd |head /bin/pwd /etc/.pwd.lock /etc/latrace.d/pwd.conf /lib/modules/2.6.32-696.el6.x86_64/kernel/drivers/watchdog/hpwdt.ko /sbin/unix_chkpwd /server/tools/mysql-5.6.38/extra/yassl/taocrypt/include/pwdbased.hpp /server/tools/mysql-5.6.38/sql-bench/pwd.bat /usr/bin/pwdx [root@mysql-141 ~]# ll -h /var/lib/mlocate/mlocate.db -rw-r----- 1 root slocate 2.1M Apr 18 09:36 /var/lib/mlocate/mlocate.db