1. 程式人生 > >LINUX 入門及一些基本的操作

LINUX 入門及一些基本的操作

實時性 虛擬文件系統 鏈路 touch pipe c中 meta 再次 code

Linux 入門

目錄
一、 用戶登錄
二、 終端
三、 shell介紹
四、 執行命令
五、 簡單命令
六、 命令行歷史
七、 bash快捷鍵
八、 使用ghome-ternimal
九、 文件管理
十一、. 目錄、inode表與文件
十二、 軟/硬鏈接
一、用戶登錄
在Linux系統中有兩種用戶,一種為root用戶,一種為普通用戶,
1、root 用戶
root是一種特殊的管理賬戶,擁有管理系統的所有權利,相當於windows的超級管理員,可以管理任何的文件,也可以管理其它普通用戶的權限,對於管理系統非常的方便,(但是對系統損害也幾乎擁有無限的能力,除非必要不要登錄root)

2、普通(非特權)用戶
權限有限,也不能對其它的用戶信息及權限進行修改,造成損害的權利比較有限
二、終端terminal
終端是用來管理Linux 的的一種
1、設備終端
鍵盤鼠標顯示器
2、物理終端(/dev/console)
控制臺 console
3、虛擬終端(tty:teletypewriters, /dev/tty# #為[1-6])
tty 可有多個,ctrl+Alt+F[1-6]
4、圖形終端(/dev/tty7) starx, xwindows
Centos 6:ctrl+Alt+F7
Centos 7:在哪個終端啟動,即位於哪個虛擬終端
5、串行終端(/dev/ttys$)
ttys
6、偽終端(pty: pseudo-tty, /dev/pts/#)
pty ,SHH 遠程連接
7、查看當前終端設備的命令是tty
三、shell 介紹
shell 是Linux系統的用戶界面,提供了用戶與內核進行互相操作的一種接口。它接受用戶輸入的命令並把它送到內核去執行。shell也被稱為Linux的命令解釋器,shell是一種高級程序語言。
1、echo 顯示當前
2、cat /etc/shells 顯示當前系統使用的所有shell
3、命令提示符 [root@localhost ~]#

管理員 $ 普通用戶

          echo    $PS1    顯示提示符格式
            PS1="\[\e[311m\][\u@\h \W]\\$\[\e[0m\]"
                 \e \033       顏色         \u 當前用戶 
                     \h 主機名簡稱             \H 主機名
         \w 當前工作目錄          \W 當前工作目錄基名
         \t 24小時時間格式        \T 12小時時間格式
         \! 命令歷史數                \# 開機後命令歷史數

四、執行命令
輸入命令後回車即可執行命令
1、在shell中可執行的命令分為兩種:
內部命令:由shell自帶的,而且通過某命令形式提供
help 顯示所有的內部命令列表
enable 顯示所有已激活的內部命令
enable cmd 激活被禁用的內部命令
enable -n cmd 禁用某個內部命令
enable -n 顯示所有被禁用的內部命令
enable -a顯示所欲內部命令
enable -a |wc -1 顯示所有的內部命令的數量
enable |wc -1 顯示激活中的內部命令的數量
2、外部命令:在文件系統路徑下有對應的可執行程序文件
查看路徑:which -a |--skip-alias ;whereis
3、區別制定的命令是內部命令或是外部命令的命令:
type cmd
4、當執行一條命令時的查找順序
別名
內部命令
外部命令
hash(緩存表)
path(存儲外部命令的命令)
5、hash緩存表:系統重啟後hash表為空,當執行一個外部命令時,默認會從path路徑下尋找該命令,找到後會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解釋器首先會查看hash表,存在則執行之,如果不存在,將會去path路徑下尋找。利用hash緩存表可大大提高命令的調用速率
hash命令的常見用法
hash 顯示所有被hash的命令路徑
hash -l 顯示所有被hash的命令路徑,包含別名
hash -p 路徑 別名 手工添加一條hash
hash -t name 顯示別名(命令)的hash路徑
hash -d 別名(命令) 刪除指定命令或別名的hash條目
hash -r 清空所有的hash
6、alias 顯示所有的別名信息
alias 別名=‘cmd -選項 參數’ 定義一個命令的別名
unalias 別名 取消一個別名
unalias -a 取消所有的別名
別名的保存 /etc/bashrc
如果一個別名跟另一個命令重名了,要想使用哪個命令而不是哪個別名的話,可以使用下列方式:
\cmd
‘cmd‘
"cmd"
/path/cmd
7、 在命令行中定義的別名,僅對當前shell進程中有效,如果想要永久有效,可以定義在配置文件中,
僅對當前用戶的配置文件:~/.bashrc
對所有用戶有效的配置文件:/etc/bashrc
編輯配置給出的新配置不會立即生效,需要重新讀取配置文件後才能生效
source /path/to/config_file
五、 簡單命令
1、命令的執行語法
cmd 選項 參數
選項:用於啟用或關閉命令的某些功能
參數:命令的作用對象,
(多個選項以及多參數和命令之間使用空白字符分隔
取消命令和結束命令:Ctrl+c ,Ctrl+d
多個命令在一行可以用;符號分開
一個命令可以用\分成多行)
2、Linux中一些基礎的命令
1.時間
date 顯示系統日期和時間
clock,hwclock :顯示硬件時鐘
Linux的兩種時鐘,
系統時鐘:Linux的系統時間,關機後則不再工作
硬件時鐘:硬件時鐘,在關機後仍然工作,依靠主板上的 一 顆 紐扣電池供電
hwclock -s 以硬件時間為準,校正系統時鐘
hwclock -w 以系統時間為準,校正硬件時鐘
date
+%Y 只顯示 年
+%m 只顯示月
+%d 日
+%H 時
+%M 分
+%S 秒
+%F 年-月-日
+%T 時:分:秒
用date 設置系統時間
date 月日時分年[.秒] date 102013112020.45
dae -s ‘年-月-日 時:分:秒’

  1. cal 顯示日歷
    cal 顯示今年本月的日歷
    cal 年份 顯示該年一整年的日歷
    cal 月份 年份
    3.關於開關機
    poweoff 關機
    reboot 重啟
    init 0 關機
    init 6 重啟
    shutdown -r 重啟
    shutdown -h 關機
    shutdown +n n分鐘後關機
    shutdown 20:20 20:20 關機(定時關機)
    (如何取消關機,在當前終端可以Ctrl+c 取消關機,在其他終端可以打命令shutdown -c 取消關機計劃)
    4.關於查看當前用戶的信息
    whoami 顯示當前用戶名
    who am/are/is 任意字符 顯示當前終端的信息
    who 顯示所有終端的信息
    w 顯示所有終端的詳細信息及操作
    5.screen命令
    screen 創建一個會話可以讓不同地方兩個終端共享一個終端, 在其中一個終端上敲命令,另一個終端上也能顯示出來
    screen 生成默認名字的會話
    screen -S 會話名 創建指定名的screen
    screen -ls 查看所有已打開的screen
    screen -x 會話名 加入已創建的screen
    exit 退出當前會話
    6.echo 輸出內容在終端上
    -E 不開始解釋功能,默認
    -n 不自動換行
    -e “”開啟解釋功能“”
    \a 警告聲
    \b 退格
    \c 不換行
    \n 回車換行
    \r 回車,即光標移至行首,但不換行
    \t 插入tab
    \ 插入\
    7.關於whatis 的用法和作用
    whatis cmd或man -f cmd 僅能提供命令基本的介紹。不提供用法,基於數據庫的查找,優點是檢索速度快,缺點是缺乏實時性。
    8.pwd 查看當前所在目錄的路徑
    pwd -d 當前目錄為軟鏈接時,顯示其源目錄
    9.ls用法
    ls -a 顯示所有目錄和文件,包括隱藏文件
    ls -A 顯示所有文件,除. , ..
    ls -l 以長格式列出文件和目錄
    -rw-r--r--. 1 root root 2193 Jul 14 17:28 passwd
    文件類型|owner權限group權限other權限|硬鏈接數|owner|group|文件大小(bytes)|mtime|文件名
    ls -R 遞歸
    ls -ld 顯示指定目錄的詳細信息
    ls -S 按文件大小降序排列
    ls -t 按修改時間(Mtime) 從新到舊排列
    ls -ut 按訪問時間(atime) 從新到舊排列
    ls -U 按文件存放先後順序
    ls -X 按文件後綴排序
    ls -i 顯示inode號
    (時間戳 atime 訪問時間
    mtime 文件數據修改時間
    ctime 文件元數據修改時間
    查看某個文件或目錄的時間戳:stat 文件或目錄路徑)
    六、命令行歷史
    history 歷史命令查詢命令,顯示當前終端的歷史記錄
    history 查詢歷史記錄
    history -c 清空當前的所有歷史記錄
    history -d 刪除某條歷史
    history -a 將當前終端執行的命令寫入歷史記錄文件中 (文件由 變量HISTORY決定,默認為用戶家目錄的.bash_history
    history -w /path/filename.txt 將歷史記錄寫入指定文件
    history -n 將未讀過的歷史從文件中讀取
    history -r 將所欲歷史從文件中讀取
    !! 重復執行上一條命令
    !-n 重復執行倒數第n條命令
    !n重復執行第n條命令
    !:0 執行前一條命令(去除參數)
    !str 重復前一個以str 開頭 的命令
    !?str 重復前一個包含str的命令
    !str:p 僅打印以str開頭的命令歷史,而不執行
    !$:p 打印輸出!$ 上一條命令的最後一個參數的內容
    :p 打印輸出(上一條命令中所有的參數)的內容
    ctrl -r 在歷史命令中搜索命令
    ctrl -g 從歷史搜索模式中退出
    esc, .(點擊esc鍵松開,然後點擊.鍵)
    alt +. (按住alt鍵的 同時點擊 . 鍵)
    調用歷史參數
    cmd ! ^ 利用上一個命令的第一個參數做cmd的參數
    cmd !$ 利用上一個命令的最後一個參數做cmd的參數
    cmd !
    利用上一條命令的全部參數做cmd的參數
    cmd !:n 利用上一個命令的第n個參數做cmd的參數
    cmd !n:^ 調用第n條命令的第一個參數
    cmd !n:m 調用第n條命令的第m個參數
    cmd !n: 調用第n條命令的所有參數
    cmd !str:^ 從命令歷史中搜索以str開頭的命令,並獲取它的 第一個參數
    cmd !str:$ 從命令歷史中搜索以str開頭的命令,並獲取它的 最後一個參數
    cmd !str:n 從命令歷史中搜索以str開頭的命令,並獲取它的 第n個參數
    cmd !str:
    從命令歷史中搜索以str開頭的命令,並獲取它的 所有參數
    七、bash快捷鍵
    Ctrl+L 清屏
    Ctrl+O 執行當前命令,並重新顯示本命令
    Ctrl+s 鎖定,輸入運行任何命令屏幕上都不顯示,但仍執行命令
    Ctrl+q 解鎖
    Ctrl+C 強制結束
    Ctrl+D 正常終止
    Ctrl+Z 掛起(暫停命令)
    Ctrl+a 光標移動到命令行首,相當於home
    Ctrl+e 光標移動到命令行尾,相當於end
    Ctrl+f 光標向右移動一個字符
    Ctrl+b 光標向左移動一個字符
    Ctrl+xx 光標在命令行首和光標當前位置之間移動
    Ctrl+u 刪除光標之前的內容
    Ctrl+k 刪除光標之後的內容
    Ctrl+w 從光標處向左刪除至單詞首
    Ctrl+d 刪除光標後的一個字符
    Ctrl+h 刪除光標錢的一個字符
    Ctrl+y 將刪除的字符粘貼至光標後
    Ctrl+t 交換光標處和之前的單詞位置
    Alt +f 向右移動一個單詞
    Alt +b 向左移動一個單詞
    Alt +r 清除全部內容
    Alt +d 從光標處向右刪除至單詞尾
    Alt +c 從光標處開始向右更改為首字母大寫的單詞
    Alt +u 從光標處開始,將右邊一個單詞更改為大寫
    Alt +l 從光標處開始,將右邊一個單詞更改為小寫
    Alt +t 交換光標處和之前的單詞位置
    Alt +N 提示輸入指定字符後,重復顯示該字符n次(n表示具體的數 字)
    八、使用ghome-ternima
    Ctrl-Shift-n 創建新窗口
    Ctrl-Shift-q 關閉當前窗口
    Ctrl-Shift-t 創建一個標簽頁
    Ctrl-Shift-w 關閉一個標簽頁
    Ctrl-Paup/padn 切換到上一個/下一個標簽頁
    Ctrl-Shift-c 復制選中的文本
    Ctrl-Shift-v 把文本粘貼到當前光標處
    九、文件管理
    1、文件系統
    文件和目錄被組織成一個倒根樹結構。
    文件系統從根目錄下開始,
    用“/",文件名區分大小寫,
    以.開頭的文件為隱藏文件,
    路徑分隔符“/”
    文件有兩類數據,
    元數據metadata
    數據 data
    文件名最長255個字節,包含路徑在內文件名稱最長4095個字節
    藍色 -->目錄;綠色 --> 可執行文件 ; 紅色 - -> 壓縮文件;淺藍色 --> 鏈接文件;灰色-->其他文件
    2、Linux根目錄下的目錄的作用
    /boot: 引導文件存放目錄,內核文件、引導加載器都存放於此
    /bin : 供所有用戶使用的基本命令
    /sbin: 管理類的基本命令
    /lib : 啟動時程序依賴的基本共享庫文件以及內核模塊文件
    /lib64: 專用於x86_64系統上的輔助共享庫文件存放位置
    /etc: 配置文件目錄
    /home : 存放著普通用戶的家目錄
    /root : 管理員root的家目錄
    /media: 便攜式移動設備掛載點
    /mnt : 臨時文件系統掛載點
    /dev : 設備文件及特殊文件存放位置
    /opt: 第三方應用程序的安裝位置
    /srv: 系統上運行的服務用到的數據
    /tmp: 臨時文件存儲位置
    /proc: 用於輸出內核與進程信息相關的虛擬文件系統
    /sys: 用於輸出當前系統上硬件設備相關信息虛擬文件系統
    /selinux:securityenhanced Linux,selinux相關的安全政策等信息的存儲位置
    3、Linux下的文件類型
    -:普通文件
    d:目錄文件
    b:塊設備
    c:字符設備
    l:符號鏈接文件
    p:管道文件pipe
    s:套接字文件socket
    4、顯示當前工作目錄
    每個shell和系統進程都有一個當前的工作目錄
    1.pwd 顯示當前的工作目錄
    -p 顯示真實物理路徑
    -L 顯示鏈路路徑(默認)
    5、路徑的表示方式
    絕對路徑:以正斜杠開始,是從根目錄開始到達目標目錄
    相對路徑:不以正斜杠開頭,從當前目錄開始到達目標目錄
    6、更改目錄
    cd 單獨一個cd命令會從當前目錄切換至登錄用戶的家目錄
    cd 目標路徑:從當前目錄切換至目標目錄
    7、文件通配符
    [:digit:]:任意數字,相當於0-9
    [:lower:]:任意小寫字母
    [:alnum:]:任意數字或字母
    [:blank:]:水平空白字符
    [:space:]:水平或垂直空白字符
    [:punct:]:標點符號
    [:print:]:可打印字符
    [:cntrl:]:控制(非打印)字符
    [:graph:]:圖形字符
    [:xdigit:]:十六進制字符
    8、創建空文件和刷新時間
    touch 選項 文件路徑 : 創建一個文件
    -a 僅改變 atime和ctime
    -m 僅改變 mtime和ctime
    -t [[CC]YY]MMDDhhmm[.ss]
    指定atime和mtime的時間戳
    -c 如果文件不存在,則不予創建
    9、復制文件或目錄
    cp 選項 原文件路徑(src) 目標文件路徑(dest)
    -i:覆蓋前提示
    –n:不覆蓋,註意兩者順序
    -r: -R: 遞歸復制目錄及內部的所有內容
    -a: 歸檔,相當於-dR --preserv=all
    -d:--no-dereference --preserv=links 不復制原文件,只復制鏈名
    -p: 等同--preserv=mode,ownership,timestamp
    -v: --verbose 顯示復制的過程
    -f: --force 當普通用戶對某目錄有rx權限時,使用-f可以將沒有修改 權限的文件強制覆蓋。即刪除再創建
    src是文件:
    如果dest不存在:新建dest,並將src中內容填充至dest中
    如果dest存在:
    如果dest是文件:將src的內容覆蓋至dest中,基於安全,建 議為cp命令下使用-i選項
    如果dest是目錄:在dest下新建與src同名的文件,並將src中 的內容填充至新文件中
    src是目錄:此時使用選項-r
    如果dest不存在:則創建指定目錄,復制src目錄中所有文件至 dest中;
    如果dest存在:
    如果dest是文件:報錯
    如果dest是目錄:將src目錄下所有文件或目錄一次復制至 dest目錄下
    10、移動和重命名文件
    mv 選項 src dest
    -i :交互式
    -f :強制
    -r :遞歸
    11、刪除文件
    rm 選項 目標路徑
    -i:交互式
    -f:強制刪除
    -r:遞歸
    12、tree 顯示目錄樹
    -d :只顯示目錄
    -L level:指定顯示的層級數目
    -p pattern:只顯示由指定pattern匹配到的路徑
    13 創建目錄
    mkdir 目錄路徑 在該目錄下創建一個目錄
    -p:存在於不報錯,且可自動創建所需的各目錄
    -v:顯示詳細信息
    -m mode:創建目錄時直接指定權限
    14、刪除空目錄
    rmkdir 目錄路徑 刪除這個空目錄
    -p:遞歸刪除父空目錄
    -v:顯示詳細信息
    rm -r:遞歸刪除目錄樹
    十、目錄、元數據、inode表與文件
    人是通過目錄文件名來引用一個文件,每一個文件都有一個相對應的i元數據,每一個元數據都對應著一個inode號,目錄是目錄下的文件和文件inode號之間的映射
    1、元數據裏面包括:
    文件類型,權限,UID,GID
    鏈接數
    該文件的和不同的大小和不同的時間戳
    指向磁盤上文件的數據塊指針
    有關文件的其他數據
    2、在cp的命令:
    分配一個空閑的inode號,在inode表中生成新的條目
    在目錄中創建一個目錄項,將名稱與inode編號關聯
    拷貝數據生成新的文件
    3、rm命令
    鏈接數遞減,從而釋放的inode號可以被重用
    把數據塊放在空閑列表中
    刪除目錄項
    數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被
    覆蓋
    4、mv和inode
    如果mv命令的目標和源文件在相同的文件系統,作為mv命令
    用新的文件名創建對應新的目錄項
    刪除舊目錄條目對應的舊的目錄名
    不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被 移動
    如果目標和源不同的文件系統,mv相當於cp和rm
    十一、軟/硬鏈接
    1、硬鏈接
    創建硬鏈接會增加額外的記錄項以引用文件
    對應於同一文件系統上一個物理文件
    每個目錄引用相同的inode號
    創建時鏈接數遞增
    刪除文件時:
    rm命令遞減計數的鏈接,文件要存在,至少有一個鏈接數
    當鏈接數為0時,該文件被刪除
    不能跨越分區
    創建硬鏈接的語法:
    ln filename [linkname]
    2、軟鏈接
    一個符號鏈接指向另一個文件
    ls - l的 顯示鏈接的名稱和引用的文件
    一個符號鏈接的內容是它引用文件的名稱
    可以對目錄進行
    可以跨分區
    指向的是另一個文件的路徑;其大小為指向的路徑字符串的
    長度;不增加或減少目標文件inode的引用計數;
    語法:
    ln -s filename [linkname]
    3、查看文件類型
    文件可以包含多種類型的數據使用file可以檢查文件的類型,然後確定適合的命令或應用程序使用,其語法規則為:
    file 選項 文件目錄路徑
    -b :列出文件辨識結果時,不顯示文件名稱
    -f filelist: 列出文件filelist中文件名和文件類型
    -F:使用指定分隔符號替換輸出文件名後默認的:分隔符
    -L:查看對應軟鏈接對應文件的文件類型
    --help:顯示命令在線幫助

LINUX 入門及一些基本的操作