2014年2月18日 星期二

linux history command count



針對日常筆電使用的指令做了一下統計、備份

$ history |awk '{print $2}'|sort|uniq -c|sort -n|tac
 awk 顯示第二欄的值。第一個 sort 做指令排序。uniq -c  可以把上下一樣的值加總起來做統計。第二個 sort -n 可以用數字來排序。tac 反序顯示標準輸出。
    194 sudo
    128 cd
...
     58 df
     53 ls
     50 ll
     49 ping
     49 grep
     39 cat
     38 vim
  ...
     30 echo
     28 for
     27 opssh
     25 mkdir
     22 wget
     20 history
     19 rm
     18 sed
     18 ifconfig
     16 top
     16 less
     15 iostat
     13 awk
...
     11 host
     11 dpkg-query
     10 ps
     10 cp
     10 cal
      9 dmesg
      9 date
 ...
      7 ssh
      7 man
      7 du
...      5 touch
      5 reboot
      4 telnet
      4 sync
      4 sh
      4 pwd
      4 lsmod
      4 ll|grep
  ...


~ $ history |awk '/sudo/{print $2" "$3}'|sort|uniq -c|sort -n|tac
     75 sudo apt-get
     18 sudo apt-cache
     14 sudo sh
      9 sudo vim
      9 sudo kill
      8 sudo cp
      7 sudo reboot
      5 sudo service
      5 sudo dpkg
      4 sudo -i
      3 sudo swapoff


-----

sudo

可以用來切換該次指令的權限到 root 等級。當然,會要求root 密碼。
如果,要讓一般使用者也有 sudo 的權限,可以使用
visudo
在裡面加入" username    ALL=(ALL:ALL)    ALL "
如果權限沒有要全開,可以把最後一個ALL 改成要開放權限的指令。

sudo -i

sudo su -
可以直接切換到 root 使用者。



cd

移動所在位置的指令。使用終端機進到 linux 文字介面時,可以先用
pwd
查看自己現在的位置,之後要移動的話,就可以使用 cd
cd ~
# 移到家目錄
cd ..
# 移到上一層
cd  /
#移到根目錄
cd /baba1
#移到根目錄的 baba1 這個資料夾下面

df

查詢磁碟空間的指令, 使用 -h  可以依照容量更改做用的單位。
df -ih
# 查詢 inode 的使用情況。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5        74G   31G   40G  44% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           3.0G  586M  2.5G  20% /tmp
tmpfs           797M  1.1M  796M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G   11M  3.9G   1% /run/shm
none            100M   20K  100M   1% /run/user
/dev/sda6        95G   76G   14G  86% /home


ls

查詢檔案清單~
ls /file/path
# 列出 /file/path 下的檔案清單
ls -al
# 詳細列出全部的檔案(包含隱藏檔) ,
ls -alt
#  按照時間排序
ls -ald */
# 列出全部的資料夾
ll
# 等效於 ls -alF 

ping

用來確認目的端的網路連線情況。後面可以放 ip 或是 hostname

ping 127.0.0.1
ping localhost

ping -c 3 -s 1024   127.0.0.1
#  -c  指定ping 的次數
# -s 指定 packetsize , 單位 bytes

 sudo ping -c 1000 -s 1024 -f 127.0.0.1
# -f   使用 flood ping , 可以使用低間隔完成大量的ping ,標準輸出只有"."
# 這個選項只有 superuser 可以執行,一般使用者ping 的間隔時間有被限制。


grep

可以用來找字元的指令,很常被使用到。
例如想要找當然目錄裡的文字檔中,有含 "test" 這個字元的檔案
grep test *

cat bababa|grep test
#先用 cat 把 bababa 這個檔倒出來,再 pipe grep 指令來進行搜尋
cat bababa|grep -v test
# -v 可以進行反向搜尋,找沒有 test 的行
cat bababa|grep "^baba"
# grep 也支援正規表示的使用,上面是表示找baba開頭的行


cat

可以把檔案導到螢幕上做輸出( 標準輸出),在查看檔案時比較常使用到的是 less 跟 tail
但是如果有一些指令或文字,要從一些檔案直接取出,貼到console 上時~~使用 cat 會比較方便。

cat testfile 
# 倒出 testfile 的內容。

它還有一個反過來拼的指令,反序輸出檔案。
比較常用在 pipe 上,像是接在 last 後面,可以讓最近登入的秀在最下面之類的…。
last|tac

它還有一個方便的用法就是使用 -c  可指定output 固定幾個位元,這個在寫 shell script 時蠻常被用到的~~~
# EX: 在 test 這個檔裡面有 1~9 個數字,我只要它輸出第4~6 的字元
$ cat test
123456789
$ tail test |cut -c 4-6
456


vim

這個是一個編輯的軟體, 使用文字介面來進行編輯。
它非常的強大,功能也很多, 這裡就只列一些比較常用的功能~~~

1。開啟一個叫 test 的檔案
vim test

2。讓游標在檔案中移動,jkhl (下上左右)  這個剛好對到盲打時左手的鍵位,linux 也有很多公用程式也有支援這個鍵位,習慣後會很方便。

3。要在文件中開始打字, ( 插入) ,a ( after 它會從游標的後一位開始)

4。打完字要再回到指令模式按 Esc 鍵就可以了。

5。要進行一些非編輯以外的操做在指令模式下先下 :   ( 冒號)
  存檔      :w
  跳出      :q
  存檔加跳出      :wq
   也可以用         :x 

6。還有一些比較常用到的操作

B       上一頁
F       下一頁
D      刪除該行游標之後的字
dd     刪除整行文字
      刪除游標停留位置的字元
0       (數字0 ) 移到該行第一位
$       (錢)  移到該行最後一位
     移到文件最後一行
gg     移到文件第一行


vim 還有太多有趣的功能了,目前就寫到這裡,








--
其它的指令留到下一篇~~~



沒有留言:

張貼留言