第五章 資訊顯示與搜尋檔案命令
5.1 uname
顯示系統資訊
uname -a 可以看到更多的資訊,顯示所有
Linux oldbody 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Linux 代表核心名稱 oldboy代表主機名 2.6.32-573.el6.x86_64 核心發行版本號
1 SMP Thu Jul 23 15:44:03 UTC 2015 核心的版本號
cat /etc/redhat-release 可以看到版本
CentOS release 6.7 (Final)
uname -r可以看到核心
2.6.32-573.el6.x86_64
uname -n 顯示主機名 或者hostname 或者cat /etc/sysconfig/network
[[email protected] ~]# hostname oldbody [[email protected] ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=oldbody [[email protected] ~]#
5.2 hostname
顯示或設定系統的主機名
引數 -I 顯示主機的所有IP地址 速度較快 不依賴與DNS解析
修改主機名:hostname liangli 退出後登入才能生效 但是伺服器重啟後,又恢復到了oldboy了,因為配置檔案沒有修改 命令列和配置檔案都需要修改才能永久生效
sed -i ‘s#HOSTNAME=oldbody#HOSTNAME=liangli#g’ >/etc/sysconfig/network
注意:在CentOS7中 修改主機名的配置檔案換成了/etc/hostname
檔案系統:組織管理檔案的一種機制,對磁碟一格式化,就是建立檔案系統了
5.3 dmesg
系統啟動異常診斷
核心環形緩衝區的內容同時儲存在/var/log目錄中,即名稱dmesg的檔案裡
[[email protected] ~]# ll -h /var/log/dmesg -rw-r--r-- 1 root root 84K 10月 8 19:45 /var/log/dmesg
5.4 stat
顯示檔案或檔案系統狀態
引數 -c 使用指定輸出格式代替預設值
[[email protected] test]# stat /etc/hosts File: `/etc/hosts' 檔名 Size: 158 檔案大小 Blocks: 8 佔用block數量 IO Block: 4096 block總大小(8*512) regular file 普通檔案型別 Device: 803h/2051d Inode: 654109 檔案的inode值 Links: 2 檔案的硬連結數 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-09-01 00:01:20.993999985 +0800 Modify: 2010-01-12 21:28:22.000000000 +0800 Change: 2018-06-15 15:03:24.607961371 +0800 [[email protected] test]# [[email protected] ~]# stat -c %a /etc/hosts 644 [[email protected] ~]#
5.5 du
統計磁碟空間使用情況
-h 人類可讀
-s 顯示檔案總大小
-a 顯示所有檔案大小
--max-depth 顯示N級目錄的大小
--exclude 略過指定的目錄或檔案
[[email protected] ~]# du -ah 顯示當前目錄下所有檔案或目錄 4.0K ./1.txt 4.0K ./.bashrc 4.0K ./.bash_logout 4.0K ./.viminfo 0 ./key1 4.0K ./.cshrc 4.0K ./liangli/a.txt 0 ./liangli/a/1.txt 4.0K ./liangli/a/3 4.0K ./liangli/a/1 4.0K ./liangli/a/2 0 ./liangli/a/2.txt 0 ./liangli/a/3.txt 16K ./liangli/a 4.0K ./liangli/b.txt 4.0K ./liangli/b/3 4.0K ./liangli/b/2 0 ./liangli/b/2.txt 4.0K ./liangli/b/4 0 ./liangli/b/3.txt 0 ./liangli/b/4.txt 16K ./liangli/b 44K ./liangli 4.0K ./xac 4.0K ./key/oldgirl 0 ./key/file3.txt 4.0K ./key/dir2.txt 4.0K ./key/dir4.txt 4.0K ./key/oldboy 4.0K ./key/key 4.0K ./key/key.gz 0 ./key/file1.txt 0 ./key/file2.txt 4.0K ./key/dir5.txt 4.0K ./key/dir1.txt 4.0K ./key/oldboy.gz.tar 0 ./key/file4.txt 4.0K ./key/dir3.txt 4.0K ./key/oldgirl.gz.tar 0 ./key/file5.txt 48K ./key 4.0K ./lsab 4.0K ./.lesshst 0 ./soft_link 4.0K ./anaconda-ks.cfg 16K ./.bash_history 8.0K ./install.log.syslog 4.0K ./xaa 4.0K ./.bash_profile 4.0K ./oldboy.txt 4.0K ./xab 4.0K ./liangli2018/dir1.ori/4 4.0K ./liangli2018/dir1.ori/7 4.0K ./liangli2018/dir1.ori/6 4.0K ./liangli2018/dir1.ori/5 20K ./liangli2018/dir1.ori 4.0K ./liangli2018/dir2/4 4.0K ./liangli2018/dir2/7 4.0K ./liangli2018/dir2/6 4.0K ./liangli2018/dir2/5 20K ./liangli2018/dir2 4.0K ./liangli2018/dir3/4 4.0K ./liangli2018/dir3/7 4.0K ./liangli2018/dir3/6 4.0K ./liangli2018/dir3/5 20K ./liangli2018/dir3 4.0K ./liangli2018/oldboy/test 8.0K ./liangli2018/oldboy 4.0K ./liangli2018/dir1/7 4.0K ./liangli2018/dir1/6 4.0K ./liangli2018/dir1/5 16K ./liangli2018/dir1 88K ./liangli2018 4.0K ./hard_link 4.0K ./.tcshrc 4.0K ./lsaa 4.0K ./lsac 28K ./install.log 304K . [[email protected] ~]# du -sh 以人類可讀的方式顯示當前目錄的總大小 304K . [[email protected] ~]# du -sh /usr/local/ 顯示指定目錄的總大小 132K /usr/local/ [[email protected] ~]# [[email protected] ~]# du -h --max-depth=1 顯示當前目錄下第一層目錄大小 44K ./liangli 48K ./key 88K ./liangli2018 304K . [[email protected] ~]# du -h --max-depth=2 /usr/local 只顯示第一層 二層目錄的大小 4.0K /usr/local/lib 4.0K /usr/local/include 4.0K /usr/local/share/applications 80K /usr/local/share/man 4.0K /usr/local/share/info 92K /usr/local/share 4.0K /usr/local/lib64 4.0K /usr/local/sbin 4.0K /usr/local/src 4.0K /usr/local/etc 4.0K /usr/local/games 4.0K /usr/local/bin 4.0K /usr/local/libexec 132K /usr/local
5.6 date
顯示與設定系統時間
引數 -s 設定系統時間 -d 顯示指定字串所描述的時間示例
date -s 是修改時間
[[email protected] ~]# date -s "2018/09/18 20:21" 年 year 月 month 日 day [[email protected] ~]# date 2018年 09月 18日 星期二 17:42:02 CST [[email protected] ~]# date +%y-%m-%d 18-09-18 [[email protected] ~]# [[email protected] ~]# date +%Y-%m-%d 等同於%F 2018-09-18 [[email protected] ~]# date +%F 顯示完整日期格式 2018-09-18 [[email protected] ~]# date +%w 檢視周幾(week) 2 [[email protected] ~]# date +%X 顯示時間 20時27分34秒 [[email protected] ~]# date +%H:%M:%S 等同於%X 小時 hour 分 minute 秒 second 20:27:56 [[email protected] ~]# [[email protected] ~]# date +%Y-%m-%d\ %H:%M:%S 2018-09-18 20:29:52 [[email protected] ~]# [[email protected] ~]# date +%F\ %X 2018-09-18 20時30分33秒 [[email protected] ~]# [[email protected] ~]# date +%Y_%m_%d 2018_09_18 [[email protected] ~]# [[email protected] ~]# date +%F 2018-09-18 [[email protected] ~]# date +%w 2 [[email protected] ~]# date +%y-%m-%d 18-09-18 [[email protected] ~]# echo $(date +%F)s 2018-09-18 [[email protected] ~]#s tar和時間的結合應用 將liangli目錄進行打包 [[email protected] ~]# tar zcvf liangli.tar.gz liangli liangli/ liangli/oldboy.sh liangli/a.txt liangli/a liangli/file liangli/a.sh liangli/3 liangli/dir2.txt liangli/1 liangli/dir4.txt liangli/gongli.txt liangli/oldgirl.sh liangli/2 liangli/soft liangli/dir9.txt liangli/dir10.txt liangli/test.sh liangli/dir7.txt liangli/oldboy2.txt liangli/dir5.txt liangli/dir1.txt liangli/soft_file liangli/dir3.txt liangli/b liangli/dir6.txt liangli/dir8.txt [[email protected] ~]# [[email protected] ~]# ll 總用量 72 drwxr-xr-x 3 root root 4096 9月 13 23:35 a -rw-------. 1 root root 1151 6月 15 00:31 anaconda-ks.cfg drwxr-xr-x 2 root root 4096 9月 17 10:03 data -rw-r--r--. 1 root root 23048 6月 15 00:31 install.log -rw-r--r--. 1 root root 5890 6月 15 00:30 install.log.syslog drwxr-xr-x. 3 root root 4096 9月 17 17:59 key drwxr-xr-x. 2 root root 4096 9月 18 15:44 liangli drwxr-xr-x 8 root root 4096 9月 17 10:01 liangli1 -rw-r--r-- 1 root root 597 9月 18 18:30 liangli.tar.gz drwxr-xr-x 3 root root 4096 9月 17 10:03 lihao -rw-r--r-- 1 root root 15 9月 13 16:10 xargs [[email protected] ~]# tar zcvf liangli_`date +%F`.tar.gz liangli liangli/ liangli/oldboy.sh liangli/a.txt liangli/a liangli/file liangli/a.sh liangli/3 liangli/dir2.txt liangli/1 liangli/dir4.txt liangli/gongli.txt liangli/oldgirl.sh liangli/2 liangli/soft liangli/dir9.txt liangli/dir10.txt liangli/test.sh liangli/dir7.txt liangli/oldboy2.txt liangli/dir5.txt liangli/dir1.txt liangli/soft_file liangli/dir3.txt liangli/b liangli/dir6.txt liangli/dir8.txt [[email protected] ~]# ll 總用量 76 drwxr-xr-x 3 root root 4096 9月 13 23:35 a -rw-------. 1 root root 1151 6月 15 00:31 anaconda-ks.cfg drwxr-xr-x 2 root root 4096 9月 17 10:03 data -rw-r--r--. 1 root root 23048 6月 15 00:31 install.log -rw-r--r--. 1 root root 5890 6月 15 00:30 install.log.syslog drwxr-xr-x. 3 root root 4096 9月 17 17:59 key drwxr-xr-x. 2 root root 4096 9月 18 15:44 liangli drwxr-xr-x 8 root root 4096 9月 17 10:01 liangli1 -rw-r--r-- 1 root root 597 9月 18 18:32 liangli_2018-09-18.tar.gz -rw-r--r-- 1 root root 597 9月 18 18:30 liangli.tar.gz drwxr-xr-x 3 root root 4096 9月 17 10:03 lihao -rw-r--r-- 1 root root 15 9月 13 16:10 xargs [[email protected] ~]# 也可以用$() [[email protected] ~]# tar zcvf lihao_$(date +%F).tar.gz lihao/ lihao/ lihao/etext.sh lihao/nihao2/ lihao/nihao2/nihao3/ lihao/ctext.sh lihao/dtext.sh [[email protected] ~]# ll 總用量 80 drwxr-xr-x 3 root root 4096 9月 13 23:35 a -rw-------. 1 root root 1151 6月 15 00:31 anaconda-ks.cfg drwxr-xr-x 2 root root 4096 9月 17 10:03 data -rw-r--r--. 1 root root 23048 6月 15 00:31 install.log -rw-r--r--. 1 root root 5890 6月 15 00:30 install.log.syslog drwxr-xr-x. 3 root root 4096 9月 17 17:59 key drwxr-xr-x. 2 root root 4096 9月 18 15:44 liangli drwxr-xr-x 8 root root 4096 9月 17 10:01 liangli1 -rw-r--r-- 1 root root 253 9月 18 18:34 liangli_2018-09-18.tar.gz -rw-r--r-- 1 root root 597 9月 18 18:30 liangli.tar.gz drwxr-xr-x 3 root root 4096 9月 17 10:03 lihao -rw-r--r-- 1 root root 253 9月 18 18:34 lihao_2018-09-18.tar.gz -rw-r--r-- 1 root root 15 9月 13 16:10 xargs [[email protected] ~]# 顯示昨天時間 -d引數 [[email protected] ~]# date +%F -d "-1day" 2018-09-17 [[email protected] ~]# 顯示兩個小時以前的檔案 [[email protected] ~]# date +%F-+%H 2018-09-18-+20 [[email protected] ~]# date +%F-+%H -d "2H" 2018-09-18-+18 [[email protected] ~]# 打包昨天以前的檔案 [[email protected] ~]# tar zcvf key_$(date +%F -d "-1day").tar.gz key [[email protected] ~]#ll -rw-r--r-- 1 root root 128 9月 18 20:41 key_2018-09-17.tar.gz
5.7 echo
引數 -n 不要自動換行
echo是一個列印輸出內容命令,配合> 或者>>可以為檔案覆蓋及追加內容, >意思為重定向,會清除檔案裡所有以前資料 >>為內容追加,只在檔案尾部追加需要的內容
一對單引號 這條命令後面的oldboy.txt不存在的話,會建立該oldboy.txt檔案的,如果檔案oldboy.txt存在的話,會覆蓋裡面的內容進行建立新的
也可以在echo裡面進行追加多行文字
echo ' 1111 注意下echo後面的空格 2222 3333'>>oldboy.txt
除了echo可以改檔案之外 還有cat命令 cat >oldboy.txt 然後輸入I am studying linux 回車 按ctrl+c 會寫進去 然後再cat oldboy.txt檢視下 cat >>oldboy.txt 追加新增內容進去 或者cat >oldboy.txt輸入I am studying Linux 回車 輸入ctrl+C 可以檢視下cat oldboy.txt
還有cat的多行追加 首先得再記事本上寫好
在Tech目錄下 echo liangli 1>a.txt 2>b.txt 意思是將正確資訊輸出到a.txt中,將錯誤的資訊輸出到b.txt中 此時liangli輸出到了a.txt中了,如果將e去掉再回車的話,那麼,錯誤資訊會輸出到b.txt中了
echo oldboy 1>a.txt 2>a.txt 意思是將正確和錯誤的輸出到a.txt中
或者 echo oldboy 1>a.txt 2>&1 (推薦方法) 也是將正確和錯誤的資訊輸出到a.txt中 讓2的輸出和1放到的位置一樣
或者echo oldboy &>a.txt &> 這兩個符號加起來就是將正確和錯誤資訊都放在a.txt中
2>&1 1正確的輸出內容放到哪兒,2錯誤輸出內容也放在和1一樣的位置
[[email protected] ~]# echo -n "oldboy"; echo "oldboy" -n是不換行 oldboyoldboy [[email protected] ~]# echo -e "oldboy\toldboy" -e 可以使用轉義字元(\n回車 \t 是tab鍵) oldboy oldboy [[email protected] ~]# cat >>/Tech/oldboy.txt<<liangli I am studying Linux222 liangli 其中liangli要進行頂格 [[email protected] b]# echo {1..10} 1 2 3 4 5 6 7 8 9 10 [[email protected] b]# [[email protected] /]# echo {1..3}{4..6} 14 15 16 24 25 26 34 35 36 [[email protected] /]# 特殊環境變數(系統自帶的) PATH 所有命令所在地 用冒號分隔 LANG 字符集變數 設定環境變數 export 例如 export PATH=$PATH:/root 把/root加入到PATH的環境變數 [[email protected] ~]# PATH="$PATH:/root" [[email protected] ~]# echo PATH PATH [[email protected] ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root:/root [[email protected] ~]# oldboy oldboy [[email protected] ~]#
5.8 watch
監視命令執行情況 可以動態顯示命令或程式的執行情況 類似與tail -f 或者tailf命令
5.9 witch
顯示命令的全路徑 witch命令查詢的範圍是PATH環境變數的路徑
引數 -a 預設在PATH路徑中由前往後查詢命令,如果查詢到了,就停止匹配了,使用-a選項將遍歷所有PATH路徑,輸出所有匹配項
[[email protected] ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# [[email protected] ~]# which ls alias ls='ls --color=auto' /bin/ls [[email protected] ~]# which oldboy /root/oldboy [[email protected] ~]# 檢視命令路徑的方式 [[email protected] ~]# which ifconfig /sbin/ifconfig [[email protected] ~]# whereis -b ifconfig ifconfig: /sbin/ifconfig [[email protected] ~]# locate ifconfig /sbin/ifconfig /usr/sbin/pifconfig /usr/share/man/de/man8/ifconfig.8.gz /usr/share/man/fr/man8/ifconfig.8.gz /usr/share/man/man8/ifconfig.8.gz /usr/share/man/man8/pifconfig.8.gz /usr/share/man/pt/man8/ifconfig.8.gz
5.10 whereis
顯示命令及其相關檔案全路徑 用於定位指定命令的可執行檔案 原始碼檔案及man幫助檔案的路徑
-b 引數 查詢可執行檔案
-m 引數 查詢man幫助檔案
-s 引數 查詢原始碼檔案
[[email protected] ~]# whereis echo echo: /bin/echo /usr/share/man/man1/echo.1.gz /usr/share/man/man1p/echo.1p.gz [[email protected] ~]# whereis -b echo echo: /bin/echo [[email protected] ~]# whereis -m echo echo: /usr/share/man/man1/echo.1.gz /usr/share/man/man1p/echo.1p.gz [[email protected] ~]# whereis -s echo echo: [[email protected] ~]#
5.11 locate
快速定位檔案路徑 從資料庫mlocate.db檔案中查詢檔名及對應的路徑資訊
-c 引數 只顯示匹配的行數
檢視資料庫
[[email protected] ~]# ll -h /var/lib/mlocate/mlocate.db -rw-r----- 1 root slocate 1.6M 10月 8 20:06 /var/lib/mlocate/mlocate.db [[email protected] ~]# cat /etc/cron.daily/mlocate.cron #!/bin/sh nodevs=$(< /proc/filesystems awk '$1 == "nodev" && $2 != "zfs" { print $2 }') renice +19 -p $$ >/dev/null 2>&1 ionice -c2 -n7 -p $$ >/dev/null 2>&1 /usr/bin/updatedb -f "$nodevs" [[email protected] ~]# 查詢檔案路徑 -c 引數 只顯示匹配的行數 [[email protected] ~]# locate pwd /bin/pwd /etc/.pwd.lock /etc/latrace.d/pwd.conf /lib/modules/2.6.32-573.el6.x86_64/kernel/drivers/watchdog/hpwdt.ko /sbin/unix_chkpwd /usr/bin/pwdx /usr/include/pwd.h /usr/lib/x86_64-redhat-linux5E/include/pwd.h /usr/lib64/cracklib_dict.pwd /usr/lib64/python2.6/lib-dynload/spwdmodule.so /usr/share/cracklib/cracklib-small.pwd /usr/share/cracklib/pw_dict.pwd /usr/share/man/man0p/pwd.h.0p.gz /usr/share/man/man1/pwd.1.gz /usr/share/man/man1/pwdx.1.gz /usr/share/man/man1p/pwd.1p.gz /usr/share/man/man3/lckpwdf.3.gz /usr/share/man/man3/ulckpwdf.3.gz /usr/share/man/man8/unix_chkpwd.8.gz /usr/share/man/mann/pwd.n.gz /usr/share/man/overrides/ru/man3/lckpwdf.3.gz /usr/share/man/overrides/ru/man3/ulckpwdf.3.gz /usr/share/perl5/pwd.pl /usr/src/kernels/2.6.32-573.el6.x86_64/include/config/hpwdt /usr/src/kernels/2.6.32-573.el6.x86_64/include/config/hpwdt/nmi /usr/src/kernels/2.6.32-573.el6.x86_64/include/config/hpwdt/nmi/decoding.h [[email protected] ~]# locate -c pwd 26 [[email protected] ~]# [[email protected] ~]# locate /etc/sh 只要部分符合就輸出 /etc/shadow /etc/shadow- /etc/shells [[email protected] ~]# locate /etc/sh* /etc/shadow /etc/shadow- /etc/shells [[email protected] ~]# locate -c /etc/sh* 3 [[email protected] ~]#
5.12 updatedb
更新mlocate資料庫 updatedb命令可以建立或者更新locate命令使用的資料庫,updatedb命令會因定時任務定期(每天)執行
-U 引數 更新指定目錄相關的資料庫資訊,預設是掃描整個系統
-v 引數 顯示命令的執行過程
檢視資料庫 [[email protected] ~]# ll -h /var/lib/mlocate/mlocate.db -rw-r----- 1 root slocate 1.6M 10月 8 20:06 /var/lib/mlocate/mlocate.db 更新資料庫 [[email protected] ~]# locate oldboy /root/oldboy.txt /root/key/oldboy /root/key/oldboy.gz.tar /root/liangli2018/oldboy /root/liangli2018/oldboy/test [[email protected] ~]# touch oldboy20181008 [[email protected] ~]# locate oldboy /root/oldboy.txt /root/key/oldboy /root/key/oldboy.gz.tar /root/liangli2018/oldboy /root/liangli2018/oldboy/test [[email protected] ~]# updatedb -vU /root/ /root/1.txt /root/.bashrc /root/.bash_logout /root/oldboy20181008 /root/.viminfo /root/key1 /root/.cshrc /root/liangli /root/xac /root/key /root/lsab /root/.lesshst /root/soft_link /root/anaconda-ks.cfg /root/.bash_history /root/install.log.syslog /root/xaa /root/.bash_profile /root/oldboy.txt /root/xab /root/liangli2018 /root/hard_link /root/.tcshrc /root/lsaa /root/lsac /root/install.log /root/key/dir1.txt /root/key/dir2.txt /root/key/dir3.txt /root/key/dir4.txt /root/key/dir5.txt /root/key/file1.txt /root/key/file2.txt /root/key/file3.txt /root/key/file4.txt /root/key/file5.txt /root/key/key /root/key/key.gz /root/key/oldboy /root/key/oldboy.gz.tar /root/key/oldgirl /root/key/oldgirl.gz.tar /root/liangli/a /root/liangli/a.txt /root/liangli/b /root/liangli/b.txt /root/liangli/a/1 /root/liangli/a/1.txt /root/liangli/a/2 /root/liangli/a/2.txt /root/liangli/a/3 /root/liangli/a/3.txt /root/liangli/b/2 /root/liangli/b/2.txt /root/liangli/b/3 /root/liangli/b/3.txt /root/liangli/b/4 /root/liangli/b/4.txt /root/liangli2018/dir1 /root/liangli2018/dir1.ori /root/liangli2018/dir2 /root/liangli2018/dir3 /root/liangli2018/oldboy /root/liangli2018/dir1/5 /root/liangli2018/dir1/6 /root/liangli2018/dir1/7 /root/liangli2018/dir1.ori/4 /root/liangli2018/dir1.ori/5 /root/liangli2018/dir1.ori/6 /root/liangli2018/dir1.ori/7 /root/liangli2018/dir2/4 /root/liangli2018/dir2/5 /root/liangli2018/dir2/6 /root/liangli2018/dir2/7 /root/liangli2018/dir3/4 /root/liangli2018/dir3/5 /root/liangli2018/dir3/6 /root/liangli2018/dir3/7 /root/liangli2018/oldboy/test [[email protected] ~]# locate oldboy /root/oldboy.txt /root/oldboy20181008 /root/key/oldboy /root/key/oldboy.gz.tar /root/liangli2018/oldboy /root/liangli2018/oldboy/test [[email protected] ~]#