標籤:學習筆記 linux營運
系統使用者
PS1 定義提示符的格式 例如:
PS1=XXX 目前使用者名就會被臨時修改
echo $PS1
[\[email protected]\h \W]\$ //u表示使用者,h 主機名稱 W 當前的檔案夾
# 管理員
$ 普通使用者
當我們輸入一個命令後,它會通過shell交給kernel,kernel來判斷這個命令的類型
命令類型:
內建命令 :核心內建的 kernel自身就有的
外置命令 :GUN file 安裝的檔案
查看一下核心
cd /boot/
ll vmlinuz-3.10.0-327.el7.x86_64 -h //h表示符合人類查看的方式,查看資料的大小比較方便,這個核心只有5M。這裡包含了所有的內建命令
[email protected] ~]# type cat
cat is /usr/bin/cat //外部命令
[[email protected] ~]# type type
type is a shell builtin //內建命令
[[email protected] ~]# type cd
cd is a shell builtin //內建命令
[[email protected] ~]# type who
who is /usr/bin/who //外部命令
[[email protected] ~]# who //運行這個命令
root :0 2016-07-21 17:06 (:0)
root pts/0 2016-07-21 18:55 (:0)
root pts/1 2016-07-21 19:03 (172.18.16.73)
root pts/2 2016-07-21 21:32 (172.18.16.73)
[[email protected] ~]# type who
who is hashed (/usr/bin/who) //hashed:雜湊,當一個外部命令運行過後,對它進行一次雜湊運算放到cache中,下次再運行時候能快速讀取。
type chmod
chmod 000 /root/111
type chmod which chmod 都能查看命令的路徑,但是which只能找外部命令,不能找內建命令,例如 which type 就失敗了
[[email protected] ~]# which cat
/usr/bin/cat
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# type cat
cat is /usr/bin/cat
[[email protected] ~]# cp /usr/bin/ca
cairo-sphinx calibrate_ppa cancel caribou-preferences catman
cal canberra-boot cancel.cups cat
ca-legacy canberra-gtk-play captoinfo catchsegv
[[email protected] ~]# cp /usr/bin/cat /usr/local/sbin/cat
[[email protected] ~]# cat 111
[[email protected] ~]# type cat
cat is hashed (/usr/local/sbin/cat)
[[email protected] ~]# rm /usr/local/sbin/cat
rm: remove regular file ‘/usr/local/sbin/cat’? y
[[email protected] ~]# cat 111
-bash: /usr/local/sbin/cat: No such file or directory // 一直按照記憶體的路徑來尋找的。
[[email protected] ~]# which cat
/usr/bin/cat
[[email protected] ~]# type cat
cat is hashed (/usr/local/sbin/cat)
[[email protected] ~]# /usr/bin/cat 111 //給它加上路徑就可以了
為了徹底解決,就得從緩衝到記憶體解決
[email protected] ~]# hash
hits command
14 /usr/bin/screen
1 /usr/bin/rm
4 /usr/bin/chmod
5 /usr/local/sbin/cat
1 /usr/bin/touch
3 /usr/bin/who
1 /usr/bin/cp
2 /usr/bin/vi
2 /usr/bin/w
2 /usr/bin/ls
1 /usr/bin/clear
[[email protected] ~]# hash -d cat //hash -r 全部清除
[[email protected] ~]# hash
hits command
0 /usr/bin/cat //這樣就可以從新按照預設路徑來搜尋了
cat 111 // ok
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin //外部命令存放的路徑 搜尋的順序第一個優先順序更高,如果我偏偏就想讓APP1在/usr/local/bin作為優先則可以
/usr/local/bin/APP1來執行,否則不寫路徑找不到
chmod $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
內建命令優先順序高
然後根據 hash $PATH
的優先順序來判斷
enable -n cd //禁用內建命令方法
enable cd //啟用
[email protected] tmp]# enable -n cd
[[email protected] tmp]# type cd
cd is hashed (/usr/bin/cd) //因為內部命令不在了外部命令還在,centos6不支援這個
whereis chmod //只在PATH變數裡搜
[email protected] tmp]# ls \
> -l \
> yum.log //對於較長的命令可以分行顯示出來
[[email protected] tmp]# ls;pwd;ifconfig //對於短命令可以一起執行並分別生效
date :
顯示日期和時間
date -u //顯示格林尼治時間
clock :
顯示硬體時間
同步時間方法:
clock -s //以硬體為準同步時間
clock -w //以系統時間為準同步時間
date 月 日 小時 分 年 秒
date 091811302012.20
例如:
[email protected] ~]# date -u
Fri Jul 22 02:12:11 UTC 2016
[[email protected] ~]# date 091011202012.20 //手工設定了一個時間
Mon Sep 10 11:20:20 CST 2012
[[email protected] ~]# clock
Fri 22 Jul 2016 10:19:24 AM CST -0.492925 seconds
[[email protected] ~]# clock -s //通過硬體校正回正確的時間
[[email protected] ~]# date
Fri Jul 22 10:19:33 CST 2016
cal:
顯示日期的命令
[[email protected] ~]# cal 09 1752
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30 //宗教原因造成的
cat /etc/issue
[[email protected] ~]# vi /etc/issue
\S
Kernel \r on an \m
STOP!!! THIS IS MY ROOM //添加後以字元介面行進入會出現。
nano /etc/issue
loginout =ctrl + d
[[email protected] ~]# systemctl restart network //重啟網卡程式
centos 7 命令安裝
可以選擇在查看本機是否安裝了 screen
type screen
如果沒有安裝則有兩種安裝方式:
1:檢查光碟片已經掛載後,在Packages包中找到screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm 檔案雙擊安裝;
2;df //查看光碟片已經掛載
[[email protected] ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 52403200 3348332 49054868 7% /
devtmpfs 923776 0 923776 0% /dev
tmpfs 938316 144 938172 1% /dev/shm
tmpfs 938316 9136 929180 1% /run
tmpfs 938316 0 938316 0% /sys/fs/cgroup
/dev/sda5 20961280 32932 20928348 1% /testdir
/dev/sda1 201388 141756 59632 71% /boot
tmpfs 187664 20 187644 1% /run/user/0
/dev/sr0 7587292 7587292 0 100% /run/media/root/CentOS 7 x86_64
rpm -i /run/media/root/Centos7\7\x86_64/Packages/screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm
安裝成功後開始實驗
實驗目的:協助使用者解決系統應用問題
實驗完成的前提條件:雙方都要登陸同一個伺服器,並使用相同的帳號
求助方:
type screen //查看是否安裝screen
screen
screen -S zcl1840 //開啟新的screen session :zcl1840為連結帳號
協助方:
which screen //查看screen的路徑
screen -ls //查看是否有求助賬戶登陸
screen -x zcl1840 // 加入回話:加入求助賬戶建立連結
串連後兩者可以在一個案頭上操作。
若雙方任意一方exit退出則連結中斷。
通過screen建立一個背景程式,防止中斷。例如升級程式在後台運行。
通過無限迴圈 yes命令類比
1: screen
2: yes
3: ctrl + a //停頓一下按 d 將yes無限迴圈程式轉入後台
4: screen -ls //查看到後台進程程式號和隨機使用者名稱pts-0.centos7
screen -x 對名應的使用者 //加入後原來後台運行程式則顯示在案頭中
5: screen -r session //恢複某個進程:如果就一個後台進程則r後面不添加使用者名稱,若有多個則添加對應的進程名,可以恢複這個進程或者ctrl+c終結進程
6: 若結束進程後,screen -r There is no screen to be resumed exit 即可
echo :
顯示字元命令
[[email protected] ~]# echo aaa bbb ccc
aaa bbb ccc
[[email protected] ~]# echo -n aaa bbb ccc
aaa bbb ccc[[email protected] ~]#
變數:表示一些字串的集合
[[email protected] ~]# echo $UID
0
[[email protected] ~]# echo \$UID //加入“\”後轉意
$UID
[[email protected] ~]#
[[email protected] ~]# echo ‘$UID‘ //‘‘強引用
$UID
[[email protected] ~]# echo "$UID" //“” 弱引用
0
例如:
[[email protected] ~]# echo "echo $UID"
echo 0
[[email protected] ~]# echo ‘echo $UID‘
echo $UID
[[email protected] ~]# echo `echo $UID` // 此命令= $(echo $UID)
0
echo -e //能讓後面的字串顯示一些特殊功能
例如:
[[email protected] ~]# echo "aaa \c"
aaa \c //沒有加e
[[email protected] ~]# echo -e "aaa \c"
aaa[[email protected] ~]# //加入e後 \c參數才發生效果
[email protected] ~]# echo -e "\a" // \a 的作用是發出聲音
[[email protected] ~]#
echo命令選項:
-n 不在字元的最後自動換行
-e 若字串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 退格鍵
\c 最後不加上分行符號號;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\\插入\字元
\0nnn 插入nnn(八進位)所代表的ASCII字元
echo -e "\033[43;31mabcd \033[0m" //43為被景色,31為字型顏色 。我在CRT上用不好用
\xHH插入HH(十六進位)所代表的ASCII字
馬哥教育面授班20-2第一周學習筆記5