linux基本常用命令勿忘筆記
常用的linux基本命令
這些天在鼓搗linux時,一些基本的命令長久時間沒有使用,忘記了,有些基本命令場用印象到時深刻,但是有些偶爾會用到,時間久了難免會忘記,然後又是花時間去查找,這樣浪費時間挺不值的,現記錄下一些自己平時用到而且容易忘記的命令,以便日後查詢使用
1.pwd 顯示當前目錄路徑
2.mkdir dir 創建目錄
3.cd dir 進入目錄
cd .. 回到上級目錄
cd / 回到根目錄
cd ~/cd 回到當前用戶的home目錄下
4.ls 顯示目錄文件,一般情況下用到這個就可以
ls -a 列出目錄下的所有文件,包括以 . 開頭的隱含文件
ls -t 以時間排序
ls -h 生成的結果有利於浏覽
ls -l 列出文件的詳細信息
…………
例如:
ubuntu@ip-10-250-31-239:~$ ls -lhta
total 12M
drwx------ 2 ubuntu ubuntu 4.0K Apr 11 00:41 .ssh
-rw-r--r-- 1 root root 12M Dec 12 2012 node-v0.8.16.tar.gz
…… …… ……
第1字段: 文件屬性字段 文件屬性字段總共有10個字母組成,第一個字母表示文件類型,如果這個字母是一個減號”-”,則說明該文件是一個普通文件.字母”d”表示該文件是一個目錄,字母”d”,是dirtectory(目錄)的縮寫. 第2字段:文件硬鏈接數或目錄子目錄數 第3字段:文件擁有者 第4字段:文件擁有者所在的組 第5字段:文件文件大小(以字節為單位) 第6字段:文件創建月份 第7字段:文件創建日期 第8字段:文件創建時間 第9字段:文件名 (如果是一個符號鏈接,那麼會有一個 “->” 箭頭符號,後面跟一個它指向的文件)
5.du 顯示所有目錄和文件大小
du -m 以1m為單位顯示
6.cp 復制文件
將文件filename1 復制後為 文件 filename2
cp filename1 filename2
cp config/cache_store.yml.example config/cache_store.yml
cp -f file1 file2 將文件file1復制成file2,因為目的文件已經存在,所以指定使用強制復
制的模式
cp -R file1 file2 將目錄dir1復制成目錄dir2
7. mv 移動或更名現有的文件或目錄。
mv file1 file2 將file1的名字改為file2
mv file1 /opt 將file1移動opt目錄下,沒有改名
mv file1 /opt/file2 將file1移到opt下並將file1名字改為file2
mv file1/* /opt/file2 將file1下所有文件移動file2下面
8.rm 刪除檔案及目錄
參數:
-i 刪除前逐一詢問確認
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認
-r 將目錄及以下之檔案亦逐一刪除
rm filename 刪除文件
rm -rf filename 刪除目錄,使用這個要相當謹慎,
刪除某個重要文件之前最好能夠備份一下
如果不小心刪除某個文件,請試著使用系統自帶還工具debugfs來修復,參考地址:
http://jingyan.baidu.com/article/2f9b480d6c2bcd41cb6cc223.html?qq-pf-to=pcqq.c2c
http://loamy.iteye.com/blog/422462
9.tar 備份文件
tar czvf backupfilename.tar filename
解壓備份
tar zxvf backfilename.tar
10.find
參數:
-name filename #查找名為filename的文件
-perm #按執行權限來查找
-user username #按文件屬主來查找
-group groupname #按組來查找
-mtime -n +n #按文件更改時間來查找文件,-n指n天以內,+n指n天以前
-atime -n +n #按文件訪問時間來查GIN: 0px">
-ctime -n +n #按文件創建時間來查找文件,-n指n天以內,+n指n天以前
-nogroup #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以內,+n指n天以前
-ctime -n +n #按文件創建時間來查找文件,-n指n天以內,+n指n天以前
-nogroup #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer f1 !f2 #查更改時間比f1新但比f2舊的文件
-type b/d/c/p/l/f #查是塊設備、目錄、字符設備、管道、符號鏈接、普通文件
-size n[c] #查長度為n塊[或n字節]的文件
-depth #使查找在進入子目錄前先行查找完本目錄
-fstype #查更改時間比f1新但比f2舊的文件
-type b/d/c/p/l/f #查是塊設備、目錄、字符設備、管道、符號鏈接、普通文件
-size n[c] #查長度為n塊[或n字節]的文件
-depth #使查找在進入子目錄前先行查找完本目錄
-fstype #查位於某一類型文件系統中的文件,這些文件系統類型通常可 在/etc/fstab中找到
-mount #查文件時不跨越文件系統mount點
-follow #如果遇到符號鏈接文件,就跟蹤鏈接所指的文件
-cpio %; #查位於某一類型文件系統中的文件,這些文件系統類型通常可 在/etc/fstab中找到
-mount #查文件時不跨越文件系統mount點
-follow #如果遇到符號鏈接文件,就跟蹤鏈接所指的文件
-cpio #對匹配的文件使用cpio命令,將他們備份到磁帶設備中
-prune #忽略某個目錄
例如:
ubuntu@ip-10-250-31-239:/$ sudo find -name apache2
./etc/init.d/apache2
./etc/logrotate.d/apache2
./etc/cron.daily/apache2
./etc/apache2
./etc/default/apache2
./usr/sbin/apache2
…………
11. grep
一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來.要用好grep這個工具,其實就是要寫好正則表達式
$ ls -l | grep '^a' 通過管道過濾ls -l輸出的內容,只顯示以a開頭的行
$ grep 'test' d* 有以d開頭的文件中包含test的行
$ grep 'test' aa bb cc 顯示在aa,bb,cc文件的行
拓展命令
egrep 命令,搜索文件獲得模式。
12.man
Linux提供了豐富的幫助手冊,當你需要查看某個命令的參數時不必到處上網查找,只要man一下即可。
例如:
ubuntu@ip-10-250-31-239:/$ man ls
顯示出ls的用法和參數
Manual page ls(1) line 1 (press h for help or q to quit)最好輸入q退出
13.ps
ps命令給出正在運行的某個進程的狀態,每個進程有特定的id成為PID
參數:
-A :所有的 process 均顯示出來,與 -e 具有同樣的效用;
-a :不與 terminal 有關的所有 process ;
-u :有效使用者 (effective user) 相關的 process ;
x :通常與 a 這個參數一起使用,可列出較完整信息。
輸出格式規劃:
l :較長、較詳細的將該 PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一個更為完整的輸出。
ps aux 列出目前所有的正在內存當中的程序
ps -l 將目前屬於您自己這次登入的 PID 與相關信息列示出來
常與grep並用
14.kill
用來殺死已經無關緊要或者沒有響應的進程
殺死一個進程需要知道進程的PID.
ps -ef 查看當前用戶下所有的進程
ps -ef|grep httpd/ ps -A | grep -i apache2 查看httpd的pid
然後 kill -pid 結束進程
*killall命令
killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。
# killall httpd
# kill -HUP PID
該命令讓Linux和緩的執行進程關閉,然後立即重啟。在配置應用程序的時候,這個命令很方便,在對配置文件修改後需要重啟進程時就可以執行此命令。
15.whereis
whereis命令用來查找命令的位置,包括執行文件、源代碼和手冊頁文件(locate the binary, source, and manual page files for a command)。如果要查找任意文件的所在位置,可以使用locate或者find等命令
whereis [ -s ] [ -b ] [ -m ] [ -u ] [ { { -S | -B | -M } Directory ... }... -f ] 要找的文件名
-b 搜索文件的二進制部分。
-m 搜索文件的手冊部分。
-s 搜索文件的源部分。
-u 沒有說明文檔的文件
例如
ubuntu@ip-10-250-31-239:~$ whereis postgresql
postgresql: /etc/postgresql /usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql
16.service
命令控制服務的啟動、停止和重啟,它讓你能夠不重啟整個系統就可以讓配置生效以開啟、停止或者重啟某個服務
例如
service apache2 start
service apache2 restart
service apache2 stop
17. alias
是一個系統自建的shell命令,允許你為名字比較長的或者經常使用的命令指定別名
例如:
ubuntu@ip-10-250-31-239:~$ alias l='ls -l'
ubuntu@ip-10-250-31-239:~$ l
total 11632
drwxr-xr-x 14 root root 4096 Apr 18 02:10 canvas
drwxr-xr-x 10 24561 staff 4096 Apr 18 04:12 node-v0.8.16
-rw-r--r-- 1 root root 11899509 Dec 12 2012 node-v0.8.16.tar.gz
去掉’l'別名,要使用unalias命令
例如:
ubuntu@ip-10-250-31-239:~$ unalias l
ubuntu@ip-10-250-31-239:~$ l
l: command not found
ubuntu@ip-10-250-31-239:~$
18.df
報告系統的磁盤使用情況。在跟蹤磁盤使用情況方面對於普通用戶和系統管理員都很有用。 ‘df‘ 通過檢查目錄大小工作,但這一數值僅當文件關閉時才得到更新
ubuntu@ip-10-250-31-239:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 8256952 2690192 5147332 35% /
udev 294136 12 294124 1% /dev
tmpfs 120872 200 120672 1% /run
none 5120 0 5120 0% /run/lock
none 302180 0 302180 0% /run/shm
ubuntu@ip-10-250-31-239:~$
19.echo
顯示文字
ubuntu@ip-10-250-31-239:~$ echo "dian di yun"
dian di yun
ubuntu@ip-10-250-31-239:~$
20.wget
是用於非交互式(例如後台)下載文件的免費工具.支持HTTP, HTTPS, FTP協議和 HTTP 代
理
例如:
wget url
21.free
顯示內存狀態
free命令詳解: 功能說明:顯示內存狀態。
語 法: free [-bkmotV][-s ]
補充說明:free指令會顯示內存的使用情況,包括實體內存,虛擬的交換文檔內存,共享內存區段,連同系統核心使用的緩沖區等。
參 數:
-b 以Byte為單位顯示內存使用情況。
-k 以KB為單位顯示內存使用情況。
-m 以MB為單位顯示內存使用情況。
-o 不顯示緩沖區調節列。
-s 持續觀察內存使用狀況。
-t 顯示內存總和列。
-V 顯示版本信息。
例如:
ubuntu@ip-10-250-31-239:~$ free -m
total used free shared buffers cached
Mem: 590 572 17 0 130 256
-/+ buffers/cache: 185 405
Swap: 0 0 0
22. ifconfig
用於顯示或配置網絡設備(網絡接口卡)的命令
ubuntu@ip-10-250-31-239:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 22:00:0a:fa:1f:ef
inet addr:10.250.31.239 Bcast:10.250.31.255 Mask:255.255.255.192
inet6 addr: fe80::2000:aff:fefa:1fef/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3481075 errors:0 dropped:0 overruns:0 frame:0
TX packets:1382616 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3836200331 (3.8 GB) TX bytes:194867450 (194.8 MB)
Interrupt:25
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3294499 errors:0 dropped:0 overruns:0 frame:0
TX packets:3294499 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1025117298 (1.0 GB) TX bytes:1025117298 (1.0 GB)
23.netstat
用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等
參數:
-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
列出所有端口 netstat -a
列出所有 tcp 端口 netstat -at
列出所有 udp 端口 netstat -au