alias rm='mv -t /app/'
tree? ? 顯示目錄樹
-? d? ? 只顯示目錄
-? L? ? 層數(shù)
mkdir? ? 創(chuàng)建目錄
-p? ? 自動創(chuàng)建所需的個目錄
-v? ? 顯示詳細信息
-m? ? 創(chuàng)建目錄是直接指定權(quán)限
rmdir? ? 刪除空目錄
-p? ? 遞歸的刪除父空目錄
-v? ? 顯示詳細信息
rm? -r? ? 遞歸刪除目錄樹
df? ? 用于顯示磁盤分區(qū)上的可使用的磁盤空間
-h? ? 以KB以上的單位來顯示
-a? ? 查看全部文件系統(tǒng)
-T? ? 文件系統(tǒng)類型
-i? ? 列出inode信息而不是塊使用情況
watch? ? 定期執(zhí)行程序撩扒,顯示全屏輸出
-n? ? 指定更新間隔
ln目標(biāo)鏈接名字文件之間建立鏈接(硬鏈接)
-s? ? 使符號鏈接净蚤,而不是硬鏈接(軟鏈接)
stat選項文件名顯示文件或文件系統(tǒng)狀態(tài)
shred選項文件名覆蓋文件以隱藏其內(nèi)容授滓,并可選地刪除它
-n? ? 覆蓋次數(shù),默認3次
-u? ? 覆蓋后刪除
-v? ? 查看過程
-z? ? 用零添加最后的覆蓋來隱藏粉碎
例:shred? -zvun? 10
readlink? ? ? 查看鏈接文件路徑
file文件名確定文件類型 (看首部信息,不關(guān)心文件后綴)
-b? ? 不顯示文件名
-f? ? 把需要處理的東西存在一個文件形真,讀取文件的內(nèi)容抡砂,適合批處理
-F? ? 使用指定分隔符號替換輸出文件名后默認的”:”分隔符
-L? ? 查看對應(yīng)軟鏈接對應(yīng)文件的文件類型
dd? if=/dev/zero of =/boot/bigfile bs=1M count=500? 可控的添加文件內(nèi)容
lsof? |? grep deleted? 查看哪些文件已刪除但未釋放空間
killall進程關(guān)掉進程
ps? aux|grep? vim? ? 查看進程
ls? -il? ? 顯示節(jié)點編號
echo? f{1..50000} | xargs touch? ? 創(chuàng)建大批量文件
watch? -n 1 -df -i
通常rm刪除大文件未必會立即釋放空間,所以建議先使用? >? 清空文件內(nèi)容窒篱,在使用rm 刪除文件焕刮。
Centos 6使用的文件系統(tǒng) ext4? Centos7使用的文件系統(tǒng) xfs
文件分為兩部分元數(shù)據(jù)(文件的屬性 )和用戶數(shù)據(jù)(即文件數(shù)據(jù)塊,數(shù)據(jù)塊是記錄文件真是內(nèi)容的地方)墙杯。元數(shù)據(jù)中的inode號才是文件的唯一標(biāo)識而非文件名配并,文件名(存在于數(shù)據(jù)塊中)只是方便人的使用和記憶。
數(shù)據(jù)的位置:
直接指針(有12個高镐,0-11)直接指向數(shù)據(jù)塊(4K)溉旋,數(shù)據(jù)低于48K可以通過直接指針直接找到
間接指針:直接指向的是指針塊(4K),消耗4個字節(jié)來描述數(shù)據(jù)塊的位置
節(jié)點編號會被重復(fù)利用
centos6 根的節(jié)點編號是 2? (掛載點都是為2)
centos7的節(jié)點編號是64
每個分區(qū)分配自己的節(jié)點編號嫉髓,不同分區(qū)節(jié)點編號可以一樣观腊,同一個文件不能擁有不同的節(jié)點編號
文件名不在節(jié)點表里邑闲,存在于文件夾的文件內(nèi)容中(數(shù)據(jù)塊中)
鏈接數(shù):一個節(jié)點編號對應(yīng)的有幾個文件名
刪除文件只是刪除節(jié)點信息,并沒有把數(shù)據(jù)刪除
硬鏈接:可以存放在同一目錄上梧油,也可以在不同目錄上(不允許跨分區(qū)創(chuàng)建)
軟鏈接大小是鏈接路徑的大小
軟鏈接和硬鏈接區(qū)別:
1.本質(zhì)不同:硬鏈接是同一個文件苫耸。軟鏈接不是同一個文件
2.刪除:刪除一個硬鏈接的文件并不影響有相同inode的文件使用。刪除軟鏈接的原始文件則軟鏈接失效
3.創(chuàng)建:鏈接創(chuàng)建完成連接數(shù)會增加儡陨。軟鏈接則不會
4.跨分區(qū):硬鏈接不可以跨分區(qū)創(chuàng)建褪子。軟鏈接可以
5.目錄:硬鏈接不 可以創(chuàng)建目錄。軟鏈接可以
軟鏈接:源文件的路徑是相對路徑骗村,一定是相對于軟鏈接文件的路徑褐筛,而非相對于當(dāng)前工作目錄的路徑
程序:指令+數(shù)據(jù)
打開的文件都有一個fd: file descriptor (文件描述符)
I/O重定向:改變默認
STDOUT和STDERR可以被重定向到文件
命令 操作符號 文件名
支持的操作符號包括:
>? ? ? 把STDOUT重定向到文件
2>? ? ? 把STDERR重定向到文件
&>? ? ? 把所有輸出重定向到文件
>? ? ? 文件內(nèi)容會被覆蓋
set –C 禁止將內(nèi)容覆蓋已有文件,但可追加
>| file 強制覆蓋
set +C 允許覆蓋
>> 原有內(nèi)容基礎(chǔ)上,追加內(nèi)容
<? ? 標(biāo)準(zhǔn)輸入重定向
/dev/null? ? 垃圾箱
ls /misc/
systemctl enable autofs ; systemctl start auttofs? ? ? 讓auttofs可用叙身,auttofs可用了 /misc/cd? 才可用
ls? -l? /proc/進程號/fd/
():合并多個程序的STDOUT
例如:
(ls;pwd;hostname) >> f3.log? 多條命令同時重定向一個文件中
(errcmd;hostname) > /app/true.log? 2> /app/error.log? ? 正確的信息和錯誤信息分開重定向
(errcmd;hostname) > /app/true.log? 2>&1? ? 等同于? ? &>? ? 等同于下面
((errcmd;hostname) 2>&1) > /app/true.log? ? 錯的變成對的渔扎,在重定向到文件
(echo error 1>&2) 2> /dev/nul? ? 對的變成錯的,錯的重定向到 垃圾箱
linux和windows的文本格式不一樣信轿,linux一個符號來標(biāo)識換行晃痴,Windows兩個符號來標(biāo)識 (0d? 0a)
tr? ? 轉(zhuǎn)換和刪除字符
-c? ? 取補集(除了)
例:tr? -sc? 'a'? ? 除了a全都壓縮
aaabbbcccaaa
aaabcaaa
例:tr? -dc? 'a'? ? 除了a全刪,ctrl+d才能結(jié)束
abcabcabc
aaa
例:tr? -dc? ‘a(chǎn)\n’? ? 保留a和回車
-d? ? 刪除
-s? ? 連續(xù)重復(fù)字符會被壓縮(2個以上)
-t
\t? ? 表示tab鍵
\n? ? 換行
\r? ? 表示回車鍵
例:tr -d '\n'? <? f1? ? 刪除回車并重定向 f1
tr? '\n' ' '? <? f1? ? 換行替換成空格重定向 f1
tr -d '\r' < win.txt > newin.txt? ? windows文本格式轉(zhuǎn)換為linux
dos2unix? ? windows文本格式轉(zhuǎn)換為linux
unix2dos? ? linux文本格式轉(zhuǎn)換為windows
cat? -A win.txt(windows文本)
a^M$
b^M$
c^M$
^M$
^M$
例:
hexdump? -c win.txt
mail? -s郵件標(biāo)題? 收件人發(fā)郵件
mail? ? 接受郵件? ? 輸入主題名查看
單行重定向财忽,
多行重定向 <<
例:cat? > f1 << EOF(end of file)? ? 統(tǒng)一提交
aaabbbbccc
bbbbbccccc
EOF
命令 | 命令 |命令? 管道符號(只能處理標(biāo)準(zhǔn)輸出)
例: ls | tr 'a-z' 'A-Z'
F1
F2
例: who | tr 'a-z' 'A-Z'
ROOT? ? PTS/0? ? ? ? 2017-11-14 17:33 (192.168.27.1)
ROOT? ? PTS/1? ? ? ? 2017-11-14 21:32 (192.168.27.1)
LIYIHANG TTY2? ? ? ? 2017-11-14 21:27
例:error? 2>&1 | tr 'a-z' 'A-Z'? (通過 2>&1把錯誤輸出轉(zhuǎn)換為正確輸出)
BASH: ERROR: COMMAND NOT FOUND...
error? |& tr 'a-z' 'A-Z'? 等同? ? error? 2>&1 | tr 'a-z' 'A-Z'
例:error? |& tr 'a-z' 'A-Z' | tr -d 'O'
BASH: ERRR: CMMAND NT FUND...
例:ls -R /etc/ | more? ? 管道符號配合 more 分段查看
tee? ? 重定向到多個目標(biāo)? ? (因為屏幕上可以顯示倘核,所以可以做第二次處理)
-s? ? 追加到給定的文件,不要覆蓋
例:who | tee? f1 | tr -d r
oot? ? pts/0? ? ? ? 2017-11-14 17:33 (192.168.27.1)
oot? ? pts/1? ? ? ? 2017-11-14 21:32 (192.168.27.1)
liyihang tty2? ? ? ? 2017-11-14 21:27
例:who | tee who.out |grep liyihang? ? ? ? grep(搜索)
liyihangtty2? ? ? ? 2017-11-14 21:27
刪除Windows文本文件中的‘^M’