馬哥教育面授班20-2第一周學習筆記5

來源:互聯網
上載者:User

標籤:學習筆記   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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.