雖然平時大部分工作都是和Java相關的開發, 但是每天都會接觸Linux系統, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行環境中. 自己記憶力不好, 很多有用的Linux命令不能很好的記憶, 現在逐漸總結一下, 以便后續查看.
基本操作
Linux關機,重啟
# 關機
shutdown -h now# 重啟
shutdown -r now
查看系統,CPU信息
# 查看系統內核信息
uname -a# 查看系統內核版本
cat /proc/version# 查看當前用戶環境變量
envcat /proc/cpuinfo# 查看有幾個邏輯cpu, 包括cpu型號
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c# 查看有幾顆cpu,每顆分別是幾核
cat /proc/cpuinfo | grep physical | uniq -c# 查看當前CPU運行在32bit還是64bit模式下, 如果是運行在32bit下也不代表CPU不支持64bit
getconf LONG_BIT# 結果大于0, 說明支持64bit計算. lm指long mode, 支持lm則是64bit
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
建立軟連接
ln -s /usr/local/jdk1.8/ jdk
rpm相關
# 查看是否通過rpm安裝了該軟件
rpm -qa | grep 軟件名
sshkey
# 創建sshkey
ssh-keygen -t rsa -C your_email@example.com#id_rsa.pub 的內容拷貝到要控制的服務器的 home/username/.ssh/authorized_keys 中,如果沒有則新建(.ssh權限為700, authorized_keys權限為600)
命令重命名
# 在各個用戶的.bash_profile中添加重命名配置
alias ll='ls -alF'
同步服務器時間
sudo ntpdate -u ntp.api.bz
后臺運行命令
# 后臺運行,并且有nohup.out輸出
nohup xxx &# 后臺運行, 不輸出任何日志
nohup xxx > /dev/null &# 后臺運行, 并將錯誤信息做標準輸出到日志中
nohup xxx >out.log 2>&1 &
強制活動用戶退出
# 命令來完成強制活動用戶退出.其中TTY表示終端名稱
pkill -kill -t [TTY]
查看命令路徑
which <命令>
查看進程所有打開最大fd數
ulimit -n
配置dns
vim /etc/resolv.conf
nslookup,查看域名路由表
nslookup google.com
last, 最近登錄信息列表
# 最近登錄的5個賬號
last -n 5
設置固定ip
ifconfig em1 192.168.5.177 netmask 255.255.255.0
查看進程內加載的環境變量
# 也可以去 cd /proc 目錄下, 查看進程內存中加載的東西
ps eww -p XXXXX(進程號)
查看進程樹找到服務器進程
ps auwxf
查看進程啟動路徑
cd /proc/xxx(進程號)
ls -all
# cwd對應的是啟動路徑
添加用戶, 配置sudo權限
# 新增用戶
useradd 用戶名
passwd 用戶名#增加sudo權限
vim /etc/sudoers
# 修改文件里面的
# root ALL=(ALL) ALL
# 用戶名 ALL=(ALL) ALL
強制關閉進程名包含xxx的所有進程
ps aux|grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
磁盤,文件,目錄相關操作
vim操作
#normal模式下 g表示全局, x表示查找的內容, y表示替換后的內容
:%s/x/y/g
#normal模式下
0 # 光標移到行首(數字0)
$ # 光標移至行尾
shift + g # 跳到文件最后
gg # 跳到文件頭
# 顯示行號
:set nu
# 去除行號
:set nonu
# 檢索
/xxx(檢索內容) # 從頭檢索, 按n查找下一個
?xxx(檢索內容) # 從尾部檢索
打開只讀文件,修改后需要保存時(不用切換用戶即可保存的方式)
# 在normal模式下
:w !sudo tee %
查看磁盤, 文件目錄基本信息
# 查看磁盤掛載情況
mount# 查看磁盤分區信息
df# 查看目錄及子目錄大小
du -H -h# 查看當前目錄下各個文件, 文件夾占了多少空間, 不會遞歸
du -sh *