ssh
加密的網絡協議,提供客戶-服務模式。
登錄
ssh username@ip
ssh ip #不提供用戶名是默認使用當前用戶的用戶名
-C選項:數據在傳輸過程中被壓縮
-p+端口號:指定端口號(默認端口號22)
-v選項:調試模式
-F+文件路徑:使用指定的配置文件
參考:https://linux.cn/article-2933-1.html
scp
和cp一樣用來實現文件的復制功能,但是主要是用在不同的linux系統之間。有security的文件復制,基於ssh登錄
cp [OPTIONS] file_source file_target
-r選項:源有目錄,遞歸復制
-f選項:force,覆蓋同名目錄
scp [OPTIONS] file_source file_target
-v選項:顯示狀態
-C選項:使用壓縮
-P選項:選擇端口
例子:
從本地到遠端 scp /file/from.txt username@ip:/file/to.txt
從遠端到本地 scp username@ip/file/from.txt /file/to.txt
less
和more一樣用來查看文件內容,但是功能更加強大一些。支持前后翻頁和前后查找。而且less在查看之前不會加載整個文件,最大文件處理更快。
less [OPTIONS] file
-b <緩沖區大小>:設置緩沖區
-e :結束自動離開
-f :強迫打開特殊文件,設備,目錄和二進制文件
-i :忽略搜索時的大小寫
-N :顯示每行的行號
打開后可以使用的命令
/ <word> :向前搜索
n :下一個
N :上一個
? <word> :向后搜索
j :向下一行
k :向上一行
G :到最后一行
g :到第一行
u :向上一頁
d :向下一頁
v :進入編輯模式
tail
顯示指定文件的末尾內容。
tail [OPTIONS] file
-f 循環讀取
-q 不顯示處理信息
-n :顯示行數
--pid=PID 與-f合用,表示在進程ID為PID的進程結束后一起結束
-s :與-f合用,表示每次反復的間隔休眠秒數
find
在指定目錄下根據指定規則查找文件
find [dir dir ...] [OPTIONS] [-exec command {} \;]
-name <文件名> :要查找的文件名,可以使用glob規則
glob :'*' 統配任意字符
'?' 統配任意一個字符
'[abc]' 統配括號中的任意一個字符
'[a-c1-9]' 統配括號內字符范圍中的任意一個字符
-atime n|-n|+n :最后訪問時間等於n|小於n|大於n
-mtime n|-n|+n :最后修改內容時間
-ctime n|-n|+n :最后修改屬性時間(也就是i節點信息修改時間)
-type :根據文件類型查找
f :普通文件
d :目錄
l :鏈接
b :塊設備文件
c :字符設備
p :管道
s :socket文件
-size 2M|+2M|-2M :根據大小找文件(大小為2M|大於2M|小於2M)
[exec command {} \;] :在查找結果上執行操作,command是要執行的操作,{}占位,可以理解為find的結果放在這里,\;是結束標志,\前有空格
也可以使用xargs或``實現
find [] [] [exec command {} \;]
find [] [] | xargs command
command `find [] []`
grep
grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
grep [OPTIONS] str_to_search filename
-a :將二進制文件以text文件的方式查找
-c :輸出匹配行的行數
-i :忽略大小寫
-n :在輸出時輸出行號
-v :反向選擇,輸出沒有匹配的行
str_to_search可以使用正則表達式(上面提到的glob是一種簡化的正則)
[^abc] :反向選擇,不能是a,b,c
[abc] :abc中的一個
[a-z1-9] :a-z和1-9中的一個
^ :行首
$ :行尾
. :任意一個字符
* :任意多個字符,包括零個
{} :限定重復次數,'{','}'兩個符號在shell中有特別的含義,所以要用'\'使其失去特殊含義
o\{2\} :o重復兩次
o\{2,5\} :o重復兩次到五次
o\{2,\} :o重復兩次以上
參考:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html
curl
使用URL語法在命令行下完成文件傳輸。
curl [OPTIONS] url
-o [file_name]:將文件保存到file_name中
-O :按URL中文件名保存文件
-L :強制重定向
-C :斷點續傳
-u username:password :提供用戶名密碼
-v :查看所有工作過程輸出
--data-urlencode ""|@filename :使用post方式
例子:
獲取FTP服務器文件
curl -O ftp://ftp_server/xxx.php
上傳文件到FTP服務器
curl -T myfile.txt ftp://ftp.server.com
參考:http://www.cnblogs.com/gbyukg/p/3326825.html
strace
跟蹤進程執行時的系統調用和所接受的信號。
-c :統計每一個系統調用的執行時間,次數和出錯次數
-f :跟蹤由fork調用產生的子進程
-ff :如果提供了-o filename,則所有進程對的跟蹤結果輸出到相應的filename.pid中,pid是各進程的進程號
-F :跟蹤vfork調用
-p [pid] :跟蹤進程pid
-e :通過這個參數可以定制跟蹤
reace=open,close :只跟蹤指定系統調用
trace=file :只跟蹤文件有關的系統調用
trace=process :只跟蹤進程控制相關系統調用
trace=network :只跟蹤網絡有關系統調用
trace=signal :只跟蹤系統信號相關系統調用
...還有一些現查吧
ulimit
linux系統內建功能,用於對有它生成的shell進程及其子進程的資源使用設置限制,包括所創建內核文件大小、進程數據塊大小、shell進程創建文件的大小、內存鎖大小、常駐內存集大小、打開文件描述符的數量、分配堆棧的最大大小、CPU時間、單個用戶所能使用的最大虛擬內存。
**(作用范圍)ulimit限制的是當前shell進程及其子進程;因此可以通過shell配置文件作用於相應的shell
ulimit [OPTIONS] [limit]
-a :顯示當前所有的limit信息
-c :設置最大core文件大小,單位blocks(512B)
-d :進程最大數據段大小,單位blocks
-f :進程可以創建文件的最大值,單位blocks
-l :最大可加鎖內存大小,單位KB
-m :最大內存大小
-n :最大可以打開的文件描述符
-p :管道緩沖區大小,單位KB
-s :線程棧大小,單位KB
-t :最大的CPU占用時間,單位秒
-u :用戶最大可用進程數
-v :進程最大可用虛擬內存,單位KB
例:
對core文件大小不做限制
ulimit -c unlimited
參考:http://blog.csdn.net/wanghai__/article/details/6332540
core dump
作用:一種診斷和調試程序錯誤的方式。當程序運行異常終止或崩潰時,操作系統將程序當時的內存狀態、寄存器信息(程序指針,棧指針)、內存管理信息和操作系統狀態等信息保存到一個文件,這就叫Core Dump。通過ulimit -c可以查看當前終端允許保存的core文件的最大的大小,如果為零,則不會輸出core文件。可以通過ulimit -c unlimited改為不設大小設置或直接改為某一值。
使用:可以通過gdb查看core文件
1. 使用gcc -g 參數編譯程序,生成調試信息
2. 運行程序,崩潰時會默認在執行文件目錄下生成core文件
3. 使用gdb ./exefielname corefilename 查看core文件
參考:http://www.cnblogs.com/hazir/p/linxu_core_dump.html