歡迎您光臨本站 註冊首頁

linux 操作技巧

←手機掃碼閱讀     火星人 @ 2014-03-22 , reply:0

1. 查看man文件...
nroff -man man/libnet.3 | less
有時候man文件不在系統目錄..這時候就可以用上面的方式來查看非標準的man文件
2. 以不同的用戶身份運行程序...
su - username -c "where/is/command/line"
有時候需要運行特殊身份的程序...就可以讓su來做...
3. 解壓bz文件
tar -jvxf some.bz
就是把tar的zvxf 改成jvxf
4. 編輯/etc/inittab后直接生效的方法..
執行init q
5. 讓linux連續執行幾個命令,出錯停止
command1 && command2 && command3 ....
6. linux中的bg和fg管理
當我們打ctrl+z的時候一個任務就被掛起(就是暫停),同時屏幕上返回一個數字,這時候可以用 "bg %數字" 來把這個進程放到後台執行...這個很適合在你忘了加&的時候進行補救...同樣 " fg %數字 "就能讓這個進程放到前台來執行了...
job命令用來查看當前的被bg的進程...
7. ctrl+s與ctrl+q
ctrl-s 好象是從終端時代遺傳過來的東東, 流量控制, 用來暫停向終端發送數據的. ctrl-q 用來恢復恢復
8. 目錄統計教本
保存成total.sh ,然後用total.sh 絕對路徑,就會統計路徑下目錄的大小了
#!/bin/sh
du 1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",1/1024,2}'|sed 's:/.*/\([^/]\{1,\}\):\1:g'
9. grep不顯示本身進程
ps -aux|grep httpd|grep -v grep
通過再一次grep -v grep就可以取消顯示你所執行的grep本身這個進程,-v參數是不顯示所列出的進程名.
10. 自己用的一個統計httpd的腳本
#!/bin/sh
while (true)
do
pstree |grep "*\[httpd\]"|sed 's/.*-\([0-9][0-9]*\)\*\[httpd\]/\1/'
sleep 3
done
11. 解壓rpm包中的文件
cat gnome-libs-1.4.1.2.90.22.i386.rpm | rpm2cpio | pax -r
12. 去掉apache的manual目錄中的所有.en的後綴名
進入到manual目錄
find ./ -regex .*\.en|awk -F. '{ printf "mv %s.%s.%s.%s %s.%s.%s\n",1,2,3,4,1,2,3}'|sh
13. linux里如何映射windows里的硬碟
mount -t smbfs -o username=xxx,password=xxx //winxp_ip_or_hostname/sharename /local_path
fc2中已經不需要-t smbfs這個參數了.
14. linux里如何查看可用的硬碟設備
fdisk -l
15. 命令行下製作ISO
用法: mkisofs -a -I -J -r -o filename.iso /目錄
用途: 將linux下某個目錄中的所有文件做成iso鏡像.而且我加上了參數,可以保證你做出來的光碟是在windows下也可以用的 (iso是有文件大小限制的...具體多少偶忘記了)
16. Linux下ISO的虛擬方法
步驟如下:
1. 把 /dev/cdrom 刪除,然後運行 ln -s /dev/loop7 /dev/cdrom
2. losetup /dev/loop7 xxx.iso
3. mount /mnt/cdrom
如何換盤:
1. losetup -d /dev/loop7 ;目的是取消這個設備
2. losetup /dev/loop7 yyy.iso ;新的iso文件
17. hosts的用法
host能夠用來查詢域名,然而它可以得到更多的信息.host -t mx linux.com可以查詢出linux.com的MX記錄,以及處理mail的host的名字.host -l linux.com會返回所有註冊在linux.com下的域名.host -a linux.com則會顯示這個主機的所有域名信息.
18. *.bz2文件如何解壓縮
使用tar -I 或者bunzip2命令都可以.
19. RPM常見用法
安裝rpm包時顯示進度並校驗包的正確性
用-vh參數:
如 rpm -ivh ipchains-1.3.6-1.i386.rpm 如果用glint或xrpm則不必.
直接通過ftp來安裝rpm包 如 rpm -i ftp://ftp.xxx.xxx
校驗所有的rpm包,查找丟失的文件 rpm -Va
查找一個文件屬於哪個rpm包 如 rpm -qf /usr/bin/who
列出一個rpm包的描述信息 如 rpm -qpi mon-0.37j-1.i386.rpm
列出一個rpm包的文件信息 如 rpm -qpl mon-0.37j-1.i386.rpm
20. 查看系統監聽的服務
用法: netstat -ln
解釋: "l"表示顯示當前系統監聽的埠信息;"n"表示埠按照埠號來顯示,而不轉換為service文件中定義的埠名;若希望了解各個埠都是由哪些進程監聽則可以使用p參數.
21. 查看系統運行的進程
用法: ps -auxw
解釋: 其中參數"a"表示顯示系統中所有用戶的的進程;"u"表示輸出進程用戶所屬信息;"x"表示也顯示沒有控制台的進程;若顯示行太長而被截斷則可以使用f參數.
22. Linux帳號搬家
對於新賬號->
保證將要加入系統的新帳號放在新的位?上,這通過修改/etc/default/useradd文件中的HOME值來實現. 如: HOME=/home2 使新增帳號的主目錄建在/home2下.
將已有帳號移至新的位?->
首先,將已有帳號的主目錄連帶目錄屬性拷至新位?,可用下面命令:
cp -a /home /home2或cp -rpd /home /home2
然後,修改/etc/passwd文件中相應記錄的home_directory域為/home2/username.
這樣兩步已將舊帳號移至新位?.確保無誤后,可刪去舊帳號的舊主目錄以騰出原文件系統的空間.
23. 啟動時屏幕顯示的信息
Linux 啟動時屏幕顯示的信息來不及看清就一閃而過,如果對這些信息感興趣的話可以在啟動完後用命令 dmesg 查看.
24. GRUB引導恢復小法
用啟動盤或安裝盤(linux rescue)進linux
sh# grub
grub> root (hdx,y)
grub> setup (hd0)
重啟
說明: 如果成功會有一個successful......這裡的x,如果是一個盤,就是0.如果你所安裝的linux的根分區在第二個硬碟上,那x就是1了;y就是裝有linux系統所在的根分區.setup (hd0)就是把GRUB寫到硬碟的MBR上.如果我知道我的linux裝在第一個硬碟上,但我不知道裝在哪個分區上,就可以先輸入root (hd0,然後用[TAB]鍵來補齊,然後就明白了.
25. 測試磁碟性能
用法: hdparm -tT /dev/hd?
例如: hdparm -tT /dev/hda (測試第一個物理硬碟的速度)
26. 將內網的服務對外開放
將192.168.1.2上的8888埠映射到192.168.1.3的8888埠
#iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8888 -j DNAT --to-destination 192.168.1.2:8888
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.2 -p tcp -m tcp --dport 8888 -j SNAT --to-source 192.168.1.3
#iptables -A INPUT -p tcp --dport 8888 -i eth0 -j ACCEPT (視情況而加)
27. 關閉"討厭"的Linux按鍵Beep聲
vi /etc/.inputrc 增加下面一行
set bell-style none
28. 開機進入圖形/文本登陸方式
vi /etc/inittab
id:x:initdefault:
x=3:文本方式 x=5:圖形方式
29. 在GRUB中限制系統可使用的內存數量
限制Linux只能使用120MB內存
title Red Hat Linux (2.4.19)
root (hd0,1)
kernel /boot/vmlinuz-2.4.19 ro root=/dev/hda2 mem=120M
initrd /boot/initrd-2.4.18-14.img
30. 如何查找某條命令的相關庫文件
在Linux環境下通過ldd命令即可實現,在控制台執行:
ldd /bin/ls
即可得到/bin/ls命令的相關庫文件列表.
31. 只列子目錄(文件)
ls -F | grep /
你也可以在.bashrc(針對bash)中把該命令作成alias,以後只要敲入sub就可以實現只列子目錄的功能. alias sub = "ls -F | grep /" 同樣,ls -l | grep ^-則是只列普通文件.
32. 計算目錄下的文件及子目錄
ls -al | wc -l
33. RedHat 下顯示彩色目錄列表
ls -color 可以顯示彩色目錄列表,其中: 藍色→目錄 綠色→可執行文件 紅色→壓縮文件 淺藍色→鏈接文件 灰色→其他文件
同樣你還可以試試ls --color(比前面多-),看看兩者的差別吧
34. 列目錄時顯示中文文件名
在沒有打補丁的Linux系統中,我們用ls列目錄,發現中文文件名都成了?號.我們可以使
用--show-control-chars命令選項來顯示.
ls --show-control-chars
35. 改變當前路徑下所有目錄和文件的所有權
chown -R owner[.group] *
也可以用find命令來實現: find . -exec chown owner[.group] {} ;
36. 改變所有子目錄及文件的屬性
在你要改變屬性的目錄下,輸入命令:chmod -R 777 *
就可以改變下面所有子目錄及文件的屬性,不過使用這個命令的時候要特別小心,要是在根目錄下打入這個命令,你所有文件的屬性都將改變,這就會引起很大的安全性問題.
37. 使用nohup命令
如果你想進程在你退出系統后還能執行,可以使用nohup命令.
如: nohup tar cf /dev/tape /home &
你退出后再重新登錄的話,使用ps命令會發現進程還在執行.
38. 重新啟動
Ctrl+Alt+Del 或 init 6 或 shutdown -r now
39. 快速查找文件
查找文件可以用find,但最好是用locate.速度快,參數少.
locate filename
它是在一個資料庫裡面查找.所以,要記得經常用updatedb命令更新資料庫.一般地,我們是在crontab裡面加一句,讓機子在每天深夜更新資料庫.
另外,快速查找命令文件,可以使用whereis.
例如: whereis rpm
40. 查找Linux命令
如果你想實現某種功能,但是不知道該使用什麼命令.你可以試試apropos命令,它也許
能幫你找到你想要的命令.例如: 你要"查找"文件,又不知道用什麼命令,你可以敲入下面的命令:
apropos search
41. 在同一個命令行上同時執行多條命令
用分號分隔.如編譯一個源文件:
#./configure ; make ; make install
42. 用gzip(gunzip)壓縮(解壓)同一目錄下的多個文件
gzip * 或者 gunzip *
43. 在使用less或more時,直接啟動vi
在less或者more中打入v鍵,會立即啟動vi編輯器,可以對文件進行編輯.
44. 在使用mail中啟動vi
如果你覺得用mail發送郵件編輯起來很不方便,你可以在正文的頂格輸入~v,啟動vi進行編輯,編輯完後退出vi,回到mail.
45. 觀察文件大小變化
使用watch命令,可以反覆執行命令.和ls配合,可以達到觀察某文件大小變化的效果.
watch ls -| file.name
46. 觀看binary文件中的字元串
strings binaryfile
47. 重裝Win 9x后lilo失效無法啟動Linux
只須先用軟盤啟動Linux然後運行一次lilo即可.對於RedHat可以用命令mkbootdisk來製作啟動盤,例如: mkbootdisk --device /dev/fd0 2.4.20
其中2.4.20是/lib/modules下的一個目錄.
48. 去掉引導區內的lilo信息
安裝lilo后如果硬碟數量或分區情況有改變的話將導致硬碟不能啟動,這時只需用軟盤啟動DOS再運行fdisk/mbr即可.
49. 把DOS/Windows改為預設操作系統
RedHat把Linux作為lilo預設操作系統,即出現 boot: 提示符后直接回車啟動Linux.如果想改為DOS/Windows,修改文件/etc/lilo.conf,把有關啟動DOS的部分放在前面,再運行一次lilo即可.也可以在lilo.conf的配?文件前面加上 Default=dos 其中DOS是DOS/Windows的label
50. 如何使用.iso文件
許多Linux發行版本都有.iso的光碟鏡像文件,可以用來刻錄光碟.我們也可以在Linux系統下直接使用. mount -t iso9660 xxxxx.iso /any/path/if/u/like -o loop
51. 顯示文件的類型
用命令 file 可以使你知道某個文件究竟是ELF格式的可執行文件,還是shell script文件或是其他的什麼格式. file filename
52. 解壓.tar.gz文件
xxxx.tar.gz文件使用tar帶zxvf參數,可以一次解壓開. tar zxvf xxxx.tar.gz
53. 後台運行程序
可以在程序後面加"&"符號,讓程序在後台運行.例如: 你想用updatedb更新文件路徑資料庫,又不影響你其他的工作.可以: updatedb &
54. 強行退出 X
有時候在 X 里由於程序出錯滑鼠鍵盤都不起作用,這時候不用著急,因為在Linux下幾乎不會像在Win 95里那樣惡性死機,你只須同時按下Ctrl+Alt+BackSpace鍵就可以回到字元界面下了.
55. 壓縮可執行文件
可以使用gzexe壓縮可執行文件,壓縮后的可執行文件仍然可以直接執行.使用本方法可以達到節省磁碟空間的目的(如果你真的需要的話). gzexe gawk
56. 處理文件名內含有特殊字元的文件
如果有一個文件名叫-file,如果想刪除它,鍵入 rm -file 會顯示invalid option,原來由於文件名的第一個字元為"-",Linux把文件名當做選項了,可以加--解決這個問題,如rm -- -file.如果是其他特殊字元的話可以在特殊字元前加一個\,或者用雙引號把整個文件名括起來.
57. 快速進入目錄
鍵入 cd ~ 可進入用戶的home目錄;鍵入 cd - 可進入上一個進入的目錄.
想全部刪除以.開頭的file或dir時你會如何干?
Wrong-> rm -r /tmp/.*
Correct-> rm -r /tmp/\.*
58. 修改網卡MAC地址
ifconfig eth0 down
ifconfig eth0 hw ether 00:AA:BB:CCD:EE
ifconfig eth0 up
上面的是臨時性的你可以加入rc.local讓它開機自動執行
59. 查看網卡工作狀態
#mii-tool -v
eth0: no link
product info: vendor 00:00:00, model 0 rev 0
basic mode: autonegotiation enabled
basic status: no link
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
SIOCGMIIPHY on 'eth1' failed: Operation not supported
60. 如何解決sendmail和sm-client啟動爆慢的問題!
造成sendmail和sm-client啟動慢是因為解析的問題,解決方法將自己的主機名加入/etc/hosts中即可,例如我的主機名是linuxbox.localdomain則/etc/hosts中應該有一條
192.168.100.1 linuxbox.localdomain linuxbox
61. 信息加藍色標記的sed語法...
sed -e "s/^-.*/&/g" tip>./new
62. 將一個服務加到自啟動運行等級中
chkconfig --add httpd
chkconfig --level 3 httpd on
就是把httpd加到chkconfig管理中,並加在第三層啟動
63. 在終端下調音量
aumix
64. 將man文件導出為文件並去掉控制符
man command | col -b >col.txt
65. col -b就是去掉控制符的
66. 查看文件夾大小
du ./ --max-depth=1
--max-depth=1是控制顯示深度
67. 光碟機彈出,彈入
eject -r 彈出
eject -t 彈入
68. 顯示最近登入用戶
last
69. chkconfig 可以設?系統啟動配?
chkconfig httpd on
chkconfig vsftpd on
.......
70. service 可以控制服務的起停
service vsftpd restart
service sendmail stop
......
71. 禁止文件寫(包括root)
chattr +i filename
72. 以實時滾動方式查看系統syslog
tail -f /var/log/messages
73. 清空日誌:
cat /dev/null > *.log
可加在crontab中完成日誌的清空作業。
74. 殺死所有俱指定名字的進程
killall processname
75. 查找含特定字元串的文件
例如查找當前目錄下含有"the string you want find..."字元串的文件
find <路徑> [-name xxx] | xargs grep "字串" ...
76. 查看進程
ps -e
ps -ef
是不同的.你會發現不同的當前run的name.如果發現不同,就說明有可能有人在你的機器作了一些動作
77. 利用xargs對管道輸出的信息使用特定程序進行處理
find ~root|xargs chmod a-x
78. 列出遠程主機(windows)的共享目錄
smbclient -L X.X.X.X(IP) -U 用戶名
79. 把遠程主機的共享目錄temp掛到/mnt
mount -t smbfs -o username=用戶名 //X.X.X.X(IP)/temp /mnt
80. 查看win32(fat)分區
fdisk -l (列出分區)(例)/dev/hda6 5000000 fat32
我們要看到這個分區,則:
mkdir win_fat
mount -t vfat /dev/hda6 /win_fat
81. 查找
文件夾
find /path/ \( -type d -name ".*" -exec mv {} ./path \; \)
文件
find /path/ \( -type f -name ".*" -exec mv {} /path/ \; \)
82. 顯示該進程打開的文件
lsof -p pid
83. 顯示連接打開的文件
lsof -i ◎[ip|hostname] port
84. 顯示打開這個目錄的文件
lsof directory
(可以在想umount某一目錄不成功的時候,查看是不是被別的文件打開了)
85. 顯示打開這個文件的進程
lsof file
86. 在ksh下用vi來編輯所有執行過的命令
ksh下執行set -o vi
或者在別的shell下執行ksh -o vi
87. more或者man的時候可以直接使用vi中的一些操作
比如j,k,CTRL+f CTRL+b,/ 等等
88. 想把man的內容導出到文本么?
man ls | col -b >a.txt
89. csh下"^"的一個小用法
% touch 11
% ^11^22
touch 22
%
不過只能替換第一個匹配到的字元串,第二個就匹配不到了
90. tar+compress
tar cvf - ./dir | compress -c >dir.tar.Z
uncompress -c dir.tar.Z|tar xvf -
91. 當前目錄下文件太多,用grep會報參數超長...
ls -al|wc -l
12323
grep 123123123 *
Arguments too long.
find . -name "*" | xargs grep 123123123
92. 搜索兩個字元串(AAA 與 BBB)很簡單, 用管道就成
grep AAA file |grep BBB = cat file|grep AAA|grep BBB
搜索兩個字元串(AAA 或 BBB),可以做兩次 grep AAA file, grep BBB file
也可以一氣呵成:cat file |fgrep 'AAA (回車!)
grep -E 'AAA|BBB' file-name
93. 查看系統中已有的用戶
cut -f1 -d: /etc/passwd
94. touch filename
如果filename已存在,則改變文件的日期、時間;
如果filename不存在,則創建一個新的空文件。
95. du -sm 察看目錄大小
96. num-lock default on
any of /etc/rc.d/*
for t in 1 2 3 4 5 6 7 8
do
setleds +num < /dev/ttyt > /dev/null
done
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122 一些奇怪的Unix 指令名字的由來
awk = "Aho Weinberger and Kernighan"
這個語言以作者 Al Aho, Peter Weinberger 和 Brian Kernighan 的姓來命名。
grep = "Global Regular Expression Print"
grep 來自 ed 的列印所有符合某 pattern 指令
g/re/p
"re" 代表 regular expression
fgrep = "Fixed GREP".
fgrep □找固定的字串。"f" 不是代表 "fast" - 事實上, "fgrep foobar *.c" 通常比 "egrep foobar *.c" 來得慢(有點意外吧, 不信的話, 自己試試嘍)。
儘管如此,Fgrep 仍然有可取之處,在檔案中搜尋字串的時候,Fgrep 能處理的字串數目較 egrep 多。
egrep = "Extended GREP"
egrep 用比 grep 更 fancy 的 regular rexpression。許多人始終只用 egrep,因為它用的 algorithm 比 grep 或 fgrep 用的高級,而且通常是三個程式中最快的。
cat = "CATenate"
catenate 是一個艱深難懂的單字,意思是"把它連成一串", 這就是"cat" 這個指令對一個或多個檔案所做的處理。
請不要跟 C/A/T 混淆了,C/A/T 是指電腦輔助排版系統(Computer Aided Typesetter)。
gecos = "General Electric Comprehensive Operating Supervisor"
不過,當通用電器 (GE) 的大型系統部門賣給 Honeywell 的時候,Honeywell 就把 GECOS 的 E 拿掉了。
目前 Unix 的密碼檔裡面仍保有 "pw_gecos" 這個欄位。這個名字是從古早的年
代沿用過來的。
Dennis Ritchie 曾經說過:
"有時候我們會把印表輸出或整批工作丟到 GCOS 機器。密碼檔裡面的 gcos 欄位是用來隱藏 $IDENT 卡片上的資訊,這樣做不夠優雅"。
nroff = "New ROFF"
troff = "Typesetter new ROFF"
這些字都是從"roff"衍生的, roff 是重寫 Multics 上的 runoff 程式得來的 (runoff 的意思就是"印出文件")。
tee = T
這是管線工人的術語,代表 T 型的管線分叉器。
bss = "Block Started by Symbol" (由符號啟始的區塊)
Dennis Ritchie 曾說過:
這個縮寫也許有其他說法,但事實上我們採用這個縮寫的本意是"Block Started by Symbol"。它是 FAP 上的虛擬指令,FAP (Fortran Assembly [-er?] Program) 是指 IBM 704-709-7090-7094
這種機型的組譯器。這個指令可定義自己的標號,並且預留一定數目的字組空間。還有另一個虛擬指令 BES,是 "Block Ended by Symbol",跟 BSS 指令幾乎一樣,不同點在於標號是定義在預留字組
空間尾端的位址 + 1 的地方。在這些機器上,Fortran 的陣列是以反方向儲存,而且陣列的索引是從 1 算起。
這種用法是合理的,因為這跟 UNIX 上標準的程式載入器一樣,程式碼當中並非真的放入這一整塊預留空間,而是先用一個數目表示,在載入時才真的把所需的預留空間定出來。
biff = "BIFF"
rc (像是 ".cshrc" 或 "/etc/rc" 中的 rc 這兩個字母) = "RunCom"
"rc" 也是Plan 9 作業系統 shell 的名字。
Perl = "Practical Extraction and Report Language"
Perl = "Pathologically Eclectic Rubbish Lister"
Perl是 Larry Wall 所發展的一種相當受歡迎的語言, Perl 在處文字,
process,與檔案時非常便利,可以說是兼得 shell 與 C 之長。

[火星人 ] linux 操作技巧已經有488次圍觀

http://coctec.com/docs/linux/show-post-99450.html