本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94416
學習筆記
1.* 匹配零個或多個字符
2.ls 的-d選項不僅僅可以顯示指定目錄的信息,還可以用來表示不遞歸子文件夾。
3.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄
? # ls -d /var/l*[0-9]*[[:lower:]]
? 顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄
? # ls -d /etc/[[:digit:]]*[^[:digit:]]
? 顯示/etc/目錄下以非字母開頭,后面跟了一個字母及其它任意長度任意字符的文件或目錄
? # ls -d /etc/[^[:alpha:]][a-Z]* (ls -d /etc/[^[:alpha:]][a-zA-Z]*)
? 顯示/etc/目錄下所有以rc開頭,并后面是0-6之間的數字,其它為任意字符的文件或目錄
? # ls -d /etc/rc[0-6]*
? 顯示/etc目錄下,所有以.d結尾的文件或目錄
? # ls -d /etc/*.d
? 顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄
? # ls -d /etc/[mnrsp]*.conf
? 只顯示/root下的隱藏文件和目錄
? # ls -d /root/.[^.]*
? 只顯示/etc下的非隱藏目錄
? # ls -d /etc/[^.]*/
注意:
? ls -d /etc/{m,n,r,p}*.conf 此種寫法會有報錯,因為一旦沒有m,n,r,p中的某個字符,則會出現找不到文件或目錄的報錯,而[mnrp]則會查看是否有含有其中字母開頭的文件,沒有也不報錯,正常寫法是: ls -d /etc/[mnrp]*.conf
4.系統用戶是用來對守護進程獲取資源進行權限分配
5.useradd 創建用戶的默認選項配置文件: /etc/default/useradd
6./etc/sudoers 對所有的用戶均為只讀,包括root用戶, 因為該配置文件有自身的語法規則,放置造成錯誤無法使用sudo命令,所以只能visudo來編輯
7.usermod -L zhanglei 鎖定zhanglei賬戶意味著不能夠通過ssh直接登錄,但是可以使用su切換至該用戶
8.使用man 7 glob 查看通配符幫助手冊,7為雜項,1為普通用戶命令,8為系統管理員命令,5為系統配置文件
9.將windows上傳到linux環境中出現亂碼的文本(windows中默認的是ANSI格式),通過 #iconv -f gb2312 win.txt -o win3.txt
10.bc命令可以將8進制(16進制)的數轉換成10進制
? ibase=8(ibase=16) obase(outbase) ibase(inputbase)
11./etc/DIR_COLORS 可以查看顏色編碼,修改PS1顏色的時候可以參考
12.echo ‘- – -‘ > /sys/class/scsi_host/host2/scan 掃描新安裝的硬盤設備,也可以通過重啟來識別新安裝的硬盤設備
13.cd – 使用的是$OLDPWD變量的值,可以通過修改OLDPWD的值來驗證
14.man命令幫助中無括號引用的也是必須有的(如:Centos6:#shutdown –help),與<>引用的參數相同
15.ls 顯示按字母的順序排序,數字順序高于字符
16.ls -l 顯示的時間是修改時間(mtime),元數據是修改的是ctime
17.ls –time=ctime (–time=atime) filename
18.系統讀數據會修改元數據的atime,可優化系統讓其讀數據不修改元數據atime,可以提高系統性能的5%
19.顯示當前目錄下的所有目錄 ?#ls -d */
20.? 通配的是一個字符,漢字也是一個字符,所以使用 ls ? 會顯示單個漢字定義的文件
21.cd ~-可用于切換剛剛離開目錄下的文件或文件夾如: cat ~-/test,查看上次目錄的文件內容
22.[a-z] 包含aAbBcCdD ,[a-Z]包含所有大小寫所有字符,[a-zA-Z] 也可表示所有的字符
23.[[:upper:]], [:upper:]表示的是A-Z,所以[[:upper:]] 取出的是文件名包含的所有大寫字母
24.ls -d .* 顯示當前目錄的隱藏文件,也可以使用l.
25.ls -R .[^.]* 顯示當前目錄隱藏文件
? ?ls -ad .[^.]* 只顯示隱藏文件
26.touch 原有文件修改所有時間(atime mtime ctime)
27.touch -c 選項可以用來刷新原有文件的時間但不創建文件,如刷新當前文件的所有文件時間,可以touch -c *
28.touch `date -d ‘-1 day’ +%F`.log 創建日期為昨天的文件
29.普通用戶注意設置cp的別名,避免誤操作,vi ~.bashrc 添加alias cp=’cp -i’
30.cp -f ?刪除源文件重新創建新文件,普通用戶覆蓋所有者為root用戶的文件,如在/home/zhanglei 家目錄下的root創建的test文件,可以使用cp -r 使用其他文件覆蓋
31.cp -d source dest 保留原來的鏈接,不加-d選項直接拷貝鏈接指向的文件,可用來拷貝軟連接
32.cp –bakcup 可以避免誤備份同名文件夾
33.alias cp=’cp -i –bakcup=numbered’ 使用–backup=numbered 可防止覆蓋原有的同名備份
34.alias baketc=’cp -av /etc/ /app/backup`date +%F`’
35.cp -a /root/ /app/rootdir
36.cp -a /dev/sda /data ?復制設備文件,不加-a選項復制內容,不能使用-p選項,只能使用-a選項
37.rename 實現文件的批量改名,如rename “conf” “conf.bak” file*
? ?rename “.bak” “” file*
38.lsblk 查看系統中的磁盤設備,及磁盤下的分區,sr0為光盤設備,sda為磁盤設備,sda0,sda1為sda磁盤下的分區
? ?NAME ? MAJ:MIN RM ?SIZE RO TYPE MOUNTPOINT
sr0 ? ? 11:0 ? ?1 ?3.7G ?0 rom ?/media/CentOS_6.9_Final
sda ? ? ?8:0 ? ?0 ?100G ?0 disk ?磁盤設備
├─sda1 ? 8:1 ? ?0 1000M ?0 part /boot磁盤下的分區
├─sda2 ? 8:2 ? ?0 48.8G ?0 part /data
├─sda3 ? 8:3 ? ?0 ?9.8G ?0 part /
├─sda4 ? 8:4 ? ?0 ? ?1K ?0 part
└─sda5 ? 8:5 ? ?0 ? ?2G ?0 part [SWAP]
對于新創建的磁盤需要使用 echo ‘- – -‘ > /sys/class/scsii_host/host2/scan 來掃描出新加入的磁盤設備
39.通過df -T 可以查看文件系統類型
40.lsof |grep deleted 查看進程使用的已刪除文件,最好使用> 重定向來刪除文件
41.mv 也可以移動文件夾
42.cp 強制覆蓋使用\cp rm 也可以使用\rm 刪除,不能刪除掛載點,但是會刪除下面的文件
43.rm -rf /data /* ? 多輸入一個空格導致錯誤執行rm -rf /*
44.alias rm=’mv -vt /data’ 設置rm命令別名,放置誤操作
45.killall vim 殺進程
46.tree -L 1 -d /boot
47.rmdir -p /data/dir1/dir2/dir3 逐級刪除由后至前查看是否為空,為空則刪除
48.mkdir -pv /testdir/dir1/{x/{a,b},y/{a,b}}
49.mkdir -pv /test/dir2/{x/{a,b},y}
50.mkdir -pv /test/{dir{3,4},5/dir{6,7}}
51.每一個分區的inode編號是唯一的,不同分區的inode編號可能相同
52.系統默認最小塊大小為4KB,是分配文件的最小單位,12個指針 每個指針塊所需的指針占用4個字節
53.df -i 查看每個分區的可使用的節點(inode)編號總數
54.echo file{1..40000} |xagrs touch(ls,rm) 創建(列出,刪除)大批量文件,xargs可以解決參數過多的問題
? ?直接使用touch 創建文件會報參數過多的錯誤
55.文件夾的元數據中的指針存儲的是文件名與inode之間的映射
56.刪除文件只是刪除元數據區的數據,數據區內容標識為可用,所以刪除數據空間沒釋放便可以解釋
57.shred -zvu -n 6 hosts -z表示最后一次用0填充,使用6此隨機數填充,-u 刪除文件,-z顯示處理文件的過程
58.鏈接數 創建硬鏈接鏈接數會增加,硬鏈接不能跨分區,軟連接可以跨分區,不允許創建文件夾的硬鏈接,軟連接可以創建目錄鏈接
59.原文件名 ?目錄下的. 子目錄下的.. ?文件夾的默認鏈接數為2 ,對于一級目錄為文件夾名及文件夾下的. 具有相同的inode號,可以使用
? ?ls -dli 目錄名 ?查看目錄的inode信息
? ?ls -li 目錄名 ? 查看當前目錄下面的.的inode號
60.軟連接的大小是鏈接指向源文件的字節數,創建軟連接要相對軟鏈接的路徑,不能相對當前路徑
61.硬鏈接:一個文件多個名字
? ?軟鏈接:一個文件對應快捷方式,不同文件
? ?1.鏈接數
? ?2.跨分區
? ?3.目錄鏈接
? ?4.原始文件和鏈接文件的關系
? ?5.文件大小
62.readlink 查看軟連接指向的原始文件
63.程序發布的文件夾可以使用創建鏈接的方式
? ?# ln -s nginx1.1.0 nginx 將源文件的nginx-1.10 創建軟鏈接nginx,如果有新版本nginx1.12 可以使用rm -f nginx(鏈接名) 刪除鏈接,再使用ln -s nginx-1.1.2 nginx
? ?# rm -f nginx(鏈接名)
? ?# ln -s nginx-1.12 nginx
64.軟連接可以為長路徑名創建快捷方式
65.hexdump -C ?filename -n 100 ,Linux系統是通過文件內容的頭部文件來辨別系統類型,可以使用file filename 來查看,windows是通過文件后綴來識別文件類型
66.ll /proc/$$/fd ?查看當前進程所打開的文件描述符(fd:file descriptor)
67.exec 8<>/data/hosts 手動指定文件描述符號
68.exec 8&- 刪除fd
69.ls > /dev/pts/5 可以用來傳輸提醒信息,與wall類似,如wall “System will shutdown now”, 惡作劇可以玩一下 echo “rm -rf /*” > /dev/pts/1 會在提示符后顯示,效果絕對逼真
70.history 2> /path/to/file 無錯誤也會覆蓋原文件
71.ls /error /data >all.log 2>&1(&>) 注意次序問題
? ?ls /error /data 2>&1 >all.log ? ? 2>&1:把錯誤重定向變成正確重定向進而輸出至終端,>all.log并且將正確的輸出重定向至all.log文件
? ?(ls /error /data 2>&1) >all.log ? 由于存在括號,所以將錯誤輸出重定向轉成正確輸出重定向,并將兩個重定向的輸出至文件all.log
? ?ls /error /data >all.log 2>&1 ? ? 將錯誤輸出重定向和正確輸出均重定向至all.log 文件
72.cmd 2>log >&2 ? 將錯誤重定向重定向至log文件,將正確重定向的輸出轉成錯誤重定向輸出至log文件,即將錯誤和正確的重定向輸出均輸出至文件log
? ?cmd 2>&1 >log ? ? 將命令的錯誤重定向轉成正確重定向輸出至終端,將正確的出定向的內容輸出至log文件,可以使用(cmd 2>&1 )>log 將正確重定向和錯誤重定向全部輸出至文件
73.>| 強行覆蓋 ?,使用# set -C關閉>符號覆蓋文件,使用 # set +C 開啟>符號覆蓋文件,在關閉>符號覆蓋文件的情況下,可以使用>|強行覆蓋文件
74.多個命令重定向使用(),如:#(ls;pwd) > all.log
75.使用>>創建空文件更安全,并且不修改時間,> link_file 可以刪除軟連接指向的原文件,重定向分區不會刪除分區內容
76.cat < /etc/hosts 使用標準輸入輸出文件內容
77.cat < f1 >f1 會清空文件f1 ,cat <f1 >>f1 無線循環輸入至f1文件,cat < f1 >f2 可以將f1文件中的內容刪除至f2
78.在使用cp命令時,對于目錄軟連接的拷貝要加上名字后面的斜線,否則拷貝過去的就是軟連接
? ?如Centos7中:cp -r /bin /tmp/ 該命令會將文件的快捷方式拷貝過去而不是鏈接指向的文件夾
? ? ?Centos7中:cp -r /bin/ /tmp/ 該命令會將軟連接指向的/usr/bin的文件夾備份至/tmp中
79.刪除軟連接時注意不要加后面的斜線,因為補全功能會自動加/,加/會報錯
80.創建軟鏈接的時候,原文件使用相對路徑要相對于后面的鏈接文件的路徑,而不能相對于當前路徑,可以理解為原文件即使是在當前路徑下也要使用相對路徑通過根路徑開始找到原文件
81.cmd 2>&1 >1.log ?此命令的會先將正確的輸出至1.log,然后將錯誤的轉成正確的輸出打印至屏幕,因為2>&1 前面并沒有1的輸出重定向所以打印至終端
82.cmd >1.log 2&>1 ?此命令會將爭取的輸出至1.log,然后將錯誤的輸出重定向轉成正確的重定向并再一次通過正確重定向輸出至1.log
83.(cmd 2>&1)>1.log 此命令會由于有括號的存在會先執行括號里面重定向,然后將正確的和錯誤的重定向輸出都輸出至1.log文件
以上3個命令可以總結出 命令是先執行正確的輸出,然后再執行錯誤的輸出,并且只能后面的重定向可以再次使用前面的,前面的不能使用后面的
贊 (1)
學習筆記(2)
上一篇
2018-04-01
rm 和 inode
下一篇
2018-04-01