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

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

原文地址:https://www.cnblogs.com/huihuangyan/p/13688561.html