1. ssh遠程鏈接服務器命令 ssh [username@]hostnamephp
2. 查看遠程服務器近期登錄記錄 lasthtml
3. 用戶及其主目錄的建立java
1. useradd –d /home/lb -m 用戶名 能夠建立一個名爲lb的用戶,主目錄爲/home/lb,選項-m表示若是主目錄不存在則建立。python
2. userdel 用戶名 刪除一個用戶linux
3. passwd 選項 用戶名 用於對口令作一些更改git
4. usermod 選項 用戶名 用於對用戶的配置作修改,與useradd中的選項同樣。github
5. cat /etc/passwd 用來察看全部的用戶正則表達式
4. 將新建的用戶加入sudo用戶組shell
使用root用戶權限修改 vi /etc/sudoers 加上 user_name ALL = (ALL) ALL 一行。vim
5. 切換用戶使用 su 命令
su username 切換用戶,可是不更改環境變量
su - username 切換用戶,並更改到當前用戶的環境變量
6. 從網絡上下載資源文件
curl -O http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
從支持的http,ftp等協議從給定的URL執行操做,選項-O表示下載到的文件就以資源文件的名字命名。若是出現下載失敗,多是當前用戶組對目錄不具備w權限,須要使用sudo命令。
7. 查找當前已經安裝的軟件包
rpm -qa 會顯示全部安裝的軟件包
rpm -qa | grep ssh 會顯示與ssh相關的軟件包
8. 利用ssh鏈接進行遠程拷貝命令
scp /Users/hope/Downloads/hadoop-2.8.0.tar.gz lb@10.3.242.98:/home/lb
將本地路徑下的 hadoop-2.8.0.tar.gz 拷貝到遠程服務器 [[用戶名 @ ] 主機地址 : 路徑
若是是拷貝文件夾的話,須要加上選項 -r
9. 察看服務器和操做系統相關信息
uname -a 服務器信息
cat /etc/issue 操做系統的發行版本
10. 查找指定目錄下以y開頭的文件
find ./ -name "y*"
11. 察看當前全部的進程及佔用端口
netstat -a -t --numeric-ports -p
12. 解壓縮命令
1. 解壓命令
tar -zxvf jdk-8u131-linux-x64.tar.gz -C temp/ 將壓縮包解壓到當前目錄的 temp 子目錄下
2. 壓縮命令
tar -zcvf tmp.tar.gz ./test 將當前目錄下的 test 文件夾,按照 zip 壓縮方式壓縮成 tmp.tar.gz
13. 關於 /etc/profile 配置文件和環境變量的寫法
關鍵字的含義:
PATH:告訴系統,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下尋找此程序外,還應到哪些目錄下去尋找。
CLASSPATH:告訴 Java 執行環境,在哪些目錄下能夠找到執行 Java 程序所須要的類或者包(如.jar文件)。
特殊字符的寫法:
: 表示並列含義,若是一個環境變量有多個,用:號進行分離。
. 表示執行操做的當前目錄。
因此常常看到 export $PATH = /usr/java/jdk1.8.0:$PATH 表示環境變量在以前的環境變量上加上 Java 的安裝路徑,相同名字的環境變量後寫入的起做用。
另外:~/.bash_profile 存儲的是當前用戶的環境變量,若是隻是想使用此用戶時有特定的環境變量,能夠直接在該文件中做更改,一樣是使用 source ~/.bash_profile 使文件生效。
/etc/profile 和 ~/.bash_profile 都是在用戶登陸時執行一次的 bash 信息和環境變量配置狀況。~/.bashrc 是每一次啓動 bash shell 都會讀取的文件,~/.vimrc 相似,所以修改以上兩個文件後不須要使用 source 命令讓其生效,直接從新打開 bash 或者 vim 時會自動讀取生效。
14. Jar (Java ARchive 文檔)
是一種與平臺無關的文件格式,能夠將多個文件合成一個文件,支持壓縮。能夠用於將寫好的類進行打包,方便類庫的發佈和傳輸。與ZIP文件的區別在於,JAR 文件不只用於壓縮和發佈,並且還用於部署和封裝庫、組件和插件程序,並可被像編譯器和 JVM 這樣的工具直接使用。
1. jar 建立並顯示打包過程
jar cvf hello.jar hello/*
2. 顯示 jar 包裏的全部內容
jar tvf hello.jar
3. 解壓 jar 包
jar xvf hello.jar
4. -C 選項用於先切換到指定目錄下再執行該條 jar 命令
15. source 命令的功能是執行一個shell,它和直接執行 ./a.sh 的區別在於:
好比你在一個腳本里export $KKK=111 ,若是你用./a.sh執行該腳本,執行完畢後,你運行 echo $KKK ,發現沒有值,若是你用source來執行 ,而後再echo ,就會發現KKK=111。由於調用./a.sh來執行shell是在一個子shell裏運行的,因此執行後,結構並無反應到父shell裏,可是source不一樣它就是在本shell中執行的,因此能夠看到結果。
16. crontab 命令用於定時執行 shell 命令
基本格式 :
* * * * * command
分 時 日 月 周 命令
例子: */2 0,12 * * * python /home/libo/bjh_search.py
表示在0時和12時每隔兩分鐘執行一次 python 程序。
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
記住幾個特殊符號的含義:
「*」表明取值範圍內的數字,
「/」表明」每」,
「-」表明從某個數字到某個數字,
「,」分開幾個離散的數字
在命令行輸入 crontab -e 便可建立時程表,wq 保存便可。
用 crontab -l 命令可查看當前的 crontab 。
/sbin/service crond start 用於啓動服務。
若是 crond 服務事先已啓動,那麼當前用戶直接編輯保存後便可生效。
注:在定時執行 python 程序時,若是涉及文件的 IO 操做,必定要寫完整路徑。由於腳本在執行時,是經過 crontab 去執行的,所以執行目錄會變成當前用戶的 home 目錄,若是是 root ,就會在/root/下執行。
1. 路徑問題
使用 crontab 部署定時任務時,默認的當前路徑爲部署任務的用戶的home路徑下,好比用戶名爲spider的用戶爲/home/spider。能夠在執行命令中作目錄變動。
2. 環境變量問題
由於 crontab 啓動的命令並不讀當前的 .profile ,所以全部程序的環境變量須要用程序或shell本身去設置,解決方法就是在執行shell腳本的業務邏輯前先初始化操做系統的環境變量配置文件.profile或.bash_profile。好比:*/1 * * * * source ./.bash_profile && cd ./libo/email_auto && python rep_timeliness.py
3. 執行日誌
在 /var/log/cron 中,察看須要有root權限
17. ctrl + R 輸入搜索字符,能夠察看相關的歷史命令
18. echo ftp://`hostname``readlink -f tmp.tar.gz `
能夠輸出當前文件夾下 tmp.tar.gz 文件的ftp地址:
ftp://cp01-scholar-offline-dev02.epc.baidu.com/home/work/tmp.tar.gz
wget 上述地址能夠獲取這個文件
19. Vim 快捷鍵
1. 屏幕滾動
gg 快速跳到文檔頭部
G 快速跳到文檔底部
Ctrl + U 向上滾動半屏
Ctrl + D 向下滾動半屏
Ctrl + B 向上滾動一屏
Ctrl + F 向下滾動一屏
2. 修改 Vim 的配置文件
vim ~/.vimrc
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab / expandtab
set autoindent
其中:
tabstop
表示一個 tab 顯示出來是多少個空格的長度,默認 8。
softtabstop
表示在編輯模式的時候按退格鍵的時候退回縮進的長度,當使用 expandtab
時特別有用。
shiftwidth
表示每一級縮進的長度,通常設置成跟 softtabstop
同樣。
當設置成 expandtab
時,縮進用空格來表示,noexpandtab
則是用製表符表示一個縮進。官方建議縮進用空格表示,即 expandtab。
設置 autoindent 自動縮進,即按回車時每行的縮進與上一行相同,設置 noautoindent 取消縮進。
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
上述設置可讓vim自動識別文件編碼,(能夠自動識別UTF-8或者GBK編碼的文件)其實就是依照fileencodings提供的編碼列表嘗試,若是沒有找到合適的編碼,就用latin-1(ASCII)編碼打開。有時vim顯示中文亂碼,是由於沒有識別出文件的編碼方式致使的。
3. 行首、行尾快速移動
1. 0 移至行首
2. $ 移至行尾
4. 查找操做
在命令行:後輸入/查找字段便可。例如 :/status 查找status字段。
n 鍵能夠跳到下一個,N 鍵跳到上一個。
5. Vim 中複製
因爲直接進行復制,vim 會認爲粘貼過來的內容是手動輸入的,所以會自動繼承上一行的縮進,加上覆制內容本來格式中包含的縮進,致使格式錯亂。
所以在進行粘貼以前,使用 :set paste 命令進入粘貼模式,粘貼完再使用 :set nopaste 解除粘貼模式。粘貼模式其實是對自動縮進等內容進行了暫時的設置。
6. 窗口分割
1. :split test.py
用於在當前窗口進行水平分割並打開 test.py 文件,vsplit 命令用於水平分割。
2. ctrl + w
用於在分割窗口間跳轉
3. :wall
保存全部窗口打開文件的修改
4. :only
退出其餘全部窗口,只留下當前窗口
7. 粘貼複製
1. yy 命令用於複製當前行
2. p 命令用於在當前行的下一行進行粘貼,並將光標移動到下一行的行首
3. P 命令用於在當前行的上一行進行粘貼,並將光標移動到上一行的行首
8. 顯示不可見字符
:set list 用於顯示不可見的空格、tab、換行等符號
9. 經過管道符將內容使用 vim 編輯器察看
echo "test" | vim -
使用 vim - 能夠獲取從終端傳入的值
10. vim 打開文件後執行 :set fileencoding 能夠查看文件的編碼類型
20. tail -f 文件名
能夠監控文件尾部的更新
21. 命令模式下 shift + '#' 能夠高亮搜索當前字符串
:nohlsearch 取消搜索 或者簡寫爲 :noh
22. Linux 命令行光標移動命令
ctrl + 'a' 迅速移動到行首
ctrl + 'e' 迅速移動到行尾
23. sendmail 服務 /usr/sbin/sendmail
1. 郵件系統解釋
郵件服務器構成了郵件系統的核心。每一個收信人都有一個位於某個郵件服務器上的郵箱(mailbox)。首先,當你將 E-mail 輸入到你的計算機開始發送時,會根據 SMTP(Simple Mail Transfer Protocol) 和 TCP/IP 協議將你的信件打包,並加註信件頭後送到你所屬服務商的服務器上,而後郵件服務器會根據你加註的信件頭傳到下一個郵件服務器,依次往下傳輸,直到到達接收用戶所屬服務商的郵件服務器,保存在服務器上用戶的 E-mail 郵箱裏,用戶我的終端經過與服務器的鏈接取走郵件。
2. 名詞解釋
1. MUA (Message User Agent)
郵件用戶代理,一般咱們的 Client 端電腦都無法直接寄信,因此須要經過 MUA 來幫助咱們傳遞信件,無論是收信仍是寄信,都要依賴各個系統提供的 MUA (Foxmail 和 Outlook) 幫咱們傳遞信件才能使用郵件系統。
2. MTA (Message Transfer Agent)
郵件傳輸代理,MUA 是用在客戶端上的軟件,MTA 就是用在主機上的軟件,用於監視 MUA 的請求,找出對方的 MTA,把信送到對方的 MTA 服務器,或者把信收到郵件隊列。
3. MDA (Message Deliver Agent)
郵件投遞代理,把信最終投遞到具體的用戶;主要功能是將MTA所收到的信件,依照信件的流向(送到那裏去)來將該信件放置到本機帳戶下的郵件檔案中(mailbox_收件箱),或者再經由MTA將這個信件發送到下個MTA。
3. sendmail 服務
經過腳本調用 sendmail 服務配合 crontab 就能夠完成郵件的定時自動發送,主要包括指定接收方的郵箱地址和完成郵件內容的書寫,郵件內容能夠選擇傳遞 html 格式的內容。好比使用 python 調用服務時,就將對應每行的 html 內容從上到小組織成一個列表,而後將列表的每行用 '\n' 鏈接起來組成完整的 html 語句,進行傳遞便可。
send_mail = 'formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=utf-8" -I "Subject:=?utf-8?B?%s?=" -I "TO:%s" | /usr/sbin/sendmail %s' % (subject, users, users)
sub = subprocess.Popen(send_mail, shell=True, stdin=subprocess.PIPE)
slice_num = sub.communicate(html)
上述語句是完成 sendmail 服務的調用,其中須要的參數 user 是用 ' ' 鏈接的多個郵件接收地址的字符串,html 爲郵件的內容,subject 爲郵件主題。
24. 清屏命令
clear 或者快捷鍵 ctrl + l
25. wc 命令
1. 命令格式
wc [選項] 文件
2. 命令功能
統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。
3. 命令參數
-c 統計字節數
-l 統計行數
-m 統計字符數
-w 統計字數,一個字被定義爲由空白、跳格或換行字符分隔的字符串
-L 打印最長行的長度
26. & nohup 標準輸入輸出流
1. 標準輸入輸出流
操做系統中有三個經常使用的流:
0:標準輸入流 stdin
1:標準輸出流 stdout
2:標準錯誤流 stderr
通常當咱們用 > console.txt,其實是 1 > console.txt 的簡略用法;< console.txt 是 0 < console.txt 的簡略用法。
2. 輸出重定向 > 和 >> 的區別
> 和 >> 都是輸出重定向到文件,若是文件不存在,就建立文件。區別在於,若是文件存在,> 會將文件清空,而後再向文件輸入;>> 會將新的內容追加到原有文件的尾部。
重定向運算符能夠實現本來爲標準輸出的內容重定向到文件中,本來屏幕輸出的全部內容都會輸出到文件中。
3. & 命令
當在前臺運行某個做業時,終端會被該做業佔據;能夠在命令的尾部加上 & 實現後臺運行,例如:sh test.sh &
注意,須要用戶交互的程序不要放在後臺進行,不然機器會在後臺等待用戶交互。通常來講做業在後臺執行同樣會把結果輸出到終端屏幕,這時咱們能夠選擇將輸出重定向,使後臺執行的做業輸出到咱們指定的文件中。例如:command > output.file 2>&1 &
2>&1 將標準錯誤流重定向到標準輸出流中,而標準輸出流又在以前重定向到 output.file 文件中,因此全部的標準輸出流和標準錯誤流都會輸出到 output.file 文件中去。至於爲何必須將標準錯誤流重定向到標準輸出流中,而不能直接重定向到文件,好比 2 > output.file 會出錯,是由於標準錯誤流沒有緩存區,而標準輸出流 stdout 有緩存區。爲何直接要寫爲 2>&1 ,由於 2>1 系統會自動認爲 1 是一個文件,而 & 與 1 結合爲 &1 就表明了標準輸出流。
4. nohup 命令
使用 & 命令在後臺執行的做業,雖然當前控制檯沒有被佔用,可是一旦把當前控制檯關閉(退出帳戶時),做業就會中止運行。nohup (no hang up)命令能夠幫助用戶在退出帳戶後仍然繼續執行相應的進程。
若是使用 nohup 提交做業,在缺省狀況下,該做業的全部輸出都被重定向到當前目錄下的 nohup.out 文件中,也可使用重定向運算符自定義重定向。例如:nohup comand > out.file 2>&1 &
使用 nohup 命令後,若是在當前帳戶非正常退出或結束的時候,命令也有可能自動結束了,因此最好是使用 exit 正常退出當前用戶。
1. 用nohup執行python程序時,print沒法即時輸出的問題
nohup python test.py > nohup.out 2>&1 &
發現nohup.out中顯示不出來python程序中print的東西。
這是由於python的輸出有緩衝,致使nohup.out並不可以立刻看到輸出。
python 有個-u參數,使得python不啓用緩衝。
nohup python -u test.py > nohup.out 2>&1 &
5. ctrl + z
將當前前臺執行命令放到後臺,並處於暫停狀態
6. ctrl + c
終止前臺命令
27. make 命令
1. 命令做用
根據 Makefile 文件的指示去構建文件。make 命令後給出須要構建的目標(能夠有多個,用空格隔開),而後就根據 Makefile 文件中,每一個目標的前置條件和執行命令來構建對應的目標(一般爲文件)。例如:make clean && make result.txt
上述命令先執行了 clean 僞目標將原有的結果文件刪除,而後再構建新的 result.txt 文件。
2. Makefile 文件結構
由一系列的規則(rules)構成,每條規則的形式以下:
<target>: <prerequisites>
[tab] <commands>
target:通常狀況下爲文件名,爲該條規則想要生成的目標文件。也能夠爲僞目標用來執行對應的命令,如刪除現有的某個文件。
prerequisites:前置條件一般是一組文件名,它指定了「目標」是否從新構建的判斷標準:只要有一個前置文件不存在,或者有過更新(前置文件的last-modification時間戳比目標的時間戳新),「目標」就須要從新構建。
commands:爲構建文件所須要執行的具體方法,命令前須要有一個 Tab 縮進。詳細介紹見:http://www.ruanyifeng.com/blog/2015/02/make.html
28. echo $?
顯示最近一次操做是否成功。0表明成功,非0爲不成功。
29. 管道符 |
使用管道符 | 將兩個命令隔開,管道符左邊命令的輸出就會做爲管道符右邊命令的輸入。連續使用管道意味着第一個命令的輸出會做爲第二個命令的輸入,第二個命令的輸出又會做爲第三個命令的輸入,依此類推。
30. grep 命令
grep 命令用於文本搜索,支持正則表達式搜索,並將匹配的行打印出來。經常使用管道符配合使用。
用法:grep match_pattern file_name 就能夠實如今文件中每行搜索 match_pattern 字符串
grep -E "[1-9]+" -E 選項用於正則表達式搜索
grep -o -E "[a-z]+\." 選項 -o 只輸出文件中匹配到的部分
所以若是統計一個文件中出現特定字符串的個數,可使用 grep -o objstr filename | wc -l
詳情見:http://man.linuxde.net/grep
1. 字符串條件的或邏輯
使用 | 符號來完成
grep "hope\|test" filename 查找包含"hope"或"test"的行,| 前須要使用轉置符
2. 與邏輯
使用管道運算符依次過濾
grep "hope" filename | grep "test" 查找即包含 "hope" 又包含 "test" 的行
31. ps 命令:用於查看進程
1. ps aux | less
a 選項:顯示現行終端機下的全部程序,包括其餘用戶的程序
u 選項:顯示啓動這個進程的用戶和時間
x 選項:顯示全部程序,不以終端機做區分
管道符 | less 命令使相似於文件的形式查看結果,less 命令相似於 more
2. pgrep python
pgrep 命令能查找對應條件的進程並返回 id
3. pgrep -u root sshd
查找進程名爲 sshd,全部者爲 root 的進程
4. ps aux | grep vim
通常用這條命令來查找對應進程。
32. kill 命令:用來刪除執行中的程序和做業
kill 可將指定的信息送至程序。預設的信息爲SIGTEM(15),可將指定程序終止。若仍沒法終止該程序,可以使用SIGKILL(9)信息嘗試強制刪除程序。只有第9種信號(SIGKILL)能無條件終止進程。
kill -s 9 3268(進程號)
選項 s 指定要發出的信息
選項 l 列出對應的信息名稱,若是沒有參數則列出全部的信息名稱
33. Shell 語言
Shell 是一種用C語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶經過這個界面訪問操做系統內核的服務。
Shell 腳本 (shell script) 是用 shell 編寫的腳本程序,其編寫須要一個文本編輯器和一個能解釋執行的腳本解釋器就能夠了。Linux 的 Shell 種類衆多:
1. Bourne Shell(/usr/bin/sh或/bin/sh)
2. Bourne Again Shell(/bin/bash)爲咱們經常使用的 Shell,也是大多數 Linux 系統默認的 Shell。
Shell 腳本以 #!/bin/bash 開頭,#! 是一個約定的標記,它告訴系統這個腳本須要用什麼解釋器來執行,即哪種 Shell。
執行 Shell 腳本的方法:
1. 做爲可執行程序
chmod +x ./test.sh #使具備執行權限 ./test.sh #執行腳本
注意必定要寫成 ./test.sh 的形式來執行,不能直接寫 test.sh,運行其它二進制的程序也同樣,直接寫 test.sh,linux 系統會去 PATH 裏尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 裏,你的當前目錄一般不在 PATH 裏,因此寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。
2. 這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:
/bin/sh test.sh /bin/php test.php
3. 命令替換字符 `
`command` 使 ` 引入的命令執行結果能賦給一個變量
34. 比較符號的含義
EQ 就是 EQUAL等於
NQ 就是 NOT EQUAL不等於
GT 就是 GREATER THAN大於
LT 就是 LESS THAN小於
GE 就是 GREATER THAN OR EQUAL 大於等於
LE 就是 LESS THAN OR EQUAL 小於等於
35. 在指定目錄下查找文件
find path -name "test" -type d
能夠在 path 包含的目錄下查找名爲 test 的指定類型的文件
36. netstat 命令
用於查看系統中網絡的狀態信息
-l 打印監聽端口
-t 打印使用 TCP 傳輸協議的端口
-u 打印使用 UDP 傳輸協議的端口
-n 將主機名轉換爲 ip 地址的形式顯示(numeric)
例如:netstat -ltn 打印處於監聽狀態使用 TCP 傳輸協議的端口信息
37. lsof 命令
用於查看進程打開的文件,打開文件的進程,佔用的端口號。
-i 按照條件打印
例如:lsof -i :9001 查看佔用9001端口的進程號,配合 kill -9 進程號 能夠釋放被佔用的端口。
38. nc/netcat 命令
用於設置路由器
concatnate files and print on the standard output
nc -lp 端口號 能夠用來監聽端口
Server1:nc -lp 1234 Server2:nc 192.168.228.222 1234
以上命令能夠實現兩臺主機間簡單聊天
39. Git 命令
Git 是最流行的分佈式版本控制系統。集中式版本控制系統的特色是版本庫是存放在中央服務器的,每一個人進行修改時必須聯網從中央服務器取得當前的代碼,修改以後而後再上傳,這種方式受到網絡傳輸延遲的約束,表明是 SVN;分佈式版本控制系統的特色是每一個人的電腦上均可以獲取完整的代碼庫,這樣工做的時候就沒必要聯網了,將修改的部分直接推給合做的人便可。
1. 建立版本庫
版本庫又稱倉庫,英文名爲 repository,能夠簡單的理解爲一個目錄。Git 可以追蹤當前目錄下全部文本文件的改動,而不能追蹤圖片、視頻等二進制文件的改動。當前版本庫目錄下的 .git 目錄是用來跟蹤管理版本庫的,不要私自改動。
mkdir learngit #建立版本庫想存放的文件夾 cd learngit #進入對應的文件夾 git init #將當前文件夾初始化爲Git版本庫
在版本庫目錄下修改文件後,使用 git add 命令將修改的文件放入 git 的緩存區,而後使用 git commit -m "remarks" 命令來確認版本庫文件的修改和刪除(能夠同時確認當前全部的修改)-m 參數後爲本次提交的說明,方便從歷史記錄找到修改記錄。
2. 分支操做
1. 察看全部分支狀況
git branch
2. 建立分支
git branch <name>
3. 切換到某一分支
git checkout <name>
4. 建立+切換分支
git checkout -b <name>
5. 合併某分支到當前分支
git merge <name>
6. 刪除分支
git branch -d <name>
40. 終端、Vim、ls 風格設置
1. Vundle 是用來對 Vim 插件進行管理的軟件
1. 獲取方式
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.
2. 在 ~/.vimrc 中書寫配置文件
set nocompatible " be iMproved, required
filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim "指定插件安裝默認路徑 call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' "對其自己進行管理 " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' "爲插件列表,路徑爲安裝插件對應的 GitHub 路徑的用戶名和倉庫名,Vundle 會自動從 https://github.com/tpope/vim-fugitive 獲取插件代碼 " plugin from http://vim-scripts.org/vim/scripts.html " Plugin 'L9' " Git plugin not hosted on GitHub Plugin 'git://git.wincent.com/command-t.git' " git repos on your local machine (i.e. when working on your own plugin) Plugin 'file:///home/gmarik/path/to/plugin' " The sparkup vim script is in a subdirectory of this repo called vim. " Pass the path to set the runtimepath properly. Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " Install L9 and avoid a Naming conflict if you've already installed a " different version somewhere else. " Plugin 'ascenator/L9', {'name': 'newL9'} " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line
3. 插件安裝
打開 vim ,命令行輸入 :PluginInstall 便可完成全部插件的自動下載安裝
4. 插件卸載
在 ~/.vimrc 文件中刪除該插件的配置語句,而後使用 vim 命令行 :PluginClean 完成默認安裝目錄下對應插件的卸載
2. 終端和 Vim 的 Solarized 風格配置
建議 Mac 使用 iTerm2,自帶的 Terminal 終端和 Vim 的顏色之間老是會出現干擾
1. 終端在官網上下載對應的 Solarized 風格文件,雙擊便可引入。
2. Vim 使用上述 Vundle 工具能夠直接進行下載,完成後在 ~/.vimrc 中對應配置便可:
syntax enable set background=dark colorscheme solarized
3. ls 顏色設置
在 ~/.bash_profile 中設置 LS_COLORS 以下:
export LS_COLORS='no=00:fi=00:di=01;33:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;35:*.cmd=01;35:*.exe=01;35:*.com=01;35:*.btm=01;35:*.bat=01;35:*.sh=01;35:*.csh=01;35:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:'
用冒號分離,字母表明文件類型,分號前面的數字表明效果列表,後面的數字表示顏色。
在 ~/.bash_profile 加上 alias 命令:alias ls='ls -G' (Mac) 在 Linux 上爲 alias ls='ls --color=auto' 。便可在每次登陸時進行命令別名的替換。
41. 使用 SecureCRT 能夠完成服務器和本地之間文件傳輸
1. sz 命令
send 服務器向本地發送文件,參數爲發送的文件名
2. rz 命令
receive 服務器接收文件
42. mkdir -p dirName
-p 選項可用來肯定參數目錄是否存在,若是不存在則新建對應的目錄
43. touch
touch 命令能夠用在在當前目錄下新建文件,touch filename 能夠新建 filename 文件
44. Linux 運算符
1. 文件測試運算符
操做符 | 說明 | 舉例 |
---|---|---|
-b file | 檢測文件是不是塊設備文件,若是是,則返回 true。 | [ -b $file ] 返回 false。 |
-c file | 檢測文件是不是字符設備文件,若是是,則返回 true。 | [ -c $file ] 返回 false。 |
-d file | 檢測文件是不是目錄,若是是,則返回 true。 | [ -d $file ] 返回 false。 |
-f file | 檢測文件是不是普通文件(既不是目錄,也不是設備文件),若是是,則返回 true。 | [ -f $file ] 返回 true。 |
-g file | 檢測文件是否設置了 SGID 位,若是是,則返回 true。 | [ -g $file ] 返回 false。 |
-k file | 檢測文件是否設置了粘着位(Sticky Bit),若是是,則返回 true。 | [ -k $file ] 返回 false。 |
-p file | 檢測文件是不是有名管道,若是是,則返回 true。 | [ -p $file ] 返回 false。 |
-u file | 檢測文件是否設置了 SUID 位,若是是,則返回 true。 | [ -u $file ] 返回 false。 |
-r file | 檢測文件是否可讀,若是是,則返回 true。 | [ -r $file ] 返回 true。 |
-w file | 檢測文件是否可寫,若是是,則返回 true。 | [ -w $file ] 返回 true。 |
-x file | 檢測文件是否可執行,若是是,則返回 true。 | [ -x $file ] 返回 true。 |
-s file | 檢測文件是否爲空(文件大小是否大於0),不爲空返回 true。 | [ -s $file ] 返回 true。 |
-e file | 檢測文件(包括目錄)是否存在,若是是,則返回 true。 | [ -e $file ] 返回 true。 |
45. 清空某個文件
: > filename #便可清空 filename 文件,:是佔位符,不產生任何輸出
46. date 時間輸出命令
date -d "1 day ago" +"%Y-%m-%d"
-d 選項用於輸出字符串指定的時間, +"%Y-%m-%d" 按照指定的格式輸出
47. xargs 參數傳遞命令
xargs 命令用於從管道給其餘命令傳遞參數,若是沒有其餘命令,則默認爲 echo 命令。xargs 能夠將管道傳遞給 xargs 的包含空白和換行的內容轉換爲僅由空格分隔的字符,所以能夠很方便的給命令傳遞參數。
好比:find ./ -name "*.jpg" | xargs rm -rf 能夠將當前目錄下全部以 .jpg 爲後綴的文件刪除
48. wget 命令
wget 的方式能夠遞歸地從 http 連接上下載文件:
wget -rc http://dm.postech.ac.kr/~cartopy/ConvMF/data/
49. du 命令
du -h 以人類便於理解的方式察看文件大小
50. Shebang(Hashbang)
在Unix術語中,井號一般被稱爲 sharp、hash或mesh,歎號通常被稱爲 bang。所以將 #!序列稱爲 Shebang,其出如今文本文件的第一行的前兩個字符。 在文件中存在 Shebang 的狀況下,類 Unix 操做系統的程序載入器會分析 Shebang 後的內容,將這些內容做爲解釋器指令,並調用該指令,並將載有 Shebang 的文件路徑做爲該解釋器的參數。
51. tail 命令
tail 命令用於顯示文件的尾部內容,默認顯示末尾10行。
tail -n 20 file #-n參數可指定顯示行數
tail +20 file #數字前帶+號表示從文件的第 n 行開始顯示一直到文件結尾
52. 複製 SSH 會話,避免屢次輸入密碼
在準備登錄到遠程服務器的終端機上配置 SSH,在 ~/.ssh/config 文件中加入如下內容:
Host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p
53. 上傳 下載文件
rz -bey
sz filename
54. echo -e 激活轉義字符
export 輸出環境變量
使用 echo 命令配合管道符能夠實現對文件的自測。