Liunx信息显示与文件搜索

. 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  # 发出警告声

    \b  # 删除前一个字符

    \c  # 最后不加上换行符号

    \n  # 换行且光标移至行首

    \r  # 光标移至行尾,但不换行

    \t  # 插入空格

[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\tworld"
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 "\033[40;37m 黑底白字 xiaolizi\033[0m"
echo -e "\033[41;37m 红底白字 xiaolizi\033[0m"
echo -e "\033[42;37m 绿底白字 xiaolizi\033[0m"
echo -e "\033[43;37m 黄底白字 xiaolizi\033[0m"
echo -e "\033[44;37m 蓝底白字 xiaolizi\033[0m"
echo -e "\033[45;37m 紫底白字 xiaolizi\033[0m"
echo -e "\033[46;37m 天蓝白字 xiaolizi\033[0m"
echo -e "\033[47;30m 白底黑字 xiaolizi\033[0m"

 

Liunx信息显示与文件搜索

 

. 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

 

上一篇:141. 环形链表 c++


下一篇:Python读取文件内容后将内容分组创建文件,写入对应的文件内容