1. 程式人生 > >linux學習第2天(自習)

linux學習第2天(自習)

install pwd admin gnome pat readme 嚴格 inf usually

linux學習第2天(自習)

時間: 20180717


目錄

終端的分類

GUI和CLI

命令提示符

Linux 文件系統的特性

Linux 命令幫助的獲取詳解

man文檔級別

Linux Bash的基礎特性

history, 目錄管理類命令, 文件內容查看命令, 文件管理命令, 命令別名,

globe用於實現文件名通配, bash快捷鍵, bash的I/O重定向和管道, 文本處理工具


安裝上課所需要的虛擬機

制作初始化腳本



終端的分類

物理終端:將顯示器、鍵盤鼠標直接接在主機上,這樣的終端稱之為物理終端

也稱之為物理控制臺console

表示: /dev/console


虛擬終端:系統提供6個虛擬終端,這些虛擬終端附加在物理終端之上,用軟件方式虛擬

虛擬實現的終端centos默認啟用6個虛擬終端,可以通過快捷鍵來切換

切換方式Ctrl+Alt+F[1-6]

表示: /dev/tty#


圖形終端:附加在物理終端之上,用軟件方式虛擬實現的終端,但額外會提供桌面環境。

也是虛擬終端的一種切換方式 Ctrl+Alt+F7


偽終端:圖形界面下打開的命令行接口,還有基於ssh協議或telnet協議等遠程打開的命令行

界面。

表示: /dev/pts/#


查看當前的終端設備命令 tty



GUI和CLI

GUI: Graphical User Interface 圖形化用戶接口

是基於X協議實現的窗口管理器(桌面、按鈕的作用等)


Linux桌面系統由:

GNOME (C程序開發, gtk開發庫)

KDE (C++開發,qt開發庫)

XFCE (輕量級桌面)


CLI Command Line Interface 命令行接口

打開後是一個命令行接口,對應的叫shell程序,用戶與系統交換,需要通過shell

常見的linux shell有 sh, csh, ksh, bash, zsh. 常用bash


獲取當前環境所使用的shell是哪種shell

echo $SHELL

顯示當前系統使用的所有shell

cat /etc/shells



命令提示符

提示符有兩種:

# 表示當前所登錄的是管理員

$ 表示當前所登錄的是普通用戶


在命令提示符下便可輸入可執行命令,

shell中可執行的命令有兩類

內建命令: 由shell自帶的,可以不安裝其它命令程序便可以執行的命令

外部命令: 是由第三方程序提供的命令,即在當前系統的某文件系統路徑下可以找到對應

的可執行程序文件;可通過which, whereis命令來查找到其可執行文件路徑


查看一個命令是內部命令還是外部

type 該命令是用來查看一個命令是外部的還是內部

enable (僅供bash)顯示當前所有內部命令



Linux 文件系統的特性

1 文件名嚴格區分字符大小寫

2 文件名可使用除/以外的任意字符,但不建議使用特殊字符做為文件名

3 文件名長度最長不能超過255個字符

4 所有.開頭的文件都為隱藏文件



Linux 命令幫助的獲取詳解

1 通過命令自帶的幫助信息

COMMAND --help

COMMAND -h


2 使用手冊manual

man COMMAND


3 信息頁

info COMMAND 支持信息頁中的超鏈接


4 程序自身的幫助文檔,有README,INSTALL,Changelog等。


5 程序的官方文檔


6 發行版的官方文檔


7 google



man文檔級別

1. 用戶命令章節,所有用戶都可以使用

2. 系統調用命令章節

3. C庫調用

4. 設備及特殊文件

5. 配置文件的格式及相關參數

6. 遊戲

7. 雜項

8. 管理命令


1 Executable programs or shell commands

2 System calls (functions provided by the kernel)

3 Library calls (functions within program libraries)

4 Special files (usually found in /dev)

5 File formats and conventions eg /etc/passwd

6 Games

7 Miscellaneous (including macro packages and conventions),

e.g. man(7), groff(7)

8 System administration commands (usually only for root)

9 Kernel routines [Non standard]


man命令用來查找文檔是有一個配置文件用來指向和查找命令相關的文件

Centos 6 : /etc/man.config

Centos 7 : /etc/man_db.conf



Linux Bash的基礎特性

history 命令用來查看或者設置命令歷史相關參數

-d 刪除歷史命令中指定的命令

-c 清空命令歷史

-a 手動追加當前會話緩沖區的命令歷史至歷史文件中


調用歷史中的命令

!# 重復執行第#條命令

!! 重復執行上一條命令

!string 重復執行最近一次以string開頭的命令

!$ 調用上一條命令的最後一個參數 esc+. or Alt+.


註意:連續執行相同的命令,在歷史記錄裏只顯示一條記錄

控制命令歷史記錄方式的變量

HISTCONTROL

ignoredups 忽略重復的命令,連續且相同為“重復”

ignorespace 忽略所有以空白開頭的命令

ignoreboth 包含以上兩項



目錄管理類命令

cd, pwd, ls, mkdir, rmdir, tree

(詳細命令解釋見另一文檔)


文件內容查看命令

more, less, head, tail, cat, tac

(詳細命令解釋見另一文檔)


文件管理命令

cp mv rm

(詳細命令解釋見另一文檔)


命令別名

bash可以提供一個簡寫的命令,如經常打開 cd /etc/sysconfig/network-script/

這個目錄可以定義一個別名為cdnet,下次只需要輸入別名便可直接進入到該目錄裏


alias 命令用來定義別名‘

alias cdnet="cd /etc/sysconfig/network-script/"

此時定義的別名只能在當前shell下生效,退出重新登錄,便失效,永久有效

需要定義在配置文件中

~/.bashrc 對當前用戶有效

/etc/bashrc 對所有用戶有效


bash 進程重新讀取配置文件

source /path/file

. /path/file


unalias 撤消所定義的別名

unalias cdnet

後邊只需要加上之前定義的別名即可撤消所定義的別名


如遇到與別名相同的原命令可在命令前加\來執行原命令



globe用於實現文件名通配

* 表示任意長度任意字符

? 表示任意單個字符

[]表示指定範圍內任意單個字符

[a-z]任意單個字母,不區分大小寫

[0-9]任意單個數字

[a-z0-9]任意單個字母或數字

[^]匹配指定範圍以外的任意單個字符

與[]相反,即取反

字符集表示方法

[:alnum:] 表示所有的字母和數字

[:alpha:] 所有的字母,不區分大小寫

[:digit:] 所有數字

[:lower:] 所有小寫字母

[:upper:] 所有大寫字母

[:punct:] 所有標點符號

[:space:] 空格



bash快捷鍵

Ctrl+l 相當於clear命令清屏

Ctrl+a 將光標跳轉至命令開始處

Ctrl+e 將光標中轉至命令結尾處

Ctrl+c 取消命令的執行

Ctrl+u 刪除行首至當前光標所在處的所有內容

Ctrl+k 刪除光標所在處至行尾的所有內容



bash的I/O重定向和管道

輸出重定向

> 輸出重定向,將標準輸出重新定向至其它文件,會將文件原數據清空

>> 追加輸出重定向,將標準輸出重新定向並追加至目標文件後方

2> 錯誤輸出重定向,將錯誤輸出重新定向至其它文件,會將文件原數據清空

2>> 與上一條類似,只是做追加而非覆蓋

&> 將標準和錯誤輸出同時重新定向至其它文件,會將文件原數據清空

&>> 將標準和錯誤輸出同時重新定向至其它文件,只做追加不會清空原數據


輸入重定向

<< 用的較多的是cat >> /path/file <<EOF



文本處理工具

wc, cut, sort, uniq

(詳細命令解釋見另一文檔)



linux學習第2天(自習)