目前已接觸的linux常用命令
注意:本文中的\為轉義符,用於不被md語法轉換格式
Git:
git安裝後,新建一個空資料夾,用於初始化及作為存放程式碼的倉庫
mkdir 資料夾名:在當前目錄下新建一個資料夾;
mkdir /路徑/資料夾名:在指定路徑下新建一個資料夾;
git init:初始化當前資料夾為git倉庫;
git remote add origin 網址:新增遠端倉庫;
git pull origin master:從遠端倉庫的master分支上拉取更新;
git pull origin develop:develop:表示從遠端的develop分支拉取到本地develop分支上,如果本地沒有分支,不加:develop是可以的;
vi或者vim進入某檔案的編輯
shift+G(大寫的g):跳至最後一行;
ctrl+f:往前看;
i或者a或者o:進入插入模式;
esc:退出插入模式(必須退出插入模式才能退出編輯);
:q:退出編輯;
w:儲存並退出編輯;
wq:強制儲存並退出編輯;
q!:不儲存變更強制退出編輯;
路徑切換cd:
cd 進入使用者主目錄;
cd ~ 進入使用者主目錄;
cd - 返回進入此目錄之前所在的目錄;
cd .. 返回上級目錄(若當前目錄為“/“,則執行完後還在“/";其中".."為上級目錄的意思);
cd ../.. 返回上兩級目錄;cd !$ 把上個命令的引數作為cd引數使用;
pwd顯示當前目錄的完整路徑;
cd過程中按tab可自動補全唯一檔案(或資料夾)的完整名稱,如code,輸如cd ./co按tab可補全為cd ./code;
其餘檔案操作命令
tail -f 檔名(或者/路徑/檔名):動態訪問,多用於檢視正在列印的日誌;
tail -f xxxx.out -n101:以一次性檢視101行的形式動態訪問;
ctrl+c:退出當前命令(比如正在使用tail -f動態檢視日誌,使用這個即可退出);
ll:展示當前目錄下的所有檔案及檔案詳情(不展示隱藏檔案及隱藏資料夾),它實際上是ls -l的一個別名。Ubuntu預設不支援命令ll,必須用 ls -l,這樣使用起來不是很方便;
複製cp 目標檔名 目標完整路徑:
cp -r 會把所有source當作普通檔案(regular檔案);
而cp -R對特殊檔案(管道檔案,塊裝置檔案,字元裝置檔案)會進行建立操作,而不是拷貝。
cp -a該選項通常在拷貝目錄時使用(cp -p也行)。它保留連結、檔案屬性,並遞迴地拷貝目錄,其作用等於dpR選項的組合。
詳細如下:
cp (複製檔案或目錄)
cp [-adfilprsu] 來源檔(source) 目的檔(destination)
cp [options] source1 source2 source3 …. directory
引數:
-a :相當於 -pdr 的意思;
-d :若來原始檔為連結檔案的屬性(link file),則複製連結檔案屬性而非檔案本身;
-f :為強制 (force) 的意思,若有重複或其它疑問時,不會詢問使用者,而是強制複製;
-i :若目的檔(destination)已經存在時,在覆蓋時會先詢問是否真的執行覆蓋!
-l :進行硬式連結 (hard link) 的連結檔建立,而非複製檔案本身;
-p :連同檔案的屬性一起復制過去,而非使用預設屬性;
-r :遞迴持續複製,用於目錄的複製行為;
-s :複製成為符號連結檔案 (symbolic link),亦即『快捷方式』檔案;
-u :若 destination 比 source 舊才更新 destination
刪除rm -rf:
rm命令可以刪除一個目錄中的一個或多個檔案或目錄,也可以將某個目錄及其下屬的所有檔案及其子目錄均刪除掉
指令碼或者命令執行
sh 指令碼(或者/路徑/指令碼名):執行指令碼,只在當前shell視窗中執行,其中的變數不會載入到環境中,如果執行過程中斷開SSH連線會終止執行,而且用sh執行指令碼時,是會將環境中的變數載入進來的;
source(或者一個點.) 指令碼(或者/路徑/指令碼名):執行指令碼會把指令碼檔案中的變數定義載入到環境中(所以一般就用來生效一下環境變數),使用echo $變數名 甚至可以列印變數值,不太好;
./xxx.sh 指令碼(或者/路徑/指令碼名):也可以執行指令碼,與sh幾乎無差別
nohup 命令(或者指令碼):nohup是no hang up的縮寫,不掛斷的執行,和使用者終端沒有關係,例如我們斷開SSH連線都不會影響它的執行;
&:是指在後臺執行,但當用戶退出(掛起)的時候,命令自動也跟著退出;
nohup COMMAND & 這樣就能使命令永久的在後臺執行(除非自己殺程序、或者執行停止命令、或者機器斷電、機器故障、機器系統崩潰、機器記憶體溢位);
另外,sh執行指令碼可以沒有執行標誌,可以不用在指令碼第一行寫上#/bin/sh,使用./xxx.sh執行則是呼叫指令碼第一行指定的shell去解釋執行,預設為sh,就是bsh;
系統級
uname -a可以顯示裝置的系統資訊
ifconfig可以顯示閘道器相關資訊(一般看eth0的)
df -h可以顯示磁碟空間相關資訊
防火牆:
防火牆狀態:systemctl status firewalld.service
Active: inactive (dead)/active(running)
關閉firewall:systemctl stop firewalld.service
重啟:systemctl restart firewalld.service
啟動:systemctl start firewalld.service
禁止firewall開機啟動:systemctl disable firewalld.service
設定開機啟用:systemctl enable firewalld.service
檢視服務是否開機啟動:systemctl is-enabled firewalld.service;echo
檢視已啟動的服務列表:systemctl list-unit-files|grep enabled
檢視已經開放的埠:firewall-cmd --list-ports
開啟埠:firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含義:
–zone #作用域
–add-port=80/tcp #新增埠,格式為:埠/通訊協議
–permanent #永久生效,沒有此引數重啟後失效
ps -ef|grep 程序名稱:可以檢視帶有指定程序名的程序資訊,如ps -ef|grep java
kill -9 程序號1 程序號2 程序號n:可配合上一條檢視程序的命令殺死指定程序號的程序
chmod options 檔名,授權命令,rwx,讀寫執行,r=4,w=2,x=1,快捷授予許可權為chmod 777 檔名,其中777=rwxrwxrwx,因為4+2+1=7,chmod u+x 檔名 表示給當前登陸的使用者授予執行許可權
tar -zxvf(或者-xvf) 檔名.tar.gz :用於解壓.tar.gz結尾的壓縮包,
tar -cvf 檔名.字尾 /路徑:用於將指定路徑(即資料夾)壓縮成指定字尾的壓縮包