⑴ linux 如何強制刪除/usr/bin里的文件
刪除指令
rm /usr/bin -rf表衫余示刪除/usr/bin目錄,如果是文件,這里此舉指定文件
rm /usr/bin/a.log -rf表示刪除森塌碧/usr/bin/a.log文件
⑵ 我把/bin都刪除了,以任何模式都無法登錄,怎麼拯救我的linux呀
還知或有救...
先找台同版本的Linux,將其所有橘廳/bin 到U盤
找張Live CD版的Linux(任何一個版本都行)
運行系統後,將/bin mount起來
接著搭伍伍插入U盤,一樣將U盤mount起來
緊接著 U盤內/bin所有的檔案到先前mount起來的/bin
更懶的作法
把硬碟拆下來 ,直接拿去另一台同版本的Linux PC上(先關機,後將這顆硬碟接上傳輸線&電源線)
mount整個盤,將/bin 全部進去這個硬碟
問題就解決了= =
⑶ linux 系統 /bin文件誤刪恢復
拿到了新linux伺服器,開心地操作linx,行雲流水地搭建了nginx前端代理服務,並在nginx服務中部署前端應用。心裡開始有點膨脹,於是就樂極生悲,有了這個蛋疼的操作,將linx系統根目錄下的bin文件夾中的內容全部給刪除了,(當時腦子短路了有一分多鍾,心裡直冒冷汗)。
誤操作過程: 部署前端應用的流程是,先將nginx應用根目錄下html文件夾中已經部署的舊版本刪除,在刪除前端項目時,因為有歷史操作,所有沒有仔細看文件夾路徑,直接ctrl-A刪除了當下目錄中的所有文件。(前端應用是angular2項目,build出來的項目,所有有文件都是同一級目錄,文件有點多,且每個文件名都是隨機生成的)。
使用xftp,需要先將html文件夾中的內容全部刪除,因為已經操作過這個步驟,所以想當然的以為打開xftp會默認打開html文件夾。於是在操作過程中,直接將xftp默認打開的文件夾下的所有文件給刪除了(默認在bin目錄)。刪除那一瞬間感覺刪除文件不對,查看目錄路徑,果然錯了。
當時所有文件都已經刪除了,ctrl+c已經遲了。。。
先了解了一下bin目錄下文件內容的作用:bin文件夾下的內容文件為常用的shell命令,在下面的截圖中可以看到:cat,chmod,cp,login... 等常用命令。看到login也在裡面,感覺有點不妙,會不會是這台伺服器已經不能再遠程登錄了?黑人臉問號.png。
使明嫌用ssh測試遠程連接,果然連接不上了。於是網上搜索補救措施,看了好多網上教程,好多都是使用ssh連接(在沒有關閉ssh連接的前提下操作),遠程恢復的。網路上的恢復教程大致是: 從其他的相同的linux操作系統中復制一份bin文件到已經刪除的linux系統中。 但遠程ssh登錄不了,復制不了文件到這個linux系統中。但是想到有xftp還沒有關閉連接,於是就打算採用這個xftp恢復bin目錄。
使用虛擬機軟體,創建一台相同liunx版本的系統,再將系統中bin文件夾中的內容復制一份。並使用xftp將bin文件內容復制到刪除的目錄中。
重新測試ssh遠程登錄連接系統,結果還是不行。繼續思考為什麼會不行。想到會不會是文件許可權引起的問題,還好xftp可以查看文件許可權,果然有這個問題,xftp復制進系統的文件許可權只仔槐雀有隻讀許可權,可bin目錄下的文件都是需要執行許可權的啊。還好xftp可以修改文念早件許可權,於是有了以下的修改許可權的截圖。綠色的文件代表可以執行,也就說先將以下的的文件中比較重要的文件(綠色的文件,修改許可權前文件為灰色)許可權改為755。然後再ssh遠程登錄系統,果然ok,可以登錄且可以操作系統。接下來將bin文件夾中的所有文件許可權改為 755,恢復完成。
⑷ linux怎麼備份刪除bin下的.sh命令
linux 下的復制\刪除和移動的命令分別是:
cp rm 和 mv
詳解如下:
Linux 的cp命令
功能: 復制文件或目錄
說明: cp指令用於復制文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最後的目的地並非一個已存在的目錄,則會出現錯誤信息
參數:
-a 或 --archive 此參數的效果和同時指定"-dpR"參數相同
-b 或 --backup 刪除、覆蓋目的文件先備份,備份的文件或目錄亦建立為符號鏈接,並指向源文件或目錄鏈接的源文件或目錄。假如沒有加上這個參數,在復制過程中若遇到符號鏈接,則會直接復制源文件或目錄
-f 或 --force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在
-i 或 --interactive 覆蓋文件之前先詢問用戶
-l 或 --link 對源文件建立硬鏈接,而非復制文件
-p 或 --preserve 保留源文件或目錄的屬性,包括所有者、所屬組、許可權與時間
-P 或 --parents 保留源文件或目錄的路徑,此路徑可以是絕對路徑或相對路徑,且目的目錄必須已經豐在
-r 遞歸處理,將指定目錄下的文件與子目錄一並處理。若源文件或目錄的形態,不屬於目錄或符號鏈接,則一律視為普通文件處理
-R 或 --recursive 遞歸處理,將指定目錄下的文件及子目錄一並處理
-s 或 --symbolic-link 對源文件建立符號鏈接,而非復制文件
-S <備份字尾字元串> 或 --suffix=<備份字尾字元猜沖串> 用"-b"參數備份目的文件後,備份文件的字尾會被加上一個備份字元串。默認的備份字尾符串是符號"~"
-u 或 --update 使用這項參數之後,只會在源文件的修改時間(Modification Time)較目的文件更新時,或是名稱相互對應的目的文件並不存在,才復制文件
-v 或 --verbose 顯示執行過程
-V <備份方式> 或 --version-control=<備份方式> 指定當備份文件時,備份文件名的命名方式,有以下3種:
1.numbered或t, 將使用備份編號,會在字尾加上~1~字元串,其數字編號依次遞增孝慶
2.simple或never 將使用簡單備份,默認的備份字尾字元串是~, 也可通過-S來指定
3.existing或nil將使用當前方式,程序會先檢查是否存在著備份編號,若有則採用備份編號,若無則採用簡單巧兆握備份
-x 或 --one-file-system 復制的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,否則不復制,亦不處理位於其他分區的文件
--help 顯示在線幫助
--sparse=<使用時機> 設置保存希疏文件的時機
--version 顯示版本
示例:
.復制文件,只有源文件較目的文件的修改時間新時,才復制文件
cp -u -v file1 file2
.將文件file1復製成文件file2
cp file1 file2
.採用交互方式將文件file1復製成文件file2
cp -i file1 file2
.將文件file1復製成file2,因為目的文件已經存在,所以指定使用強制復制的模式
cp -f file1 file2
.將目錄dir1復製成目錄dir2
cp -R file1 file2
.同時將文件file1、file2、file3與目錄dir1復制到dir2
cp -R file1 file2 file3 dir1 dir2
.復制時保留文件屬性
cp -p a.txt tmp/
.復制時保留文件的目錄結構
cp -P /var/tmp/a.txt ./temp/
.復制時產生備份文件
cp -b a.txt tmp/
.復制時產生備份文件,尾標 ~1~格式
cp -b -V t a.txt /tmp
.指定備份文件尾標
cp -b -S _bak a.txt /tmp
Linux 的rm 命令
使用許可權:任何使用者
使用方式:rm [options] name...
說明:刪除檔案及目錄。
參數:
-i 刪除前逐一詢問確認。
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r 將目錄及以下之檔案亦逐一刪除。
範例:
刪除任何C語言程式檔;刪除前逐一詢問確認 :
rm -i *.c
將 Finished 子目錄及子目錄中任何檔案刪除 :
rm -r Finished
功能說明:刪除文檔或目錄。
語法:rm [-dfirv][--help][--version][文檔或目錄...]
補充說明:執行rm指令可刪除文檔或目錄,如欲刪除目錄必須加上參數"-r",否則預設僅會刪除文檔。
參數:
-d或--directory 直接把欲刪除的目錄的硬連接數據刪成0,刪除該目錄。
-f或--force 強制刪除文檔或目錄。
-i或--interactive 刪除既有文檔或目錄之前先詢問用戶。
-r或-R或--recursive 遞歸處理,將指定目錄下的任何文檔及子目錄一並處理。
-v或--verbose 顯示指令執行過程。
--help 在線幫助。
--version 顯示版本信息
linux的mv命令
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
1.命令格式:
mv [選項] 源文件或目錄 目標文件或目錄
2.命令功能:
視
mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文
件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或
目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
3.命令參數:
-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,才會更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後。
說明:
-b 不接受參數,mv會去讀取環境變數VERSION_CONTROL來作為備份策略。
--backup該選項指定如果目標文件存在時的動作,共有四種備份策略:
1.CONTROL=none或off : 不備份。
2.CONTROL=numbered或t:數字編號的備份
3.CONTROL=existing或nil:如果存在以數字編號的備份,則繼續編號備份m+1...n:
執行mv操作前已存在以數字編號的文件log2.txt.~1~,那麼再次執行將產生log2.txt~2~,以次類推。如果之前沒有以數字編號的文件,則使用下面講到的簡單備份。
4.CONTROL=simple或never:使用簡單備份:在被覆蓋前進行了簡單備份,簡單備份只能有一份,再次被覆蓋時,簡單備份也會被覆蓋。
⑸ linux誤刪/bin目錄怎麼辦
解決思路:
1、找一台操作系統環境相同的機器,拷貝目錄到該機器。
2、估計的重新安裝內核,因為找不到內核映射了。
詳細解決步驟如下:
1、重新啟動機器,插入光碟,進入帶網路環境的救援模式。
2、把另外一個系統的bin目錄的壓縮包拷貝過來,然後解壓。
3、因為系統內核丟失了,所以我們需要先安裝內核,在安裝內亂漏明核時會自動生成initrd
a、cd /mnt/
b、mkdir cd
c、mount -t iso9660 -o ro /dev/hda /mnt/cd/ (注意,使用dmesg命令詳細查看光碟機掛載的設備,我的是/dev/hda)
d、rpm -Uvh --force kernel-2.6.18-164.el5.i686.rpm
4、安裝grub
a、grup-install /dev/sda
5、編輯grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda7
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-164.el5.img
注意搜核,如果你是邏輯卷需要修改根目錄的標簽,我的是邏輯卷。
6,重新啟動系統
重新啟動系統未成功,出現以下錯誤:
mount: could not find filesystem '/dev/root'
setuproot: moving /嘩告dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!
經過搜索後,發現此類問題多集中在邏輯卷管理的情況,具體原因是我們在重新安裝內核的時候,沒有載入一些邏輯卷,解決方法如下:
1) Boot with the rescue CD
2) Type 'chroot /mnt/sysimage'
3) 'cd /boot'
4) 'mkdir newinit'
5) 'cd newinit'
6) 'gunzip -c ../initrd-2.6.18-164.el5.img | cpio -idmv'
7) 'vi init'
8) Find 'mount /sysroot'
9) Delete or comment this out
10) Replace with 'mount -o defaults --ro -t ext3 /dev/VolGroup00/LogVol00 /sysroot' where /dev/VolGroup00/LogVol00 is the mount point for /
11) ':wq' out of vi
12) 'find . | cpio --quiet -c -o >../newinitrd'
13) 'cd ..' - you are now in /boot
14) 'mv initrd-2.6.18-164.el5.img initrd-2.6.18-164.el5.img.bak' - backup current initrd img file
15) 'gzip -9 < newinitrd > initrd-2.6.18-164.el5.img'
16) Reboot the computer without the CD
再次重新啟動系統,OK,問題解決。
7、嘗試進行遠程連接,因為遠程伺服器不允許root直接連接,可以用普通用戶進行登錄,登錄後執行 su - root 命令,輸入密碼總是提示密碼錯誤,但是在終端直接用root是可以登錄的,奇怪,後來發現問題出在 su 命令上,是文件許可權粘貼位的問題,因為拷貝過來的su命令許可權如下:
[root@localhost ~]# ll /bin/su
-rwxr-xr-x 1 root root 23960 Oct 18 21:46 /bin/su
正確如下:
[root@localhost ~]# ll /bin/su
-rwsr-xr-x 1 root root 23960 Oct 18 21:46 /bin/su
這樣就簡單了,設置粘貼位如下:
[root@localhost ~]# chmod u+s mount
除了su命令外,還有另外幾個需要設置粘貼位,mount,ping,ping6,traceroute,traceroute6,umount。
另外還要注意一些軟連接。