tail -f時時監控
一開啓內存最小位u原則,儘可能優化代碼
grep -v "" /etc/passwd 這樣行不行
怎麼清除last
nice調整進程運行級別
pkill是匹配關鍵字來殺死進程的
------------------------------------------------------------------------------
文本的操做基礎:
cat --文本的簡單查看命令,只能查看最後一屏的信息
cat -n /<path>/file --顯示行號
more --分頁查看文本內容
less --分頁查看,比more靈活
/關鍵字 能夠實現搜索的功能,按n配置下一個,N配置上一個
head --局部查看命令,查看文本的頭部
head /etc/passwd --10行
head -3 /etc/passwd --頭3行
tail --局部查看命令,查看文本的尾部
tail /etc/passwd --末10行
tail -3 /etc/passwd --末3行
tail -f /var/log/message --能夠看到最新的更新內容 (動態查看)
=============文件內容搜索===================
grep
#grep root /etc/passwd --在passwd過濾root關鍵字
#grep -i root /etc/passwd --忽略大小寫
#grep -n -i root /etc/passwd --忽略大小寫並輸入行號
#grep -v root /etc/passwd -v除了root這個關鍵字
# grep -v '^$' /etc/passwd ^$ 空行
# grep '^root' /etc/passwd ^root以root開頭
# grep 'bash$' /etc/passwd bash$以bash結尾
# head /tmp/passwd | grep -v '^$'
# grep -Rl "size_t" /usr/include/ 查找/usr/include哪些文件中含有size_t 關鍵字
# less /tmp/passwd | grep -v '^$' | grep -i -n root
1194 cat /tmp/passwd | grep -i -n '^root'
1195 cat /tmp/passwd | grep -i -n 'bash$'
# cat /etc/vsftpd/vsftpd.conf | grep -v '^#' | grep -v '^$'
===============================
linux信息蒐集命令:
uname
uname -r 內核版本
uname -n 主機名 hostname
uname -a 全部信息
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
==================================
free
free -m 內存和交換分區的使用狀況
total used free shared buffers cached
Mem: 1992 1953 39 0 98 1414
-/+ buffers/qcache: 440 1552
Swap: 2271 0 2271
tobal 內存總數 used 已經使用的內存數 free 空閒的內存數
shared 當前已經廢棄不用 buffers 緩存內存數 cached 緩存內存數
#watch -n 1 -d free 動態觀察內存狀況
瞭解/proc目錄
cat /proc/cpuinfo CPU信息
cat /proc/meminfo 內存信息
cat /proc/swaps 交換分區
cat /proc/version 版本
cat /proc/scsi ide scsi 設備信息 ide設備信息
cat /proc/net 網絡狀態與配置文件
cat /proc/sys 核心配置參數 (除了這個文件,其餘的是隻讀)
cat /proc/<PID> 以進程PID命名的目錄,每一個進程的信息分別放在該目錄下文件中
cat /proc/sys/net/ipv4/icmp_echo_ignore_all 0關閉 1開啓
-------------------------------------------------------------------------------------------------------
df 查看掛載狀況
df -h 顯示已經掛載的分區,以M爲單位顯容量
df -Th 顯示已經掛載的分區和分區對應的文件系統
df -i 顯示已經掛載的分區和文件節點數
du 查看文件實際佔用磁盤空間大小
du -csh /dir
du -chs /dir/filename 統計文件或者目錄佔用的磁盤空間狀況
w who whomai id finger
w --顯示在線用戶
write king 向在線的用戶king發送消息
who --顯示在線用戶
whoami --查詢當前用戶是誰
id --查詢當前用戶的uid gid和輔助組
id username --查詢指定用戶的uid gid和輔助組
last lastlog ac
last --顯示最新登陸系統的用戶,及在線時間狀況
lastlog --報告全部用戶最近有無登陸服務器
lastlog -u username --報告指的用戶
ac -p --報告全部用戶的在線時長
ac -p -d --按照日期來統計用戶的在線時長
進程管理:
ps
pstree
top 系統監視工具
pgrep
pkill
kill
killall
nice
renice
ps -aux 查看進程關係
-a 顯示其餘用戶啓動的進程
-u 啓動這個進程的用戶和它啓動的時間
-x 查看系統中屬於本身的進程
-f 顯示進程的父子關係
咱們經常使用的是 ps -aux
=================================
USER --啓動進程用戶身份
PID --進程號
%CPU --CPU的利用率
%MEM --內存的利用率
VSZ --預分分配的虛擬內存
RSS --真實分配的內存
TTY --在哪一個終端啓用的進程
STAT --當前進程的狀態
D:不可中斷的睡眠
R:運行當中的進程
S:可中斷的睡眠
T:中止或被追蹤
Z:殭屍進程 <子進程結束 父親進程未回收子進程資源 則變成殭屍進程>
d:死掉的進程
<:高優先級別的進程
n/N:低優先級別的進程
s:是一個進程組,表明還有子進程
+:前臺進程
START --進程啓動時間
TIME --進程運行了多長時間
COMMAND --用什麼命令啓動的進程
共享內存hhr用於進程間通訊的
面對大量io讀取瓶緊,咱們該怎麼解決?
----------------------------------------------------------------------------------------
kill 根據進程ID,給進程發信號
查看Linux下信號定義 man 7 signal
kill PID 發進程發正常關閉信號 (默認發的是15信號)
kill -15 PID 向進程發正常關閉信號
kill -9 PID 向進程發強制退出信號
kill -1 | -HUP --讓進程重啓,並從新加載配置文件
killall --根據完整的程序名字關閉進程
killall -9 bash
killall -9 httpd
killall -1 bash
nice 優先級 -20到19 (-20最高 19最低)
nice -20 /bin/bash --啓動某個程序時指定進程的優先級別
renice
# renice -20 -p 8054 --更改已經啓動的程序的進程優先級別 top 輸入
bash的特殊符號:
< << > >> &> | * ? $
標準輸入 (鍵盤) stdin 0
標準正確輸出 (屏幕)stdout 1
標準錯誤輸出 (屏幕)stderr 2
# ll /dev/std*
lrwxrwxrwx. 1 root root 15 5月 2 2012 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 5月 2 2012 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 5月 2 2012 /dev/stdout -> /proc/self/fd/1
ls > /tmp/aaa
ls /tttt
ls /tttt > tmp/aaa ---- ls /tttt 2> /tmp/aaa
# ls -l /dev/std*
lrwxrwxrwx. 1 root root 15 Aug 3 09:34 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Aug 3 09:34 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Aug 3 09:34 /dev/stdout -> /proc/self/fd/1
<< --輸入追加劇定向
# cat > a2.txt <<END || EOT
> gfdsjkgfdjgkldf
> fdsfdsfds
> fdsfdsf
> END || EOT
> --輸出覆蓋重定向
>> --輸出追加劇定向
2> --錯誤覆蓋輸出重定向
2>> --錯誤追加輸出重定向
&> --輸出正確/錯誤覆蓋重定向
&>> --輸出正確/錯誤追加劇定向
#vim scanf.c
int main(void)
{
int a ,b;
printf("input a and b:");
scanf("%d %d",&a,&b);
printf("a:%d b:%d\n",a,b);
return 0;
}
#gcc scanf.c
#cat txt
100 500
標準輸入重定向
#./a.out < ./txt
--------------------------------------------------
cat /root/a2.txt /root &> a.txt --將正確和錯誤一塊兒覆蓋重定向至a.txt
cat /root/a2.txt /root &>> a.txt --將正確和錯誤一塊兒追加劇定向至a.txt
find / -name kk &> /tmp/findfile --將正確和錯誤一塊兒覆蓋重定向至/tmp/findfile
find / -name kk &>> /tmp/findfile
# cat /root/a2.txt /root/ > /tmp/1.txt 2> /tmp/2.txt
# cat /root/a2.txt /root/ >> /tmp/1.txt 2>> /tmp/2.txt
| 管道
cat /etc/passwd |grep root |grep ^root
cat /etc/passwd | grep nologin$
--把passwd輸出結果經過管道交給第二個命令去處理,日後的以此類推
通配符:
* --匹配一個或者任意多個字符,也就是*表明全部
? --匹配一個字符
$ --引用變量
ls /etc/*.conf
[root@instructor ~]# ls /etc/?conf
echo $PATH
軟連接ln要用絕對路徑來做,保證數據連接的正確,以防軟連接移到別處了就出現各類問題。
ln -s 軟連接
ln -d 應連接
真正刪除一個文件要知足2個條件(硬連接數爲0,引用技術爲0,就是有多少個進程引用這個)
因連接要主義的:不能對目錄做應連接,由於硬連接,系統有一個遍歷循環 ls -R避免造成一個循環遍歷。
因連接也不容許跨分區(由於不能保證inode號惟一)實時備份的好工具
node