tft每日頭條

 > 圖文

 > linux之shell腳本

linux之shell腳本

圖文 更新时间:2024-09-10 19:18:50

linux之shell腳本?手把手教你在linux下使用shell腳本登陸時顯示監控信息 (23),我來為大家講解一下關于linux之shell腳本?跟着小編一起來看一看吧!

linux之shell腳本(手把手教你在Linux下使用shell腳本登陸時顯示監控信息)1

linux之shell腳本

    手把手教你在linux下使用shell腳本登陸時顯示監控信息 (23)

    大家好,不知道昨天周一忙到幾點才睡的呢?辛苦了各位,今天繼續和大家說一下輕松的吧。大家開始學linux的時候,掌握linux裡的基本命令到200作用的話,基本就相當于一個linux系統運維了,聽到這麼說,是不是感覺勞累都不算什麼了呢?

    今天和大家說的的登陸的時候,直接就顯示一些簡單的監控的信息。

    因為這個的效果不好截圖,那我就開始今天的分享吧。

    ##----------------------------------------------------------------------------------------------------------##

    其實今天的shell腳本很簡單,一共也沒幾行。我把代碼複制到下面。然後逐行和大家說一下都是什麼意思,怎麼個過程。

    大家先随便創建一個.sh的文件,我的是在/root下創建的一個123.sh的文件,然後通過chmod x /root/123.sh給123.sh可執行權限。

    下面是我寫入123.sh的内容。

    #!/bin/bash

    PN=$(ps aux --no-headers | wc -l)

    UN=$(who | wc -l)

    RU=$(df -hT | awk -F"[ %] " '/\/$/{print $(NF-1)}')

    clear

    echo "Login name: $USER"

    echo "Running Processes: $PN"

    echo "Login Users: $UN"

    echo "Usage of / Filesystem: $RU"

    代碼就是這些。。。。是不是覺得很少呢。。。哈哈。因為我大概看了下,大家周一到周五,都是很累的,我也就不給大家弄很長的代碼了,大家也不一定有時間自己敲嘛。。。我也很累,自己也偷個小懶。。。嘿嘿

    從第二行開始說。ps aux --no-headers 這裡的前面大家應該很了解,ps aux 是查看當前運行情況下,列表所有進程的。後面的—no-headers 則是不顯示頭部信息,也就是正常顯示的每一列都是什麼的信息。。。

    其實就是下面的這些信息。

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    後面跟的wc –l 就是看有多少行,因為每一行都是一個進程,所以看有多少行,就是有多少個啟動的進程了。。。

    這樣的話,第二句的意思就是,查看當前系統系統有多少啟動的進程。

    然後說第三行,who 是查看當前系統有哪個用戶登陸,後面的wc –l是一樣的。

    這句話的意思是,查看當前系統有幾個賬号登陸。

    第四句的意思,前面的df –hT, 是查看當前系統每個磁盤的使用情況的。後面的awk -F"[ %] " '/\/$/{print $(NF-1)}' ,拆開了分析。

    我先把df –hT 顯示的結果給大家看下,大家就更好理解了。

    [root@server ~]# df -hT

    Filesystem Type Size Used Avail Use% Mounted on

    /dev/mapper/vg_server-lv_root ext4 18G 11G 5.5G 67% /

    tmpfs tmpfs 491M 0 491M 0% /dev/shm

    /dev/sda1 ext4 485M 33M 427M 8% /boot

    /dev/sr0 iso9660 4.2G 4.2G 0 100% /media/cdrom

    /\/$/ 是第二行,查出來的是下面的。

    /dev/mapper/vg_server-lv_root ext4 18G 11G 5.5G 67% /

    {print $(NF-1)}是打印倒數第二組數

    67%

    -F"[ %] " 這裡注意一下,%前面是有一個空格的,是以%分段,顯示%前面空格内的東西。

    /dev/mapper/vg_server-lv_root ext4 18G 11G 5.5G 67% /

    那第四句的意思,連起來,就是,查看當前系統磁盤使用的百分比。

    下面的就好理解了,clear,是清屏的命令,相當于CTRL L清屏。

    第六句,是輸出當前登陸用戶。

    第七八九就是輸出前面的英文,加後面用$引用上面第二三四行的輸出結果了。。。。

    寫到這裡,前面的腳本基本就寫完了,然而我們要打算在登陸的時候,需要顯示這3行輸出結果,就需要在/root/.bash_profile内,把咱們剛寫的123.sh腳本寫進去。

    在這裡和大家說一下,其實/root/這個目錄,就是root賬号對應的家目錄。家目錄下都有4個默認的隐藏文件,就是下面這幾個文件。

    .bash_history 這個文件是記錄用戶曆史命令的文件

    .bash_logout這個文件是當每次退出系統(退出bash shell)時,執行該文件.

    .bash_profile 這個文件是記錄每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件.

    .bashrc 該文件包含專用于你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該文件被讀取.

    大家可以用下面的命令,把我們寫的文件直接寫入.bash_profile文件内

    echo “/root/123.sh” >> /root/.bash_profile

    這裡需要注意一下,我的123.sh文件是在/root下創建的。所以我的路徑是/root/123.sh。大家可以把自己的路徑寫入。同理,因為我是用root登陸的,所以後面是追加寫入到/root/.bash_profile文件内。大家可以把root換成你們登陸的用戶名。

    這裡再給大家介紹一個命令。

    sh –x *.sh

    這個命令是檢測腳本文件語法的命令,如果有寫錯的行,用這個命令測試,會報出來哪行錯了,怎麼錯的。這樣就方便大家一會寫很多行代碼的時候,分不清楚哪裡有什麼問題的。

    ##----------------------------------------------------------------------------------------------------------##

    好了,今天的分享就到這裡吧,大家如果敲完之後,可以重新登陸一下,看看有什麼不一樣的沒有。。

    好了,大家明天見。

    更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

    查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved