Linux經常使用命令—基礎篇

工做了幾年,常常會使用到一些Linux命令,時間長了也會忘。簡單整理了一下,也能加深記憶。如下均爲我的平時使用到的一些基本命令,若有紕漏,歡迎隨時指正。java

後面打算把Linux服務器性能監控的一些經常使用命令整理分享,歡迎你們關注。 原文連接mysql

1.文件相關命令

#顯示隱藏文件
ls -la

#易讀方式顯示文件大小
ls -lh

#按最後修改時間顯示
ls -lt

#創建軟連接
ln -s /folder /folder_via_soft_link

#重命名文件,搜索帶2015的文件,重命名爲2017
rename 2015 2017 *2015*

#比較兩個文件
diff -w file1.txt file2.txt

#一次查看多個文件內容,先file1,再file2
cat file1 file2

#-n 加上行號
cat -n file

#刪除文件前先確認,-i,確認
rm -i filename

#拷貝文件1到文件2,保持文件的權限、屬組、時間戳
cp -p file1 file2

#刪除非空文件夾
rm -rf *2014*

#刪除文件後空間不釋放,lsof(list open files)
lsof | grep delete

#刪除軟連接
rm -rf /target

#建立目錄
mkdir -p /dir1/dir2/dir3
複製代碼

2.du命令

#查詢文件夾大小
AIX:du -sg dirname
Linux: du -sh dirname

#按照文件大小,從大到小排序,按照大小排序的話不要加h參數
du -s *|sort -nr|head
複製代碼

3.壓縮(tar/gzip)

#壓縮test文件夾
tar cvf test.tar test/

#查看tar包內容
tar tvf test.tar

#gzip壓縮成gz文件
gzip filename

#解壓gz
gzip -d file.gz

#顯示壓縮ratio
gzip -l file.gz
複製代碼

4.搜索(find/grep)

#不區分大小寫
find ./ -iname *keywords*

#找到文件,執行命令
find ./ -iname *keywords* -exec md5sum {} ;

#刪除建立時間大於30天的文件
find ./ -name *keywords* -type f -ctime +30 -exec rm -fr {} ;

#使用xargs解決文件列表過長
find /dirname/ -name "*201410*" |xargs -n 100 rm {} ;

#查詢大文件,單位Kb
find ./ -size +500 -exec ls -lh {} ;

#文本中查找,不區分大小寫
grep -i "keywords" filename

#在文件夾中遞歸查找匹配關鍵字的
grep -r "keywords" *

#grep中實現or操做:尋找mysql與java進程,打印出pid與最後一列
ps -ef|grep 'mysql\|java'|awk '{print $2, $NF}'
複製代碼

5.sed

#sed = stream editor
#-n 只打印匹配的行
sed -n '2p' filename #第2行
sed -n "1000,1200p" filename #1000~1200行

#打印匹配字段的行
sed -n '/kw1/p' filename

#截取兩個字符串之間的內容
sed -n '/kw1/,/kw2/p' filename

#example:編輯bin文件,將字段替換生成新文件
cat  XX_1030.bin | sed -e 's/20141030/20141031/g' > xx_1031.bin
複製代碼

6.awk

#格式化輸出
awk '{print $1,$4}' test.txt #顯示文件一、4列

#與ps命令結合
ps -ef|grep java|awk '{print $1,$2}'

#打印出最後一列,使用用$NF
ps -ef|grep 'mysql\|java'|awk '{print $2, $NF}'

#kill掉java進程
kill -9 `ps -ef|grep java |awk '{print $2}'`

#正則匹配:輸出第二列包含you的行,並打印第一列,第二列;~模式開始,//內是模式
awk '$2 ~ /you/ {print $1,$2}' test.txt

#計算文件大小
ls -l *.txt |awk '{sum+=$5} END {print sum}'
df -m|awk '{sum+=$2} END {print sum}'

#參數-F 按照後面字段進行分割
cat /etc/passwd |awk -F ':' '{print $1}'
cat /etc/passwd |awk -F ':' '{print $1" "$6}'
複製代碼

7.vim

vim 編輯器命令實在太豐富,這裏簡單列舉幾個linux

#打開文件跳到第一個匹配的行
vim +/search_pattern filename

#只讀模式打開
vim -R filename

#替換全部匹配文本,命令模式
%s/old/new/g
複製代碼

8.網絡配置與抓包

#查看全部的網絡接口和狀態
ifconfig -a

#使用up、down啓動或者中止某個接口
ifconfig eth1 down

#查看網絡配置
ifconfig |egrep "HWaddr|inet addr"

#查看路由表
route

#向DNS服務器查詢域名,默認爲UDP,可經過輸入set vc改成TCP形式(性能影響較大)
nslookup

#ping,發送5個數據包
ping -c 5 ip

#查詢端口狀態
netstat -an|grep 3306

#域名解析
配置文件:/etc/resolv.conf
加入dns服務器
nameserver 192.168.2.206

#查看帶寬,root用戶
ethtool eth1 
Settings for eth1:
	Speed: 10000Mb/s
	
#每1s刷新監控eth1網卡上的流量狀況
watch -n 1 "ifconfig eth1|grep bytes"

#tcpdump抓包,文件可用wireshark分析
#-i 網卡;-s size
#解決:Package size limited during capture,加參數 -s0 能夠抓取任意長度的數據包
tcpdump host 192.168.2.206 -s0 -w /tmp/net.pcap #抓取全部與hostip之間的網絡包,保存爲文件

#下載文件到本地
wget --ftp-user=administrator --ftp-password=000000 ftp://192.168.2.206/source/app.out
複製代碼

9.查看操做系統版本/CPU/內存

#Linxu查看版本、系統信息
uname -a
cat /proc/version
lsb_release -a

#suse版本查詢
more /etc/SuSE-release

#AIX查詢配置
prtconf

#cpu查詢
cat /proc/cpuinfo

#查看虛擬CPU分配(AIX)
lparstat -i

#內存,用MB顯示結果
free -m
cat /proc/meminfo
複製代碼

10.帳戶與權限

#更改密碼
passwd

#root更換其餘用戶密碼,或者建立新用戶
passwd username

#Linux解鎖用戶,AIX使用smitty便可
faillog -u username -r

#Linux新建用戶
groupadd -g gid groupname #創建用戶組,gid,組名
useradd -d /homedir -g gid -u uid -p #創建用戶 home 組 uid 輸入密碼

#ssh登錄
ssh -l username hostname

#用指定用戶執行命令,執行完返回原帳戶
su - user -c 'ls'

#查詢歷史命令
history n

#查看當前的環境變量
export

#查看和java有關的環境變量,-i通常都是ignore忽略大小寫的意思
export |grep -i JAVA

#查看特定用戶的進程
top -u mysql

#修改權限,—R遞歸修改子目錄
chown -R mysql /mysql
chgrp -R mysql /mysql
or:chown -R mysql:mysql *

#用戶profile相關
設置當前用戶的 .profiles 文件, 進而後 cat ~/.profile 入到 etc 目錄,
其實就是進入當前目錄的home目錄,而後ls -a  就有.profile 文件

#修改用戶home
Step1:修改對應的/etc/passwd
Step2:usermod -d /userhome username
複製代碼

11.關機與重啓

#關閉系統當即關機
shutdown -h now

#10分鐘後關機
shutdown -h +10

#重啓
shutdown -r now

#重啓期間強制進行系統檢查
shutdown -Fr now
複製代碼

12.rpm安裝

#安裝
rpm -ivh xxx.rpm

#更新
rpm -uvh xxx.rpm

#卸載
rmp -ev httpd

#編譯安裝
./configure	#檢查依賴,配置編譯項
make	#編譯
make install	#安裝
複製代碼

13.service

#查看服務狀態
service ssh status

#查看全部服務狀態,root權限
service --status-all

#啓動telnet服務
service xinetd restart

#啓動ftp服務
service vsftpd start

#nfs啓動(linux)
rcnfsserver status
rcnfsserver start
service nfs start

#linux設置共享目錄
編輯/etc/exports
showmount -e 192.168.2.206 #檢查server共享目錄
複製代碼

14.man

最重要的一個命令,要學會看官方手冊git

#whatis
whatis shutdown
shutdown (3p)        - shut down socket send and receive operations
shutdown (8)         - bring the system down
shutdown (2)         - shut down part of a full-duplex connection

#指定特定版本的manual
man 3p shutdown

#查看某個命令的位置
whereis ls

#查看某個命令的描述
whatis ls
複製代碼

15.JAVA環境變量配置

#修改 /etc/profile,全局生效
#修改用戶$HOME/.profile 對當前用戶生效

JAVA_BIN=/usr/jdk/jdk1.6.0_16/bin
export JAVA_BIN
JAVA_HOME=/usr/jdk/jdk1.6.0_16
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
. /etc/profile 生效
複製代碼

16.其它

#查看指定用戶的crontab
crontab -u root -l
Linux:5,10,15,20,25,30,35,40,45,50,55,0 * * * * /usr/sbin/sntp -P no -r 192.168.2.206
AIX:0,5,10,15,20,25,30,35,40,45,50,55 * * * *  /usr/sbin/ntpdate 192.168.2.206
複製代碼

相關文章
相關標籤/搜索