作為技術人員,Linux 系統可以說是我們使用最多的操作系統,但我們可能並不是很了解它。在這里我將自己日常遇到的 Linux 使用技巧記錄下來,方便以后查詢使用。
常用命令
- 統計 IP 連接數
$ netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10 |
操作系統
查看系統版本
在安裝環境或者軟件時,我們常常需要知道所在操作系統的版本信息,這里列舉幾種查看內核和發行版本信息的方法,更多見 查看 Linux 系統版本。
內核版本
- uname命令
$ uname -a |
- /proc/version文件
$ cat /proc/version |
發行版本
- lsb_release命令
$ lsb_release -a |
- /etc/issue文件
$ cat /etc/redhat-release |
啟用Swap分區
在遇到內存容量瓶頸時,我們就可以嘗試啟用 Swap 分區。使用文件(還可以磁盤分區)作為 Swap 分區時,具體步驟如下:
1、 創建 Swap 分區的文件
# bs*count為文件大小 |
2、 格式化為交換分區文件
$ mkswap /root/swapfile |
3、 啟用交換分區
$ swapon /root/swapfile |
4、 開機自啟用 Swap 分區
在/etc/fstab文件中添加如下內容:
/root/swapfile swap swap defaults 0 0 |
最后,查看系統的 Swap 分區信息:
$ free -h |
免密碼使用sudo
以下兩種需求:
- 開發中經常會使用到 sudo 命令,為了避免頻繁輸入密碼的麻煩;
- 腳本中使用到 sudo 命令,怎么輸入密碼?;
這些,都可以通過將用戶加入 sudoers 來解決,當然情況 2 也可以使用echo "passwd"|sudo -S cmd,從標准輸入讀取密碼。
sudoers 配置文件為/etc/sudoers,sudo 命令操作權限配置內容如下:
# 授權用戶/組 主機名=(允許轉換至的用戶) NOPASSWD:命令動作 |
授權格式 說明:
- 第一個字段為授權用戶或組,例如 root;
- 第二個字段為來源,() 中為允許轉換至的用戶,= 左邊為主機名;
- 第三個字段為命令動作,多個命令以
,號分割;
因此,我的用戶為fhb,授權步驟如下:
# 1. 執行visudo命令,操作的文件就是/etc/sudoers |
然后,使用sudo service ssh restart命令測試 OK。
Yum更新排除指定軟件
有時候我們使用 yum 安裝的軟件,由於配置向后兼容性等問題,我們並不希望這些軟件(filebeat 和 logstash)在使用update時,被不經意間被自動更新。這時,可以使用如下方法解決:
- 臨時
通過-x或--exclude參數指定需要排除的包名稱,多個包名稱使用空格分隔。例如:
# --exclude同樣 |
- 永久
在 yum 配置文件/etc/yum.conf中,追加exclude配置項。例如:
# 需排序的包名稱 |
再次使用yum update命令,就不會自動更新指定的軟件包了。
$ yum update |
ssh
強制踢出其他登錄用戶
在某些情況下,需要強制踢出系統其他登錄用戶,比如遇到非法用戶登錄。查詢當前登陸用戶:
# 當前用戶 |
剔除非法登陸用戶:
$ kill -9 4755 |
更多詳細說明,見 Linux 強制踢出其他登錄用戶。
建立隧道實現端口轉發
在可以使用 ssh 情況下,為了能進行線上調試,我們可以使用 ssh 隧道建立端口映射。
例如,線上遠程目標機器 ip:10.1.1.123、端口:3303;映射到本地 33031 端口。命令如下:
# [主機ip]:[端口]:[主機ip]:[遠程目標機器端口] [遠程目標機器ip] |
該命令操作后,只能通過
127.0.0.1訪問。若想全網段訪問,需要將第一個主機 ip 更改為0.0.0.0,同時需要在/etc/ssh/sshd_config增加GatewayPorts yes的配置項。
常用工具
Strace調試
在調試程序時,我們會遇到一些系統層面的錯誤問題,一般都不易發現,這時可以使用 strace 來跟蹤系統調用的過程,方便快速定位和解決問題。
$ strace crontab.sh |
更多詳細說明,見 錯誤調試。
彩色的命令行
在腳本或者代碼中,有時候需要在控制終端輸出醒目的提示信息,以便引起我們的關注。其實,在 Linux 終端下很容易就能搞定,如下:

實現的源代碼,內容為:
echo -e "\033[1;30m Hello World. \033[0m [高亮]" |
\033是 Esc 鍵對應的 ASCII 碼(27=/033=0x1B),表示后面的內容具有特殊含義,類似表述有^[以及/e,而\033[0m表示清除格式控制。
輸出格式的規則,可表示為\033[特殊格式;前景色;背景色m,主要分為 顏色 和 格式 兩類規則。
- 顏色
主要包括 前景色 和 背景色,前景色范圍為30~39,背景色范圍為40~49(前景色對應顏色值 +10)。前景色顏色代碼表如下:
紅 = “\033[31m”
綠 = “\033[32m”
黃 = “\033[33m”
藍 = “\033[34m”
紫 = “\033[35m”
青 = “\033[36m”
白 = “\033[37m”
- 格式
| 表達式 | 格式 |
|---|---|
| \033[0m | 關閉所有屬性 |
| \033[1m | 高亮度 |
| \033[4m | 下划線 |
| \033[5m | 閃爍 |
| \033[7m | 反顯 |
| \033[8m | 消隱 |
轉載:樊浩柏科學院
