1. 程式人生 > >(二)命令學習su、ls、cd、type、which、printenv、date、help、man、

(二)命令學習su、ls、cd、type、which、printenv、date、help、man、

Linux:是用c寫成的作業系統,它要編譯成二進位制才能執行(編譯器)。所以,就有了Debian、RedHat、SUSE、fedoro。Debian的更新版:Ubuntu。所以核心都是Linux,但是發行商是Debian、RedHat等。
RedHat安裝:http://blog.51cto.com/xxlixin1993/1568830(注意選擇虛擬磁碟型別:IDE)
Linux的基本原理:

  • 由目的單一的小程式組成,組合小程式完成複雜任務
  • 一切皆檔案

  • 儘量避免捕獲使用者介面

  • 配置檔案儲存為純文字格式


Shell:
①GUI(Graphic User Interface)介面:Gnome(c)、KDE(c++)、XFace(嵌入式)
② CLI(command line interface命令列介面)介面:命令提示符,prompt
#:root
$:普通使用者
bash、csh、zsh、ksh、tcsh

  • 命令列格式:命令 選項 引數
    ①選項:短選項-character、長選項–word
    短選項可以多個選項可以組合-a-b 、-ab
    長選項:通常不能組合- -
    ②引數:命令的作用物件
  • 使用憑證:root
  • 虛擬終端:Ubuntu進入CLI快捷鍵Ctrl+alt+f2
    進入圖形化介面快捷鍵startx &_

  • 模擬終端:在圖形介面中開啟一個終端
    IDE(Integrated Development Environment):開發環境
    dll:Dynamic Link Library。在Linux中稱為.so
    一、切換使用者
    su:switch user
    su 使用者名稱
    密碼複雜性規則(6位)

  • 純數字10^6

  • 數字+小寫字母36^6

  • 數字+大、小寫字母62^6


設定較高密級的密碼方法
- 使用4種類別字符中至少3種
- 足夠長,大於7位
- 使用隨機字串
- 定期更換

  • 迴圈週期要大 ,儘量不要使用最近使用的密碼

    二、ls
    -l:長格式
    檔案型別:(普通檔案)-、(目錄檔案)d、(塊裝置檔案)b、(字元裝置檔案)c (character)、(符號連結檔案)l(symbolic link file)、(命令管道檔案)p(pipe)、(套接字檔案)s(socket)
    **檔案許可權:**9位,每3位為一組,每一組:rwx(讀、寫、執行)
    檔案硬連結的次數
    檔案的屬組(owner)
    檔案的屬組(group)
    檔案大小(size),單位是位元組。若要用其他的單位顯示,則可以其他單位用選項-h(human-readable):做單位轉換(轉換為k)
    時間戳(timestamp):最近一次被修改時間
    最近一次被訪問(access)時間、最近一次被修改(modify)時間、最近一次被改變(change)時間【也叫元資料metadata】

drwxr-xr-x 2 j j 4096 Sep 9 17:28 Desktop

-a:顯示普通檔案和以.開頭的隱藏檔案
.表示當前目錄 ..表示父目錄
–A:顯示除了.和..的檔案
-d:顯示目錄自身屬性(要與l組合使用)
-i:index node,inode
-r:逆序顯示檔案reverse(ls命令按照字母升序排列顯示結果)
-R:遞迴(recursion)顯示
三、cd:切換目錄
如何判斷是否是一個目錄 用ls -l 即可。
cd 路徑
cd 不加任何目錄 則為家目錄(主目錄)
cd ~使用者名稱 (到哪個家目錄)
cd - :在當前目錄和之前一個目錄間切換
四、type:顯示指定命令屬於哪種型別–命令型別
內建命令(shell內建):builtin
外部命令
命令也是程式,所以要有存放位置。由此到五
五、which:命令存放位置
外部命令會有一個指定檔案存放該命令,是一個可執行檔案。
which ls /bin/ls
which 命令
那麼為什麼它能夠直接使用呢?
變數:是命名的記憶體空間。放資料叫做變數賦值。但是這樣存在一個問題,程式結束了,申請的記憶體就釋放了。
堆 :靜態變數
棧:普通變數
堆、棧:是存放變數的地方。
環境變數:用於定義當前工作環境的變數

命令:printenv
....
 PATH:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/j/bin
 ....

在查命令時,就在這裡面依次找可執行命令,但是若每一次有命令,就查詢,也會顯得很費時間,所以將使用者使用的命令放入hash中,hash的時間複雜度O(1),可以提高可執行檔案查詢速度,此時的hash相當於快取。
命令hash:將會顯示如下

hits  command
1     /usr/bin/printenv
28    /bin/ls
2     /usr/bin/clear

這些可執行檔案,其實就是實現某個具體功能的程式碼,所以程式設計人員也可以寫,所以當要執行某個可執行檔案時,可以放入path中,也可以寫具體的路徑來執行程式。
六、Date(系統時間)
硬體時鐘、系統時鐘
七、獲得命令使用幫助
內建命令:help command
外部命令:command –help 簡要幫助資訊
命令手冊:(manual) man command []:可選的option 、<>:必須的、…:可以出現多次 、 {}:分組
內部命令一般不用man 。
如何檢視命令在哪個章節:what is command
分章節:

  • 使用者命令1

  • 系統呼叫2

  • 庫呼叫3

  • 特殊檔案(裝置檔案)4

  • 檔案格式(解釋配置檔案的語法)5

  • 遊戲6

  • 雜項7 miscellaneous
  • 管理命令(/sbin,/usr/abin,/usr/local/abin)
    MAN:
    (1)NAME:命令名稱及功能簡要說明
    (2)SYNOPSIS:用法說明,包括可用的選項
    (3)DESCRIPTION:命令功能的詳盡說明,可能包含每一個選項的意義
    (4)OPTION:說明每一個選項的意義
    (5)FILES:此命令相關的配置檔案
    (6)BUGS
    (7)EXAMPLES:使用示例
    (8)SEE ALSO:另外參照
    翻屏:
    向後翻一頁:SPACE
    向前翻一頁:b
    向後翻一行:ENTER 或↓
    向前翻一行:k或↑
    查詢 :
    /KEYWORD:自前向後
    ?KEYWORD:自後向前
    n:下一個
    N:前一個
    退出:q
    UTC(Coordinated Universal Time):格林尼治時間
    date 命令不僅能顯示時間,並且能更改系統時間(也就是UTC時間)。此時間與硬體時間不同

//將EDT時間轉換為CST時間
[[email protected] ~]# mv /etc/localtime /etc/localtime.bak
[[email protected] ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[[email protected] ~]# date

“`
線上文件
info command 用的較少。