Linux基礎

一、基礎命令

1、bash shell

echo $SHELL或者echo ${SHELL}

查看當前終端所使用的shell類型

cat /etc/shells

查看本機所支持的所有shell

2、命令提示符

echo $PS1

查看當前用戶命令提示符的格式

PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"

修改提示符格式

vim ~/.bash_profile

永久修改當前用戶命令提示符的格式

vim /etc/profile

永久修改所有用戶的命令提示符的格式

1)修改提示符格式

PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"

5:表示字符閃爍,4表示字符下面打印橫線。

41:表示字符的背景色。

33:表示字符的顏色。

1:表示字符的粗細。

什麼數字代表什麼顏色,Linux中有專門的文件定義,該文件就是/etc/DIR_COLORS

\[ 和 \] 是成對存在的,第一隊\[\]用於括住顏色字符的開始部分(m表示開始),第二隊用於括住顏色字符的結尾部分(0m表示結束)。注意:$符號一定要用2個\\反斜線轉義,否者root賬戶的提示符將會變成$,而不是#

各字段解釋如下:

\e:即\033

\u:當前用戶

\h:主機名簡稱

\H:主機名(FQDN)

\w:當前工作目錄(絕對路徑)

\W:當前工作目錄基名

\t:24小時時間格式

\T:12小時時間格式

\!:命令歷史數

\#: 開機後命令歷史數

練習:修改命令提示符

image.png

3、執行命令

enable

查看當前系統所有啓用的內置命令,對於bash的shell來說,所有內置命令都是由/bin/bash程序提供的,並且該程序會在系統啓動後被裝載到內存當中。因此內置命令的查找速度非常快。

enable -n command

禁用指定內部命令

enable -n

查看所有禁用的內部命令

enable command

啓用指定的內部命令

help

同enable,查看當前系統所有的內置命令

which -a

-a:all,將匹配到的所有條目都打印出來,不加-a的情況下默認只打印匹配到的第一條記錄。

whereis

同which,查看命令的路徑

type COMMAND

查看指定命令的類型(內部或外部)

4、執行外部命令

系統初始hash表爲空,當外部命令執行時,默認會從PATH路徑下尋找該命令,找到後會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解釋器首先會查看hash表,存在將執行之,如果不存在,將會去PATH路徑下尋找。利用hash緩存表可大大提高命令的調用速率。

hash

顯示hash緩存

hash -r

清除hash緩存

5、命令別名

alias name=value

定義別名NAME,其相當於執行命令VALUE

vim ~/.bahsrc

將命令別名添加到該文件中,只對當前用戶生效。

vim /etc/bashrc

將命令別名添加到該文件中,只所有用戶都生效。

alias

顯示當前shell進程所有可用的命令別名

unalias name

取消命令別名

unalias -a

取消所有的命令別名

練習,在linux中添加cdnet別名,使其能夠進入/etc/sysconfig/network-scripts

image.png

當命令別名存在的情況下,我們如何繞過別名,執行真正的命令呢?有如下方法:

\aliasname

"aliasname"

'aliasname'

command aliasname

/path/command

例如:\cp,cp其實是cp -i的別名,\cp繞過了cp -i,執行的就是cp不帶任何參數。

注意:別名、內部命令和外部命令的優先級依次降低,所以當內部命令和別名的名字相同時,系統只會調取別名執行而不會執行內部命令。

6、日期時間

1)日期、時間

clock

顯示硬件時間

clock -w

讀取系統時間覆蓋硬件時間

clock -s

讀取硬件時間覆蓋系統時間

date

顯示內核計算出的系統時間

date 030710052018.30

手動設置時間,格式是“月日小時分鐘年.秒”

date +%s

以時間搓顯示當前時間

date +%F

顯示當前時間的年月日

timedatectl

簡要的列出當前時間、時區和NTP同步設置

timedatectl set-time "2017-12-13 09:30:00"

手動設置時間

2)時區

timedatectl set-timezone Asia/Shanghai

設置時區爲上海

cat /etc/localtime

查看當前系統的時區

3)語言環境

localectl

查看當前的語言環境

4)顯示日曆

cal

只顯示當前日期的日曆

cal -y

-y:year的意思,顯示一整年的日曆

練習:爲了保證所有服務器的時間一致,將所有服務器指向同一個ntp服務器。

image.png

7、關機重啓

poweroff/halt

關機

shutdown -r TIME

-r:reboot,重啓。TIME有以下三種表示方式:第一種是+m,相對時間表示法,幾分鐘之後;例如 +3。第二種是now,立刻,相當於+0。第三種是hh:mm絕對時間表示,指明具體時間。如果不指定time,默認相當於+1,即一分鐘後重啓,時間單位爲分鐘

shutdown -h TIME

-h:halt,關機,使用同上。

shutdown -c

-c:cancle,當設定關機、重啓後,可以使用該選項取消之前的設定。

8、顯示用戶登錄信息

who

顯示當前所有登錄會話的信息

who am i 或者whoami

顯示當前登錄用戶的詳細信息

w

顯示當前所有登錄會話的信息及所做的操作

9、screen命令

screen -S help

創建一個名爲help的新screen會話

screen -x help

加入名爲help的screen會話

screen -ls

顯示所有已經打開的screen會話

Ctrl+a,d

鍵盤Ctrl+a+d鍵一起按,表示臨時退出當前screen會話,退出後使用screen -x help繼續加入到help會話,

exit

退出當前的screen會話(所有加入到該screen會話的session也都將退出)

練習:使用screen創建屏幕共享


image.png

10、echo命令

echo -e

-e,允許打印的字符中出現特殊字符(轉移字符)

echo -n

不打印換行字符,默認會打印一個換行字符出來

echo {1..100..2}


如果echo命令啓用了選項-e,則echo命令將會解釋特殊字符,若字符串中出現以下字符,則echo將會特別加以處理,而不會將它當成一般文字輸出:

  • \a:輸出(發出)一個警告聲

  • \b:輸出一個退格鍵

  • \c:最後不加上換行符號

  • \n:換行且光標移至行首

  • \r:回車,即光標移至行首,但不換行

  • \t:輸出一個tab鍵

  • \\ 插入\字符

  • \0nnn 插入nnn(八進制)所代表的ASCII字符,例如:echo -e '\033[43;31;5mmagedu\033[0m'

  • \xHH插入HH(十六進制)所代表的ASCII字

image.png

11、{}的使用

image.png

12、命令行歷史

history -c

清空內存緩存中的命令歷史記錄,但是硬盤上的.bash_history文件中記錄的歷史命令不會被清除。想要徹底清除歷史命令,還要將.bash_history文件中的歷史命令全部清空。先刪內存緩存中歷史命令,然後再清理.bash_history文件,否者清理命令會被記錄下來的。

history -d “offset”

offset:刪除內存中的歷史中指定的第offset個命令。

history -w /root/history.bk

將內存中的歷史命令保存到指定的文件中。

echo $HISTSIZE

查看history最大的命令數

登錄shell時,會讀取命令歷史文件(~/.bash_history)中記錄的命令,登錄進shell後新執行的命令首先會記錄在緩存(內存)中;這些內存中緩存的命令會在用戶退出時“追加”至命令歷史文件中。

history默認最多隻會存放1000條歷史命令,超過之後,老的歷史命令將會被丟棄,在/etc/profile永久修改該值。

image.png

重複history中的命令,有如下方法:

image.png

13、獲取命令幫助的方法

whatis

簡要的說明信息

help command --help

內部命令使用該方法獲取幫助,也可以使用man

command --help

外部命令獲取幫助,也可以使用man

man或者info後者pinfo

詳細說明信息

/usr/share/doc/

安裝軟件時一般會有說明文檔放在該目錄下,比man要詳細的多

如果想要漢化man文檔,可以安裝man-pages-zh-CN中文包

man每個章節所表達的意思如下:

image.png

man命令的選項參數:

man -a keyword

找到所有包含keyword的章節,並依次查看,按q鍵,結束一個章節,進入下一個章節的閱讀。G翻到文檔末尾,1G翻到文檔開頭。查找結果中按n下一個,N上一個。

man -k keyword

列出所有包含keyword的頁面,範圍要比-f大。

man -f keyword

相當於whatis,列出所有包含keyword的“章節”。

man -w [章節] keyword

顯示命令指定章節的man幫助文件的路徑,章節可選。

舉例如下:

image.png

14、其他一些常用命令

cat /proc/meminfo

查看內存信息

shift+pgup

翻頁(當上下箭頭鍵移動不能顯示輸出信息時使用)

lsblk

查看本機硬盤及分區信息

cat /proc/partition

查看本機分區信息

lsb_release -a

查看本機內核信息,-a表示--all的意思

tty

顯示當前登錄用戶所使用的終端名稱

cat /etc/centos-release

查看centos的發行版本

lscpu

查看cpu的詳細信息

vim /boot/grup2/grup.cfg

net.ifnames=0

練習:Centos7的網卡默認是ens開頭的,而centos6的是eth開頭的,如果想要批量管理這些服務器,那麼就要統一這些網卡名稱,那麼如何將Centos7的網卡改成eth開頭呢?方法如下:

image.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章