zoukankan      html  css  js  c++  java
  • LINUX核心命令实战总结六——信息显示与搜索文件命令

    1.1 uname:显示系统信息

    【功能说明】

    命令uname用于显示系统相关信息,比如内核版本号、硬件架构。

    【语法格式】

     uname             [OPTION]...
     uname             [选项]...

    【选项说明】

    命令uname的参数选项及说明

    参数选项

    解释说明(带*的为重点)

    -a

    显示系统所有相关信息

    -m

    显示计算机硬件架构

    -n

    显示内核发行版本号(*

    -r

    显示主机名称(*

    -s

    显示内核名称

    -v

    显示内核版本

    -p

    显示主机处理器类型

    -o

    显示操作系统名称

    -i

    显示硬件平台

    【使用范例】

    基础范例

    [root@web01 data]# uname -a
    Linux web01 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    [root@web01 data]# uname -m
    x86_64
    [root@web01 data]# uname -n
    web01
    [root@web01 data]# uname -r
    2.6.32-504.el6.x86_64
    [root@web01 data]# uname -s
    Linux
    [root@web01 data]# uname -v
    #1 SMP Wed Oct 15 04:27:16 UTC 2014
    [root@web01 data]# uname -p
    x86_64
    [root@web01 data]# uname -o
    GNU/Linux
    [root@web01 data]# uname -i
    x86_64
    View Code

    5.2 hostname:显示或设置系统的主机名

    【功能说明】

    命令hostname用于显示或设置系统的主机名称,许多网络程序均用主机名来标识主机,如没有设置好主机名,则可能会导致网络服务不正常。

    【语法格式】

    hostname [option]
    
    hostname [选项]

    【选项说明】

    命令hostname的参数及说明

    参数选项

    解释说明(带*的为重点)

    -a

    如果设置了主机别名,则可以用a选项来显示主机的别名

    -i

    显示主机的IP地址,这个参数需要依赖DNS解析,比较慢,推荐使用下面的1选项

    -I

    显示主机的所有IP地址,不依赖DNS解析,速度较快(*

    -s

    显示短格式主机名

    【使用范例】

    显示主机名

    [root@web01 data]# hostname
    web01

    临时修改主机名

    [root@web01 data]# hostname A
    [root@web01 data]# logout
    [yanhuihuang@web01 ~]$ logout
    [root@web01 ~]# logout
    
    Last login: Sun Jan 21 21:07:47 2018 from 10.16.50.4
    [root@A ~]# 

    永久修改主机名

    [root@A ~]# vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=web01

    配置主机hosts解析

    [root@A ~]# vi /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 web01
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.28.11.232     server
    10.28.11.234     client
    10.28.11.235     web01
    10.28.11.236     web02

    获取IP地址

    root@A ~]# hostname -i
    61.131.208.210
    [root@A ~]# hostname -I
    10.28.11.235 10.16.50.243  

    1.3 dmesg:系统启动异常诊断

    【功能说明】

    命令dmesg用于显示内核环形缓冲区的内容。

    [root@A ~]# ll -h /var/log/dmesg
    -rw-r--r-- 1 root root 76K 1月  17 20:26 /var/log/dmesg

    【语法格式】

    dmesg         [option]
    dmesg         [选项]

    【选项说明】

    参数选项

    解释说明(带*的为重点)

    -c

    显示信息后,清除环形缓冲区中的内容

    -s bufsize

    设置缓冲区大小,默认16384

    -n level

    显示消息等级

    【使用范例】

    查看内核环形缓冲区

    [root@A ~]# dmesg|less
    Initializing cgroup subsys cpuset
    Initializing cgroup subsys cpu
    Linux version 2.6.32-504.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Oct 15 04:27:16 UTC 2014
    Command line: ro root=/dev/mapper/vg_root-lv_root rd_NO_LUKS rd_LVM_LV=vg_root/lv_root rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_root/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    KERNEL supported cpus:

    1.4 stat:显示文件或文件系统状态

    【功能说明】

    命令stat用于详细显示文件或文件系统的状态信息

    【语法格式】

    stat         [OPTION]...             FILE...
    stat         [选项]...                 文件或目录...

    【选项说明】

    命令stat的参数及说明

    参数选项

    解释说明(带*的为重点)

    -f

    显示文件所在分区的文件系统状态而非文件状态

    -c

    使用指定输出格式代替默认值(*

    -t

    使用简洁格式输出

     【使用范例】

    查看文件属性

    [root@A ~]# stat /etc/hosts
      File: "/etc/hosts"
      Size: 258             Blocks: 8          IO Block: 4096   普通文件
    Device: fd00h/64768d    Inode: 1310748     Links: 3
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2018-01-24 09:21:45.266816319 +0800
    Modify: 2018-01-24 09:21:00.371391860 +0800
    Change: 2018-01-24 09:21:00.379395431 +0800

    查看系统属性

    [root@A ~]# stat -f /etc/hosts
      File: "/etc/hosts"
        ID: d576dc0bc0d0a8fd Namelen: 255     Type: ext2/ext3
    Block size: 4096       Fundamental block size: 4096
    Blocks: Total: 12868767   Free: 12315047   Available: 11659687
    Inodes: Total: 3276800    Free: 3209810

    1.5 du:统计磁盘空间使用情况

    【功能说明】

    命令du可以用于统计磁盘空间的使用情况。

    【语法格式】

    du             [OPTION]...         [FILE]...
    du             [选项]...             [文件]...

    【选项说明】

    命令du的参数及说明

    参数选项

    解释说明(带*的为重点)

    -a

    显示所有文件大小

    -h

    以人类可读的方式查看大小。

    -s

    显示文件的总大小

    --exclude=<目录或文件>

    略过指定的目录或文件

    -X,--exclude-from=FILE

    从文件读取需要略过的目录或文件

    --max-depth=N

    显示N级子目录的大小,当N=0时,该参数和-s参数的效果一样

    【使用范例】

    通过参数-a显示所有目录或文件所占空间

    [root@A ~]# du -a
    4       ./.bashrc
    4       ./dir2
    4       ./test1/d
    4       ./test1/e
    4       ./test1/b
    4       ./test1/a
    0       ./eth1
    24     .

    参数-s-h的使用案例

    [root@A ~]# du -s
    296     .
    [root@A ~]# du -h
    4.0K    ./dir2
    4.0K    ./test1/d
    4.0K    ./test1/e
    4.0K    ./test1/b
    4.0K    ./test1/a
    4.0K    ./test1/g
    4.0K    ./test1/c
    4.0K    ./test1/f
    32K     ./test1
    4.0K    ./test
    4.0K    ./yhh/dir_1/dir_2.1
    4.0K    ./yhh/dir_1/dir_2.2
    12K     ./yhh/dir_1
    4.0K    ./yhh/dir_2/dir_2.1
    4.0K    ./yhh/dir_2/dir_2.2
    12K     ./yhh/dir_2
    4.0K    ./yhh/han
    32K     ./yhh
    4.0K    ./yanhuihuang1
    4.0K    ./dir1
    4.0K    ./yanhuihuang2
    4.0K    ./yan/yui/huihuang
    8.0K    ./yan/yui
    12K     ./yan
    4.0K    ./yanhuihuang
    4.0K    ./data
    296K    .
    [root@A ~]# du -sh
    296K    .
    [root@A ~]# du -sh /etc/hosts
    4.0K    /etc/hosts
    View Code

    显示指定层次的目录大小

    [root@A ~]# du -h --max-depth=1 /usr/local
    4.0K    /usr/local/sbin
    4.0K    /usr/local/lib
    4.0K    /usr/local/lib64
    92K     /usr/local/share
    4.0K    /usr/local/games
    4.0K    /usr/local/include
    4.0K    /usr/local/src
    4.0K    /usr/local/etc
    4.0K    /usr/local/libexec
    4.0K    /usr/local/bin
    132K    /usr/local
    [root@A ~]# du -h --max-depth=2 /usr/local
    4.0K    /usr/local/sbin
    4.0K    /usr/local/lib
    4.0K    /usr/local/lib64
    4.0K    /usr/local/share/info
    4.0K    /usr/local/share/applications
    80K     /usr/local/share/man
    92K     /usr/local/share
    4.0K    /usr/local/games
    4.0K    /usr/local/include
    4.0K    /usr/local/src
    4.0K    /usr/local/etc
    4.0K    /usr/local/libexec
    4.0K    /usr/local/bin
    132K    /usr/local
    View Code

    排除指定目录的案例

    [root@A ~]# du -h --max-depth=2 /usr/local --exclude=/usr/local/share
    4.0K    /usr/local/sbin
    4.0K    /usr/local/lib
    4.0K    /usr/local/lib64
    4.0K    /usr/local/games
    4.0K    /usr/local/include
    4.0K    /usr/local/src
    4.0K    /usr/local/etc
    4.0K    /usr/local/libexec
    4.0K    /usr/local/bin
    40K     /usr/local
    View Code

    1.6 date:显示与设置系统时间

    【功能说明】

    命令date用于显示当前的系统时间或设置系统时间。

    【语法格式】

    date [OPTION]... [+FORMAT]
    
    date [选项]... [+日期格式]

    【选项说明】

    命令date的参数选项及说明

    参数选项

    解释说明(带*的为重点)

    OPTION参数选项

    -d时间字符串

    显示指定字符串所描述的时间,而非当前时间(*

    -f时间文件

    从日期文件中按行读入时间描述

    -r文件

    显示指定文件的最后修改时间

    -s 日期时间

    设置系统时间(*

    -u

    显示或设置UTC时间

    FORMAT日期格式

    %y

    年份的后两位

    %Y

    年份2018

    %m

    月份(01-12

    %d

    每月的第几天

    %h

    月名缩写,等于%b

    %H

    24小时制

    %M

    分(00-59

    %S

    秒(00-59

    %F

    完整的日期格式,等价于%Y-%m-%d2018-01-22

    %T

    时间,等于%H:%M:%S

    【使用范例】

    [root@A ~]# date +%y
    18
    [root@A ~]# date +%Y
    2018
    [root@A ~]# date +%m
    01
    [root@A ~]# date +%d
    24
    [root@A ~]# date +%H
    11
    [root@A ~]# date +%M
    05
    [root@A ~]# date +%S
    19
    [root@A ~]# date +%F
    2018-01-24
    [root@A ~]# date +%T
    11:05:31
    [root@A ~]# date +%F%T
    2018-01-2411:05:48
    [root@A ~]# date +%F-%T
    2018-01-24-11:05:53
    [root@A ~]# date +%F/%T
    2018-01-24/11:06:06
    View Code

    通过参数-d显示指定字符串所描述的时间示例

    [root@A ~]# date +%F -d "-1day"
    2018-01-23
    [root@A ~]# date +%F -d "yesterday"
    2018-01-23
    [root@A ~]# date +%F -d "-2day"    
    2018-01-22
    [root@A ~]# date +%F -d "+1day"
    2018-01-25
    [root@A ~]# date +%F -d "tomorrow"
    2018-01-25
    [root@A ~]# date +%F -d "+2day"   
    2018-01-26
    [root@A ~]# date +%F -d "1month"
    2018-02-24
    [root@A ~]# date +%F -d "1year" 
    2019-01-24
    View Code

    通过参数-s设定时间

    [root@A ~]# date -s 20180124
    2018年 01月 24日 星期三 00:00:00 CST
    [root@A ~]# date -s "11:27:30 20180124"
    2018年 01月 24日 星期三 11:27:30 CST

    显示时间后换行,再显示日期

    [root@A ~]# date +%T%n%D
    11:29:16
    01/24/18

    1.7 echo:显示一行文本

    【功能说明】

     命令echo能将指定的文本显示在linux命令行上

    【语法说明】

    echo [SHORT-OPTION]... [STRING]...
    
    echo  [选项]... [文本]...

    【选项说明】

    命令echo参数选项及说明

    参数选项

    解释说明(带*的为重点)

    -n

    不要自动换行(*

    -E

    不解析转义(默认参数)

    -e

    若字符串中出现以下字符,则需要进行特别处理,而不会将它当成一般文字输出(*

     【使用范例】

    打印文本到屏幕输出

    [root@A ~]# echo Hello world
    Hello world
    [root@A ~]# echo Hello world!
    Hello world!
    [root@A ~]# echo 'Hello world!'
    Hello world!
    [root@A ~]# echo "Hello world!"
    -bash: !": event not found
    [root@A ~]# echo "Hello world"!
    Hello world!
    [root@A ~]# echo "Hello world!"
    Hello world!
    [root@A ~]# echo -e  "Hello	 world"!
    Hello    world!
    View Code

    将单行文本输出到某个文件中

    [root@A ~]# echo "hello world" >>hello.txt
    [root@A ~]# cat hello.txt
    hello world
    View Code

    使用-n参数

    [root@A ~]# echo "yanhuihuang";echo "yanhui"
    yanhuihuang
    yanhui
    [root@A ~]# echo -n "yanhuihuang";echo "yanhui"
    yanhuihuangyanhui

    打出彩色

    [root@A ~]# echo -e "33[30m yanhuihuang 33[0m"
     yanhuihuang 
    [root@A ~]# echo -e "33[30m yanhuihuang 33[0m"
     yanhuihuang 
    [root@A ~]# echo -e "33[31m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[32m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[33m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[34m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[35m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[36m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[37m yanhuihuang 33[0m" 
     yanhuihuang 
    View Code

     为打印效果

    [root@A ~]# echo -e "33[41;37m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[42;37m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[43;37m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[44;37m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[45;37m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[46;37m yanhuihuang 33[0m" 
     yanhuihuang 
    [root@A ~]# echo -e "33[47;37m yanhuihuang 33[0m" 
     yanhuihuang 
    View Code

     打印变量内容

    [root@A ~]# echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    1.8 watch:监视命令执行情况

    【功能说明】

    命令watch可以全屏的方式动态显示命令或程序的执行情况

    【语法格式】

    watch    [option]    [command]
    
    watch    [选项]    [命令]

    【选项说明】

    参数选项

    解释说明(带*的为重点)

    -n

    命令执行的间隔时间,默认为2s

    -d

    高亮显示命令结果的变动之处

    -t

    关闭watch命令在顶部显示的时间间隔、命令及当前时间的输出

    【使用范例】

    每个1s高亮显示网络连接数变化情况

    [root@A ~]# watch -n 1 -d netstat -ant
    Every 1.0s: netstat -ant                                                                         Wed Jan 24 12:34:30 2018
    
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State
    tcp        0      0 0.0.0.0:51921               0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN

    监视当前目录中的test.txt文化的变化

    [root@A data]# echo 1 2 3 4 >>test.txt
    [root@A data]# watch  cat test.txt
    Every 2.0s: cat test.txt                                                                         Wed Jan 24 12:42:04 2018
    
    
    1 2 3 4

    参数-t不显示标题

    [root@A data]# echo 1234 >>test.txt
    [root@A data]# watch -t  cat test.txt
    
    1234

    1.9 which:显示命令的全路径

    【功能说明】

    命令which用于显示的全路径,which命令查找范围是PATH环境变量的路径

    【语法格式】

    which [options] programname [...]
    
    which [选项] 命令名 [...]

    【选项说明】

    命令which的参数选项及说明

    参数选项

    解释说明(带*的为重点)

    -a

    默认在PATH路径中由前往后查找命令,如果查找到了,就停止匹配。使用-a选项将遍历所有PATH路径,输出所有匹配项。

    【使用范例】

    查找指定命令的全路径

    [root@A data]# echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@A data]# which date
    /bin/date
    [root@A data]# which which
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
            /usr/bin/which

    参数-a的测试

    [root@A data]# which -a cd
    /usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

    5.10 whereis: 显示命令及其相关文件全路径

    【功能说明】

    命令whereis用于定位指定命令的可执行文件、源码文件及man帮助文件的路径。

    【语法格式】

    whereis [option] filename...
    
    whereis [选项] 文件名...

    【选项说明】

    命令whereis参数选项及说明

    参数选项

    解释说明(带*的为重点)

    -b

    查找可执行文件

    -m

    查找man帮助文件

    -s

    查找源代码文件

     【使用范例】

    [root@A data]# whereis cd
    cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
    [root@A data]# whereis -b  cd
    cd:
    [root@A data]# whereis -m  cd 
    cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
    [root@A data]# whereis -s  cd 
    cd:

    1.11 locate:快速定位文件路径

    【功能说明】

    Linux 系统里有一个名为mlocate.dbde 数据库文件,这个文件包含系统文件的文件名及对应的路径信息。

    【语法格式】

    locate [OPTION]... PATTERN...
    
    locate [选项]... 文件名...

    【使用说明】

    参数选项

    解释说明(带*的为重点)

    -U

    更新指定目录相关的数据库信息,默认是扫描整个系统,耗时较长,因此可以使用这个参数

    -v

    显示命令的执行过程

    【使用范例】

    查看数据库

    [root@A data]# ll -h /var/lib/mlocate/mlocate.db
    -rw-r----- 1 root slocate 1.6M 1月  24 03:11 /var/lib/mlocate/mlocate.db

    更新数据库

    [root@A data]# locate yhh
    /yhh
    /data/dir2/yhh00
    /data/dir2/yhh01
    [root@A data]# ll -h /var/lib/mlocate/mlocate.db
    -rw-r----- 1 root slocate 1.8K 1月  24 16:11 /var/lib/mlocate/mlocate.db

    1.13思想:新手在工作中如何问问题不会被鄙视

    如果因害怕而不敢问问题,可能会无法完成工作,甚至会失去成长机会;如果随意问问题又可能会被鄙视,甚至丢掉工作,我们该怎么问问题?

    1、首先问身边的中低运维同事。

    因为大家水平相差不会太大,同事可能不会觉得你所问的问题太过简单,也有可能他也不会,如果能给出解答则更好,就不用去问其他高级运维同事。

    2、如果中低运维同事也不会,再去问身边的高级运维同事,因为中低运维都不会,所以高级运维就不会觉得你的问题太过简单了。

    3、如果前面的人都不会,最后去问领导,首先领导可能不会觉得你的问题过于简单而留下不好的感觉,而且会知道你爱好思考。

     但是和技术不太相关的问题,一入职就尽早问,比如:网站业务细节,网站架构,运维文档,运维规范、流程制度等。

  • 相关阅读:
    harbor两层nginx代理导致push不成功401
    docker hub国内镜像
    iOS越狱后导入照片
    Failed to list *v1.Secret: secrets is forbidden: User "system:node
    Centos设置limit最大打开文件数和最大进程数
    grafana设置主页面板
    MySQL数据库设计规范
    tcp time_wait
    mysqldiff No module named utilities.common.tools
    mongodb 慢查询排查
  • 原文地址:https://www.cnblogs.com/huihuangyan/p/13688561.html
Copyright © 2011-2022 走看看