linux之文件的高級命令

      在我們日常系統運維中,經常需要利用shell寫一些自動化腳本,這些腳本寫的好壞很大程度上取決於linux的高級操作命令掌握的是否熟練,那麼我們看看工作中使用頻率最高的一些命令。


     cat -n a.txt  給輸入的文本編號

cat a.sh
cat > /etc/yum.repos.d/test.repo <<ok
[yumtest]
name=my home
baseurl=file:///yumtest/
enabled=1
gpgcheck=0
ok

./a.sh  --->配置yum


tac
tac  /etc/passwd  倒序顯示

wc  
統計文本內容的行數量  字符數  單詞數
cat /etc/passwd | wc  
wc -l  統計行數
   -w  統計單詞數
   -c  統計字符數

cut
數列爲單位切換
cut -b 按照字節切
    -c 按照字符切
    -d :  以冒號爲分割符

切出/etc/passwd中redhat用戶中的shell信息
cat /etc/passwd | grep redhat | cut -d: -f7
/bin/bash

cat /etc/passwd | cut -d ":" -f1,3,4 取出用戶的第1、3、 4 列
cat /etc/passwd | cut -d ":" -f1-4   取出用戶連續的4列
cat /etc/passwd | cut -d ":" -f -5   取出第5列前的所有列 包含第5列
cat /etc/passwd | cut -d ":" -f 5-   取出第5列後的所有列
cat /etc/passwd | cut -d ":" -f1,5-7 取出1 5 6 7

[root@server1 tmp]# cat /etc/passwd | grep jim | cut -b 5  切第五個字節
x

split
拆分文件
split -5  passwd  按照文本內容以5行爲單位切割 每5行一個文件

split  -1  -a 3  a.txt  以1行爲單位切割 且切割後的文件後綴程度爲3

split -l 5 a.txt  以5行爲單位切割

split -b 1k  passwd  默認單位爲字節 以1kb爲單位切割  
(KB 1000,K 1024,MB 1000*1000,M 1024*1024,還有 G、T、P、E、Z、Y)
   
split  -d a.txt   以數字作爲切割後的後綴名

----------------------------------------------
tr
cat a.txt  | tr "a" "A" 把文件中所有小寫的a換爲A
cat a.txt  | tr "a-z" "A-Z" 把所有的小寫字母換爲大寫字母
cat a.txt  | tr "a-b" "A-C"   a b ---> A  B
cat a.txt  | tr -s "\n"  去掉空白行
cat a.txt  | tr -s "abcd" 把連續重複的字符替換爲一個字符

sort
排序命令
sort -n a.txt   第一列以數字方式排序
     -r a.txt
     -k, --key=位置1[,位置2]
     -t 指定分割符  
     -u, --unique  去掉重複行
     sort -t " " -k 2.2  a.txt  以空格爲分割符 取分割後的第2塊的第2列

uniq
去掉連續重複行
uniq  a.txt
uniq -c a.txt  統計每行重複的次數且重複的行要是連續重複
uniq -d a.txt  只輸出重複的行(連續重複)
     -i 忽略大寫小

diff
文件差異對比
[root@server1 test]# cat a.txt
111
[root@server1 test]# cat b.txt
111
222

diff a.txt  b.txt
1a2
> 222

diff -u a.txt  b.txt  > ab.patch  -u標準格式  以標準格式製作補丁
patch  <  ab.patch  a.txt           打補丁

du
du -h /etc/ 統計整個目錄文件總大小

which
查看二進制命令的絕對路徑
which  cat
/bin/cat

stat

stat /etc/passwd  查看文件類型和三個時間
Access:  最後一次被訪問時間
Modify:  最後一次修改屬性時間
Change:  最後一次內容的改變

touch /etc/passwd  刷新三個時間

系統有一種保護機制 當Modify比Access時間舊 舊不頻繁刷新access時間


lsof
lsof -i:80 通過端口號查看服務是否在運行

fuser
fuser -km  /mnt 如果卸載分區的時候 有人佔用掛載點 強制踢掉
fuser -km   /dev/pts/3

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章