Linux基礎解析;echo;man;centos;runlevel;PS1;screen;shell 倒三角;date -d等命令—-fazion blog at22.July

Linux基礎解析

fazionlan blog in 178Linux.July 20nd.

內核、版本信息

# uname -a                      # Get the kernel version
# lsb_release -a                   # System release version
#cat /etc/redhat-release -> /etc/centos-release   #可修改版本信息
#cat /etc/issue                    #用于用戶登錄提示的文件
#id -u (user)                     #查看用戶uiduid = 0 是管理員,root不代表管理員

終端類型

物理終端:/dev/console     #物理顯示器和鍵盤

虛擬終端:/dev/pts/*      #軟件虛擬的

交互式接口:在終端附加的一個交互式應用程序

GUI(Graphic User Interface):Desktop{GNOME(c,gtk)、KDE(c++,Qt)、XFCE}

CLI(Command Line Interface):Shell{sh、csh、tcsh、ksh、bash}

Shell 是Linux的命令解釋器,在Linux中提供了用戶與內核進行交互操作的接口,它接收用戶命令并把它送到內核去執行

GNU Bourne-Again Shell(bash)是GNU計劃中重要工具軟件之一,目前是Linux標準的shell,與sh兼容

echo $SHELL         #show current shell type
cat /etc/shells       #查看所有的shell類型
getent passwd fz
#getent passwd ftp     #查看用戶使用的shell

Linux系統中Shell所處的位置

Image.bmp

shell的內建命令與外部命令

shell內、外命令 eg:
#tpye ls      
>ls is a shell builtin
#tpye ifconfig 
>ifconfig is /sbin/ifconfig
  • 內建命令:系統自帶,集成在shell中,存放在/bin/bash,用戶登錄自動加載到內存

  • 外部命令:存放在在可執行程序的路徑中,$ hash查看已經加載的外部命令

echo $PATH     #顯示PATH變量定義的路徑,外部命令的路徑需加到環境盡量中
  • 別名命令—>內建命令 —>緩存(已加載的外部命令)—>PATH變量中的目錄(外部命令)—>找不到報錯

  • 如果緩存有但是命令已不在緩存的目錄,用$ hash -d command清除緩存,或者hash -r清除所有緩存

#enable -n cd      #禁用內建命令cd
#enable cd        #啟用內建命令cd

alias 查看所有命令別名

#unalias command
#alias ls='ls --color=auto'
\ls = 'ls' = /bin/ls        #執行原始命令
  • which 找外部可執行程序的路徑,通過 PATH環境變量 到該路徑內查找可執行文件,所以基本的功能是尋找可執行文件  

  • whereis 會在一個數據庫文件中查找,可找到可執行命令和manpage(幫助文件)

  • /sbin       #管理員使用的命令

  • /bin                         #普通用戶使用的命令

  • 安裝可執行文件./file   default(d)     #使用安裝過程所有默認選項,不需確認

  • 命令格式 command options arguments

  •   \  斷行,注意添加空格  ls \-l\ /etc

  • ls;pwd;date                    #執行多條命令,分號中間不能有空格

date命令

MMDDhhmm[CC]YY.ss    #設置時間

[+FORMAT]

  %Y:四位年份   |    %y: 2位年份  |    %m: 月  |    %M:分  |    %d: 日    |    %H: 時   |    %S:秒    |    %D: 日期   |    %F: 日期

  • clock -w 以系統時間為準,校正硬件時鐘   

  • clock -s 以硬件時鐘為準,校正系統時間

screen命令

screen 是用于同一臺機器上,同一用戶的命令行的遠程協助

先開啟screen再執行備份,防止斷網而中斷備份

screen -S aaa      #新建同一臺機器的screen
screen -ls        #顯示已經打開的screen
screen -x aaa      #第二臺機器加入aaa會話

第二臺機器輸入exit退出會話

Ctrl +a 、d (按住Ctrl{按a,松開按d)     #取消當前screen
screen -r aaa                             #恢復aaa的會話

echo回顯函數,反引號`、單引號'、雙引號"、$( )的區別

  • echo默認加換行;-n 末尾不換行;-e識別轉義符號\

轉義字符:
   \a 警示字符,通常是ASCII的BEL字符;
   \b 退格;
   \c 最后不加上換行符號,并且這個參數之后的任何字符都將被忽略掉;
   \f 換行但光標仍舊停留在原來的位置(即豎直位置不變);
   \n 換行且光標移至行首;
   \r 回車符(光標移至行首,但不換行);
   \t 水平制表符TAB;
   \v 與\f相同;
   \\ 反斜杠字符;
   \0nnn 八進制數值;
  • 沒有變量和命令時, ‘ ’ 與 “ ” 無區別

  • echo $PATH              #加 “ ”弱引用,識別變量; ‘  ’強引用,原樣輸出;

  • `  `  = $() 識別命令和變量

  • ${ }   #引用變量時與其他字符相連

  • echo “echo $PATH ” =  echo echo $PATH

  • echo ‘echo $PATH’   

  • echo `echo $PATH`   =  echo $(echo PATH)

Image (2).bmp

  • touch `date +%Y`        #創建年的文件

  • touch `cal`           #創建好多個文件

  • echo -e  ' \a'        #識別該聲符\b退格\r覆蓋

  • echo -e  "\033[41-47;31-37mhello\033[0m"      #hello的背景色;前景色

  • reset                              #恢復終端亂碼

  • /etc/DIR_COLORS                       #文件名的顏色

{ }實現全排列

  • { } 大括號的使用,實現全排列

  • touch 、rm  f{1,2,3} . {pdf,txt}

  • echo f{1,3,5}.{pdf,txt}  

Tab命令補全

  • $ 2T – All available commands(common) #命令行補全,我認為是 Bash 最好用的一點 

  • $ (string)2T – All available commands starting with (string)

  • $ /2T – Entire directory structure including Hidden one

  • $ ./2T – Only Sub Dirs inside including Hidden one

  • $ *2T – Only Sub Dirs inside without Hidden one

  • $ ~2T – All Present Users on system from "/etc/passwd" #第一次見到,很好用

  • $ $2T – All Sys variables #寫Shell腳本的時候很實用

  • $ @2T – Entries from "/etc/hosts"  #第一次見到

  • $ =2T – Output like ls or dir #好像還不如 ls 快捷

manpage與help

外部命令:bash根據PATH變量的路徑搜索

whatis 在數據庫中查找,顯示命令的簡要說明,顯示在manpage的章節

#makewhatis             #cent6生成數據庫,忙等待
#mandb                #cent7生成數據庫,速度快
#whatis passwd           #顯示/etc/passwd和passwd外部命令的man章節
  • help +內建命令             #內建命令不能用man page,不對的

  • type查看是否內部命令

man                       #外部命令或標準庫的man page

  • man -f rm  =  whatis rm

  • man -k rm                #所有帶有‘rm’的命令或文件

history

~目錄/ .bash_history文件中存放歷史命令,剛執行的命令保存在內存中即history命令看到的,當用戶登出時寫入.bash_history文件中

#↑(Ctrl+p) #顯示上一條命令 
#↓(Ctrl+n) #顯示下一條命令 
#!num    #執行命令歷史列表的第num條命令 
#!!     #執行上一條命令 
#!?string?  #執行含有string字符串的最新命令 
#Ctrl+r   #然后輸入若干字符,開始向上搜索包含該字符的命令,繼續按Ctrl+r,搜索上一條匹配的命令 
#Ctrl+s   #與Ctrl+r類似,只是正向檢索

練習1:用echo打印帶顏色的閃爍倒三角

[fz@cent6 Desktop]$ c1=41
[fz@cent6 Desktop]$ c2=31
[fz@cent6 Desktop]$ k=0
[fz@cent6 Desktop]$ read -p "input line number:" num
input line number:30
[fz@cent6 Desktop]$ for i in `seq 0 $num`; do
> k=$[$i*2]
> while [ $k -lt $[$num*2-1] ]; do
> echo -ne "\033[$[${c1}+$[$k%5]];37m\033[4m\033[5m*\033[0m"
> k=$[$k+1]
> done
> echo
> for k in `seq 0 $i`; do
> echo -ne " "
> done
> done

gif5新文件.gif

練習2:顯示前10天的年月日;顯示后20天的年月日

Linux基礎解析;echo;man;centos;runlevel;PS1;screen;shell 倒三角;date -d等命令----fazion blog at22.July

Linux基礎解析;echo;man;centos;runlevel;PS1;screen;shell 倒三角;date -d等命令----fazion blog at22.July

 

原創文章,作者:helloc,如若轉載,請注明出處:http://www.www58058.com/26496

(0)
hellochelloc
上一篇 2016-07-29
下一篇 2016-07-29

相關推薦

  • day5總結筆記

    本文內容: 索引節點 硬鏈接與軟鏈接 重定向 用戶組 useradd命令 索引節點: 索引節點包含了一個表,包含了有關文件的元數據,包含:     文件類型,權限,UID,GID 鏈接數(指向這個文件名路徑名稱個數)      該文件的大小和不同的時間戳。&n…

    系統運維 2016-08-08
  • 運維工程師技能需求排行

    這是我今天在拉勾網搜索運維,翻完了4四頁也招聘信息之后得到的,我的目的是想要看看之后的學習,哪個更應該成為重點,有些在我意料之中,有些還真的沒想到,算是努力了一個小時的收獲吧,分享給大家。
    注意:其中的看法僅代表個人觀點,很多都是依靠我自己的學習經驗和工作經驗累積的

    Linux干貨 2017-12-12
  • free / buffer與cache

           前幾天看到有些伙伴傻傻分不清楚buffer與cache的用處,后來發現我也不能很清楚的說出來buffer與cache在不同的地方有什么不同之處,這里就總結了一些關于buffer于cache的區別,如有不完善的地方,請大家指出來。        說到buffer與ca…

    2017-07-17
  • Linux中正則表達式及find指令的使用

    1、顯示當前系統上root、Fedora或user1用戶的默認shell [root@centos6 ~]# grep -E "^\<(root|fedora|user1)\>" /etc/passwd root:x:0:0:root:/root:/bin/bash fedor…

    Linux干貨 2016-10-24
  • 文件的元數據

    2018-03-11

    2018-03-11
  • 搭建yum倉庫

    搭建yum倉庫 背景: 在學習完如何搭建yum倉庫后,覺得搭建yum倉庫很有意義,將自己學習中的感悟和理解記錄下來,以備日后復習。 介紹: yum:全稱是Yellow dog Updater, Modified。它是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可…

    2017-08-05
欧美性久久久久