【轉】linux那些事兒
Linux只是一個作業系統核心而已,而GNU提供了大量的自由軟體來豐富在其之上的各種應用程式。我們常說的linux實際是GNU/Linux,GNU是一個自由的作業系統。
絕大多數基於Linux核心的作業系統使用了大量的GNU軟體,包括了一個shell程式、工具、程式庫、編譯器及工具,還有許多其他程式,例如Emacs。
一、參考學習
https://www.runoob.com/linux/linux-command-manual.html
二、常用變數
1、特殊位置引數變數
$* 取當前shell的所有引數,將所有的命令列視為單個字串,相當於'$1$2'。
$@ 取當前shell的所有引數,保留引數裡的空白。
三、常用命令
1、檢視 Kernel、GCC 以及 RedHat 版本資訊
cat /proc/version Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017 uname -a Linux localhost.localdomain.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linuxuname -r 3.10.0-693.el7.x86_64 more /etc/system-release CentOS Linux release 7.4.1708 (Core) more /etc/redhat-release CentOS Linux release 7.4.1708 (Core) more /etc/centos-release CentOS Linux release 7.4.1708 (Core)
2、檢視作業系統的位數
getconf LONG_BIT 64 getconf WORD_BIT 64 file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped
3、檢視 CPU 個數、核心數和執行緒數
# 檢視 CPU 的物理個數 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 1 # 檢視 CPU 的核心數量 grep 'core id' /proc/cpuinfo | sort -u | wc -l 2 # 檢視 CPU 的執行緒數量 grep 'processor' /proc/cpuinfo | sort -u | wc -l 4 # 檢視 CPU 的型號 dmidecode -s processor-version Intel(R) Core(TM) i3-4170 CPU @ 3.70GHz # 檢視 記憶體 方法 grep MemTotal /proc/meminfo MemTotal: 3750308 kB
4、知道22埠被哪個程序佔用
lsof -i :22 netstat -lnp|grep 7000
5、顯示http response頭資訊
curl -I http://127.0.0.1:8182/webhook/comment
6、把檔案內容輸出到本地,並保留檔名,可以理解為直接把檔案下載到本地。
curl -O http://127.0.0.1:7780/object/test02
7、操作資料夾
mkdir folderName 建立資料夾 rm -r folderName 刪除資料夾 rm -rf folderName 強制刪除資料夾 mv sfolderName dfolderName 重新命名資料夾
8、操作檔案
touch filename 比如touch index.js 建立一個空的js檔案。 find path -name filename 比如find components -name "*.js" 查詢指定型別的檔案。 ls 檢視有哪些檔案 ll 檢視檔案的詳細資訊
head -n filename
檢視一個檔案的前n行,如果不指定n,則預設顯示前n行。
tail -f storage/logs/xf-web-2015-11-30.log 檢視文件內容,預設顯示最後10行,比如檢視伺服器檔案日誌 vim /root/.pm2/logs/monitorApp-out.log 文字檢視和編輯 cat /root/.pm2/logs/monitorApp-out.log 文字檢視 cp oldfile newfile 複製檔案 cp -r old/ new/ 不是把old目錄裡面的檔案拷貝到new目錄,而是把old直接拷貝到new下面。 cp -r ../teamb/xf-web . 不是把old目錄裡面的檔案拷貝到new目錄,而是把old直接拷貝到new下面。 :q git log之後要退出(不儲存),並回到命令列。 :q! 強制退出,放棄修改。 :wq 儲存檔案後退出。 :wq! 強制儲存退出。
9、vim模式
i 進入編輯模式 / 查詢關鍵字 : 跳到某行 esc 退出編輯模式 pwd 檢視當前路徑 > 表示覆蓋原檔案內容(檔案的日期也會自動更新) >> 表示追加內容(會另起一行,檔案的日期也會自動更新) cat /etc/hosts > hosts.log 執行命令cat /etc/hosts,將其返回結果儲存到hosts.log中。 & 表示任務在後臺執行,如要在後臺執行redis-server,則有 redis-server & && 表示前一條命令執行成功時,才執行後一條命令,如echo '1‘ && echo '2' | 表示管道,上一條命令的輸出,作為下一條命令引數,如 echo 'yes' | wc -l || 表示上一條命令執行失敗後,才執行下一條命令,如 cat nofile || echo "fail" . 指當前目錄 ./ 可以用來執行當前目錄下的可執行檔案
10、其他操作
telnet 127.0.0.1 11211 telnet連線 flush_all 清空所有鍵值,flush並不會將items刪除,只是將所有的items標記為expired,因此這時memcache依舊佔用所有記憶體。
11、make命令
https://www.cnblogs.com/worldleader131/p/make-command-project.html
12、export命令
https://www.runoob.com/linux/linux-comm-export.html
# 列出環境變數 export -p # 定義環境變數,列出分支,查詢當前分支,匹配至少有一個.的 export branch=`git branch | grep \* | grep -Eo ' .+'`
# 使用環境變數 $$branch
13、xargs命令
https://www.runoob.com/linux/linux-comm-xargs.html
14、grep命令
查詢字串。
git log develop.. --pretty=format:%B | grep -vE '^\s*$$' | cat
https://www.runoob.com/linux/linux-comm-grep.html
15、echo命令
echo -e "\033[字背景顏色;字型顏色m字串\033[0m"
echo -e "\e[1;31mThis is red text\e[0m"
\e[1;31m 將顏色設定為紅色
\e[0m 將顏色重新置回
背景顏色碼:重置=0,黑色=40,紅色=41,綠色=42,黃色=43,藍色=44,洋紅=45,青色=46,白色=47
文字顏色碼:重置=0,黑色=30,紅色=31,綠色=32,黃色=33,藍色=34,洋紅=35,青色=36,白色=37
四、正則表示式
假設當前專案分支為feature/A: grep \* 對*進行轉義,查詢存在*的分支,輸出* feature/A grep -Eo ' .+' 啟用正則,並按該規則去查詢,輸出feature/A grep -vE '^\s*$$' test.log 或者 grep -vE '^$' test.log 或者 grep -vE '^\s$' test.log 查詢沒有空格,空行的行。反向匹配,過濾掉空行,空格。比如輸出feat: 這是一個提交。
五、安裝node
1、建立一個資料夾命名node
wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz tar xvf node-v12.13.0-linux-x64.tar.xz cd /node/node-v12.13.0-linux-x64/bin
2、建立軟連結,以便全域性使用
ln -s /node/node-v12.13.0-linux-x64/bin/npm /usr/bin/npm ln -s /node/node-v12.13.0-linux-x64/bin/node /usr/bin/node node -v npm -v
3、如果無法建立,先在/usr/bin/目錄下刪除已存在的
rm -rf node
rm -rf npm
六、問題與方案
1、不識別pm2
pm2: command not found
建立linux下的軟連線,在linux上的設定軟連線相當於windows下的配製環境變數
ln -s /node/node-v12.13.0-linux-x64/bin/pm2 /usr/bin/pm2