1. 程式人生 > >Linux學習(一)

Linux學習(一)

重新 可用 ctrl nali 文本 小寫 文件已存在 lock water

目錄

1.歷史發展
2.Linux入門
3.使用幫助
4.文件管理
5.重定向和管道

一、歷史發展

1.發展歷史進程

2.入門基礎知識

二、Linux入門

1.用戶登錄

     root用戶   超級用戶,接近完整的系統控制  除非必要不要登錄  # 
     普通用戶  權限有限  $

2.終端 terminal

     tty 顯示當前終端

3.shell介紹

     接收用戶輸入的命令送去內核執行,人機交互的語言  
     echo $SHELL   顯示當前的shell的類型
     cat  /etc/shells   顯示當前系統所使用的所有shell

4.執行命令

     命令提示符prompt  
            [root@localhost~]#    
            echo $PS1  顯示當前的提示符格式

技術分享圖片

            PS1=’\[\e[31m\][\u@\h\W]\\$\[\e[0m\] ‘  改變提示符                 
                      {顏色  31m-38m}
            輸入命令後回車執行命令
     shell中可執行的命令
            內部命令
                enable   顯示所有已激活的內部命令
                enable command   激活被禁用的內部命令
                enable |wc -l   顯示激活中的內部命令的數量
                enable -a   顯示所有內部命令
                enable -a  |wc -l    顯示所有內部命令的數量
                enable -n    顯示所有被禁用的內部命令
                enable -n command    禁用某個內部命令
            外部命令   
                whereis; which  -a  | -- skip - alias
                hash 緩存(執行外部命令)   
                hash   顯示所有被hash的命令路徑
                        -l   顯示所有被hash的命令路徑,包含別名
                        -d 別名   刪除指定別名的hash路徑
                        -r   清空所有的hash
                        -t 別名   顯示指定別名的hash路徑
                        -p 路徑 別名    手工增加一條hash
     執行一條命令時的查找順序 
             別名→內部命令→外部命令→hash→PATH
     type  區別命令類型    
              type command  顯示命令類型
     alias 別名
              alias  顯示所有的別名信息
            unalias  -a  別名   取消所有別名
              nano  /etc/bashrc   對所有用戶將別名保存
            nano  ~/.bashrc   對當前用戶將別名保存
              ‘command’ ; “\command” 
                                                                       原命令與別名一樣,執行原命令
            /path/command(外部命令)   
     命令執行語法  
               -   短選項    例如  -p
               --  長選項   例如  --help
              ; 連接符  前一條命令執行結束再執行下一條命令
               \   命令換行符
               多個選項以及多參數和命令直接使用空白字符分隔

5.簡單命令

     date時間 
                 date +%Y   年
                         +%m  月
                         +%d   日 
                        +%H  小時
                        +%M  分
                         +%S   秒
                        +%w  星期 
                        +%F  年-月-日
                        +%T  時:分:秒
                 date  月日時分年[.秒]
                 date -s  ‘年-月-日 時:分:秒’
                 hwclock  硬時間
                clock   軟時間
                    clock  -s   將軟時間寫入硬時間  關機是自動進行
                                -w  將硬時間寫入軟時間  開機時自動進行
     cal -y  日歷
     nano  編輯內容 
     poweoff/init0  關機
     reboot/init 6   重啟
     shutdown  -r    重啟
                        -h    關機
                        time   指定時間關機
                        -c    取消關機計劃
     whoami   顯示當前用戶名
     who an /are/is 任意字符   顯示當前的終端信息
     who  顯示所有終端信息
     w      顯示所有終端的詳細信息及所做的操作
     screen 
                  下載

技術分享圖片

                    screen -s 會話名  創建指定名的screen會話
                                -x 會話名  加入已創建的screen會話
                                -ls             查看所有已打開的screen會話
        echo  
                    echo $()   或  ``   引用命令執行的結果

技術分享圖片

                     echo {}   重復字符的簡化形式

技術分享圖片

                      echo $(()) 或 $[]  進行運算

技術分享圖片

                      echo ${}   或 "$變量名" 劃定變量名的起止範圍

技術分享圖片

6.tab鍵 補全

7.命令行歷史

         !n  重復某條歷史(此處n為數字)

技術分享圖片

          ↑   重復上一條命令
         !string   重復前一個以“string”開頭的命令
          !?string  重復前一個包含“string”的命令       string 字符串

技術分享圖片

          history的命令     
                    history 查詢歷史記錄
                    history -c 清空當前的所有歷史記錄  
                    history -dn 刪除某條歷史(此處n為數字)
                    history -a 將當前終端新執行的命令寫入歷史記錄文件   (默認為~/.bash_history)
                    history -w /path/filename.txt 將歷史記錄寫入指定文件

技術分享圖片

           調用歷史參數     
                     要重新調用前一個命令中最後一個參數:
                                !$  
                                Esc, .(點擊Esc鍵後松開,然後點擊 . 鍵)
                                Alt+ .(按住Alt鍵的同時點擊 . 鍵) 

8.bash快捷鍵

            ctrl + l  清屏
                  + o 執行當前命令 並重新顯示本命令
                  + s 鎖定屏幕 仍可以運行
                  + q 解鎖
                  + c 強制結束
                  + z 暫停命令(fg可以再切換回來,bg可以查看當前終端後臺有多少暫停的程序)
                  + a 光標起到命令行首
                  + e 光標移到命令行尾
                  + u 刪除光標之前的內容
                  + k 刪除光標之後的內容 
            ctrl+shift+c 復制選中的文本
            ctrl+shift+v 把文本粘帖到當前光標處   
            Alt  +f  向右移動一個單詞
                  +b 向左移動一個單詞
                  +r  刪除全部內容
                +N 提示輸入指定字符[後輸入]後,重復顯示該字符N次(N表示具體的數字)

三、使用幫助(獲取幫助的能力覺得了技術的能力)

1.whatis

                                                          僅能提供命令基本的介紹。不提具體用法。
           whatis command                基於數據庫的查找
           man -f comman                  優點:檢索速度快
                                                          缺點:缺乏實時性

           makewhatis   在CentOS6
           mandb   在CentOS7

2.--help

3.man info

           man   統稱為Linux手冊,常用於命令參考
                  man  cmd   查看此cmd的幫助
                  q  退出man
            info 適合通用文檔參考
                  info  cmd   查看此cmd的幫助

4.使用本地幫助文檔

            /user/sharel/doc

5.官網在線

6.其他網站搜索

四、文件管理

1.文件系統結構元素

            Linux系統文件區分大小寫
            元數據 metadata   數據 data 

2.創建 查看文件

            pwd  當前目錄路徑  
                    pwd -P 當前目錄為軟鏈接時,顯示其源目錄
                    oldpwd  上一次目錄路徑   
             cd 改變目錄  
                    cd ..  切換到父目錄
                    cd     切換到當前目錄

技術分享圖片

             ls 查看目錄
                    ls -a 顯示所有文件
                     ls -l  長列出
                    ls -R  遞歸
                     ls -ld  顯示指定目錄的詳細信息
                    ls -1  豎顯示
                    ls -S  按文件大小降序 
                     ls -T  按修改時間從新到舊
                    ls -u  按訪問時間
                    ls -U  按文件存放的先後順序
                     ls -X  按文件後綴排序
                    ls -i    顯示inode號
             stat     
                                                    atime   讀取文件內容 訪問時間
                     三個時間戳             mtime   改變文件內容 修改時間
                                                    ctime   元數據發生改變   改變時間
             touch創建文件    
                     touch filename  
                                 當文件不存在時,則創建filename
                                 當文件已存在時,則更新全部時間戳 
                     touch -t [YY]MMDDhhmm[.ss] filename
                     touch -a    改變 atime ctime
                     touch -m   改變  mtime ctim
                     touch -c    文件存在更新全部時間,不存在不創建文件
              文件通配符
                     * 匹配零個或多個字符 
                    ? 匹配任何單個字符 *
                     [0-9]    [a-z]    [A-Z]   
                     ^ 托字符  除了
                     [:upper:]  大寫字母
                    [:lower:]   小寫字母 
                     [:alpha:]   大小寫字母
                    [:alnum:]   字母和數字 
                     [:space:]    水平或垂直空白字符
                    [:blank:]    空格

3.復制 轉移 刪除文件

              cp復制
                      cp A B

技術分享圖片

                        cp -i   覆蓋前提示
                      cp -n  不覆蓋 註意順
                        cp -r   -R 遞歸
                      cp -a  歸檔
                      cp -d  不復制原文件只復制鏈
                        cp -p  復制所有的
                      cp -v  顯示復制的過程
                      cp -f   有權限 覆蓋在創建
                 mv -i  覆蓋前提示
                       -f  強制覆蓋
                 rm -i   刪除前提示
                      -f   強制刪除
                      -r   刪除目錄   
                 rename  .txt  .doc*  .txt

4.目錄操作

               tree  顯示目錄樹
                     -d 只顯示目錄
                     -L n  只列出指定層級的目錄(此處n為數字)
                     -P通配符  只列出匹配到的文件和所有的目錄
               mkdir  創建目錄
                      -p  一次性創建多級目錄
                      -v  創建時顯示詳細信息
                    -m 創建時直接設置權限
               rmdir  刪除空目錄  
                       -p  一次性刪除多級空目錄
                    -v  顯示刪除的詳細信息     

5.inode

               128字節  64(類型,權限,鏈接數,大小,UID,GID,時間,其他信息) 
                索引節點     cp   rm   mv   

6.軟鏈接硬鏈接

                ln filename linkname  不能跨分區
                ln -s filename linkname  可以跨分區 源被刪除 鏈接也不可用
                file 確定文件內容   
                       -b   查看時不顯示文件名
                       -f    列出文件中文件的文件類型
                       -f /path/filename   文件中每個文件路徑一行。從而可批量查看多個文件的類型
                    -F    符號 按指定符號做為分隔符輸出 默認是  :
                    -L    當查詢的對象為軟鏈接時,顯示源文件的類型
                    --help  查詢在線幫助 

五、重定向和管道

1.三種I/O設備

                 指令+數據
                 Input  讀入數據      Output  輸出數據  
                 stdin  標準輸入       stdout  標準輸出      stderr   標準錯誤 

2.把I/O重定向入文件

                 > 正確輸出  
                    文件不存在時直接創建新文件 
                    存在時  >  直接覆蓋    >>  追加
                 2>錯誤輸出
                 &>全部輸出
                 2>&1錯誤結果轉化正確
                 1>&2 正確的轉化錯誤    
                 ()合並多個程序     

3.tr 轉換和刪除

                 tr  -c    選取字符集的補集
                     -d    刪除
                     -s    連續重復的字符以一個字符表示
                  << EOF  
                  >EOF   終止符

技術分享圖片

4.使用管道鏈接命令

                 | 管道符  使用前加空格  
                                連接命令   cmd1 | cmd2 | cmd3
                                將正確的結果傳遞給管道 
                                   錯誤的結果通過   2>&1  ;    |&   傳遞結果
                                組合多種工具

技術分享圖片

                  less  一頁一頁查看
                         ls -l /etc | less
                  mail 通過mail發送輸出     
                          echo “test mail” | mail -s “test user”             

5.tee 重定向到多個目標

                  tee -a    追加
                          command1 |tee [-a] file |command2

Linux學習(一)