1、 查找某個文件夾下的以.jsp結尾的文件:
find 文件夾 -name "*.jsp"
2、 查找某個文件夾下的以.jsp結尾的文件數量:
find 文件夾 -name "*.jsp"|wc -l
3、系統內進程信息
ps -ef
4、列出系統內進程信息,並grep出自己感興趣的進程
ps -ef|grep intresting
第一列PID代表進程號,PPID(parent process ID)代表父進程號。
5、跟蹤進程內部的系統調用和信號(排查進程假死問題的時候很有用)
未啓動的進程:strace 啓動一個進程
已啓動的進程:strace -p pid
6、打印出運行中程序的堆棧信息
pstack pid
7、按樹形結構打印運行中進程結構信息
pstree -p pid
8、gdb調試C/C++程序
要用gdb調試C/C++程序首先編譯的時候要加-g選項,
g++ -g test.cpp -o test
這樣生成的程序就可以用gdb來調試啦。
直接用gdb啓動程序調試:gdb prog
用gdb附着到一個已經啓動的進程上調試:gdb prog pid
程序崩潰之後參數corefile也可以用gdb調試:gdb prog corefile
有一點需要注意,有些Linux系統默認程序崩潰不生成corefile,這時你需要ulimit -c unlimited
這樣就能生成corefile了。
進入調試界面後可輸入如下命令進行調試
9、瞭解進程的運行時信息和統計信息
每一個進程在/proc下都對應一個以進程號爲目錄名的目錄/proc/pid,它們是讀取進程信息的接口,我們可以進到這個文件裏面,瞭解進程的運行時信息和統計信息。
proc/pid/environ:包含了進程的可用環境變量的列表
/proc/pid/fd/:這個目錄包含了進程打開的每一個文件的鏈接。從這裏可以查看進程打開的文件描述符信息,包括標準輸入、輸出、錯誤流,進程打開的socket連接文件描述符也能看到。
/proc/pid/stat:包含了進程的所有狀態信息,進程號、父進程號、 線程組號、 該任務在用戶態運行的時間 、 該任務在用內核態運行的時間、 虛擬地址空間的代碼段、 阻塞信號的位圖等等信息應有盡有。
10、進程如果遇到了什麼問題(崩潰coredump、假死、阻塞、系統調用超時、文件描述符異常),處理步驟如下:
- ps查看進程id,看看進程還在不在以及進程狀態
- 如果進程還在的話,strace、psstack看下進程當前信息,是不是卡死在哪個位置,對比各棧最後調用信息找到異常點
- 如果進程不再了,如果有corefile文件,直接上gdb查看corefile信息
- 其他疑難雜症懷疑進程狀態信息的時候,看看/proc/pid下面的進程狀態信息,可能會給你啓發
11、目錄
當前目錄:./
上層目錄:../
主目錄: ~/
切換目錄: cd
12、怎麼查看當前進程?怎麼執行退出?怎麼查看當前路徑?
查看當前進程: ps
執行退出: exit
查看當前路徑: pwd
13、Ls 命令執行什麼功能? 可以帶哪些參數,有什麼區別?
ls:列出指定目錄中的目錄,以及文件
ls -a:所有文件
ls -l:詳細信息,包括大小字節數,可讀可寫可執行的權限等
14、創建
創建目錄: mkdir
創建文件:touch 或 vi
複製文件: cp
15、文件權限修改:
chmod
chmod u+x file:給 file 的屬主增加執行權限
chmod 751 file:給 file 的屬主分配讀、寫、執行(7)的權限;給 file 的所在組分配讀、執行(5)的權限;給其他用戶分配執行(1)的權限
chmod u=rwx,g=rx,o=x file:給 file 的屬主分配讀、寫、執行(7)的權限;給 file 的所在組分配讀、執行(5)的權限;給其他用戶分配執行(1)的權限
chmod =r file 爲所有用戶分配讀權限
chmod 444 file 爲所有用戶分配讀權限
chmod a-wx,a+r file 爲所有用戶分配讀權限
$ chmod -R u+r directory 遞歸地給 directory 目錄下所有文件和子目錄的屬主分配讀的權限
16、查看文件內容有哪些命令可以使用?
vi 文件名 :編輯方式查看,可修改
cat 文件名 :顯示全部文件內容
more 文件名 :分頁顯示文件內容
less 文件名 :與 more 相似,更好的是可以往前翻頁
tail 文件名 :僅查看尾部,還可以指定行數
head 文件名 :僅查看頭部,還可以指定行數
17、移動文件、改名用哪個命令?
mv
18、複製
複製文件:cp
連同文件夾和文件夾下的文件一塊複製:cp -r
19、刪除
刪除文件:rm
連目錄及目錄下文件一塊刪除:rm -r
刪除空文件夾:rmdir
20、Linux 下命令有哪幾種可使用的通配符?
“?”可替代單個字符。
“*”可替代任意多個字符。
“[charset]”可替代 charset 集中的任何單個字符,如[a-z],[abABC]
21、用什麼命令對一個文件的內容進行統計?
統計字節數:wc -c
統計行數:wc -l
統計字數:wc -w
22、Grep 命令
grep -i 字符串 文件:忽略大小寫
grep -v 字符串 文件:查找不含字符串的行
23、Linux 中進程有哪幾種狀態?在 ps 顯示出來的信息中,分別用什麼符號表示的?
D 不可中斷 Uninterruptible(usually IO) R 正在運行,或在隊列中的進程
S 處於休眠狀態
T 停止或被追蹤
Z 殭屍進程
W 進入內存交換(從內核 2.6 開始無效)
X 死掉的進程
24、怎麼使一個命令在後臺運行?
使用 & 在命令結尾
25、哪個命令專門用來查看後臺任務?
job -l
26、後臺任務調到前臺執行?停下的前臺任務在後臺執行?
fg:把後臺任務調到前臺執行
bg:把停下的前臺任務在後臺執行起來
27、終止進程用什麼命令? 帶什麼參數?
kill可將指定的信息送至程序。預設的信息爲SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。
-s:指定發送的信號。
kill [-s <信息名稱或編號>] [程序]
如:kill-9 pid
28、怎麼查看系統支持的所有信號?
kill -l
29、搜索文件用什麼命令? 格式是怎麼樣的?
find / -name "string*"搜索根目錄(含子目錄)中,所有文件名以string開頭的文件。
locate /etc/sh:搜索etc目錄下所有以sh開頭的文件。
whereis -b bash:顯示bash 命令的二進制程序
whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
30、使用什麼命令查看磁盤使用空間? 空閒空間呢?
df -hl
文件系統 容量 已用 可用 已用% 掛載點
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
31、使用什麼命令查看網絡是否連通?
netstat
32、使用什麼命令查看 ip 地址及接口信息?
ifconfig
33、查看各類環境變量用什麼命令?
env:查看所有
env $HOME:查看home:
34、du 和 df 的定義,以及區別
df 命令獲得真正的文件系統數據,而 du 命令只查看文件系統的部分情況。
35、打印出當前的目錄棧?
dirs
36、你的系統目前有許多正在運行的任務,在不重啓機器的條件下,有什麼方法可以把所有正在運行的進程移除呢?
disown -r
37、數據字典屬於哪一個用戶的?
數據字典是屬於’SYS’用戶的,用戶‘SYS’ 和 ’SYSEM’是由系統默認自動創建的
38、怎樣查看一個 linux 命令的概要與用法?
whatis
39、使用哪一個命令可以查看自己文件系統的磁盤空間配額呢?
repquota