【轉】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/Linux uname -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命令
http://www.rzrgm.cn/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

浙公網安備 33010602011771號