linux基本命令及使用方法

来源:http://www.cnblogs.com/yuezhimi/archive/2017/05/01/6791681.html
-Advertisement-
Play Games

shell環境: shell:命令解釋器,是Linux 系統的用戶界面,提供了用戶與內核進行交互操作的一種介面,它接收用戶輸入的命令並把它送入內核去執行。 bash:是GNU 計劃中重要的工具軟體之一,目前也是 Linux 標準的shell ,與sh相容 echo $PATH 顯示當前使用的shel ...


shell環境:

  shell:命令解釋器,是Linux 系統的用戶界面,提供了用戶與內核進行交互操作的一種介面,它接收用戶輸入的命令並把它送入內核去執行。

  bash:是GNU 計劃中重要的工具軟體之一,目前也是 Linux 標準的shell  ,與sh相容

    echo $PATH  顯示當前使用的shell

    cat /etc/shells  顯示系統使用的所以shell

  PATH:決定了shell將到哪些目錄中尋找命令或程式,PATH的值是一系列目錄,當您運行一個程式時,Linux在這些目錄下進行搜尋編譯鏈接。

     echo $PATH  查看PATH環境變數的值

linux命令的分類:

         內部命令:屬於shell解釋器的一部分

         外部命令:獨立於shell解釋器之外的程式

命令的通用格式:

         命令字 [選項] [參數]

                   長選項:例如“ls -a”

                   短選項:例如“ls --help”

                   多個短選項可合併使用,例如“ls -alh”

                   長選項不能合併,只能分開

                   參數:命令的對象,如文件、目錄名等

查看命令的類型:

type命令:type [選項] [參數]

                   -p 如果給出的指令為外部指令,則顯示其絕對路徑。

                   -a 在環境變數“PATH”指定的路徑中,顯示給定指令的信息,包括命令別名。

                   -t 輸出“file”、“alias”或者“builtin”,分別表示給定的命令為“外部指令”、“命令別名”或者“內部指令”。

                   [root@localhost ~]# type cd

                    cd is a shell builtin                    #cd 是一個shell內部命令

                   [root@localhost ~]# type ifconfig

                    ifconfig is /sbin/ifconfig         #ifconfig是一個外部命令

查看命令的位置:

which命令:which 可執行文件名

                   -n 指定文件名長度指定的長度必須大於或等於所有文件中最長的文件名

                   -p 與-n參數相同但此處的包括了文件的路徑

                   -a 將PATH目錄中可以找到指令均列出不止第一個而已

                   -w 指定輸出時欄位的寬度

                  -V 顯示版本信息

[root@bogon ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@bogon ~]# which ip
/usr/sbin/ip
[root@bogon ~]#

whereis命令:whereis [選項] 文件名

                   -b 定位可執行文件。

                   -m 定位幫助文件。

                   -s 定位源代碼文件。

                   -u 搜索預設路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。

                   -B 指定搜索可執行文件的路徑。

                   -M 指定搜索幫助文件的路徑。

                   -S 指定搜索源代碼文件的路徑。

[root@bogon ~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
[root@bogon ~]# whereis -b cd
cd: /usr/bin/cd

命令別名:

         #alias NAME='VALUE'

         僅對當前用戶:~/.bashrc

         對所有用戶有效:/etc/bashrc

         撤銷別名:unalias

 

[root@bogon ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias netconf='vim /etc/sysconfig/network-scripts/ifcfg-eno16777728'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

命令的補全:

         用戶給定的字元串只有一條惟一對應的命令,直接補全,否則再次Tab會給出列表

         路徑補全:Tab如果唯一則直接補全,否則再次Tab給出列表

命令的歷史:

歷史文件:~/.bash_history

history命令:顯示曾經執行過的命令

                   -c:  清空命令歷史

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

                   #:  顯示最近的# 條歷史

                   -a:  追加本次會話新執行的命令歷史列表至歷史文件

                   -n:  讀歷史文件中未讀過的行到歷史列表

                   -r:  讀歷史文件附加到歷史列表

                   -w:  保存歷史列表到指定的歷史文件

                   -p:  展開歷史參數成多個行,但不存在歷史列表中

                   -s:  展開歷史參數成一行,附加在歷史列表後

命令歷史相關變數:

          HISTSIZE :命令歷史記錄的條數;

          HISTFILE :指定歷史文件,預設為~/.bash_history;

          HISTFILESIZE :命令歷史文件記錄歷史的條數;

          HISTTIMEFORMAT=“%F %T“ 顯示時間

          HISTIGNORE=“str1:str2:… “  忽略string1,string2

命令行歷史快捷鍵

         上下鍵:可瀏覽之前使用過的命令

         ctrl+p:重覆前一個命令

         !字元串: 重覆前一個以“字元串”開頭的命令

         !num: 按照history 命令輸出中的序號重覆對應命令

         !?:字元串: 重覆前一個包含abc的命令

         !-n : 重覆n

         strl -r:從命令歷史中搜索命令

         esc . :調用上一個命令中最後一個參數

         !$:調用上一個命令中最後一個參數

         !^:調用上一個命令中的第一個參數

         !*:調用上一個命令中的全部參數

         !n:調用上一個命令中的第n個參數   

命令的幫助:

         help命令:

                   用法1:help 內部命令字

                   用法2:命令字 --help          #使用於大多數外部命令 

         man命令:提供命令幫助的文件

             手冊頁存放在/usr/share/man

                   man 命令的配置文件:/etc/man.config | man_db.conf

                   man命令操作方法:使用less命令實現

                            Space:  向文件尾翻屏

                            b, ^B:  向文件首部翻屏

                            d, ^D:  向文件尾部翻半屏

                            u, ^U:  向文件首部翻半屏

                            RETURN:  向文件尾部翻一行

                            y :向文件首部翻一行

                      q:  退出

                            # :跳轉至第#行 行

                            1G: 回到文件首部

                            G:直接到文件尾部

                            /KEYWORD:字元串搜索 n下一個匹配到的字元串 N上一個

                   man章節:

                       1 使用者在shell中可以操作的指令或可執行檔

                            2 系統核心可呼叫的函數與工具等

                            3 一些常用的函數(function)與函數庫(library),大部分是C的函數庫(libc)

                            4 裝置檔案的說明,通常在/dev下的檔案

                            5 設定檔或者是某些檔案的格式

                            6 游戲(games)

                            7 慣例與協定等,例如Linux檔案系統、網路協定、ASCII code等等的說明

                            8 系統管理員可用的管理指令

                            9 跟kernel有關的文件

                   SYNOPSIS 摘要 :

                       [] :可選內容

                            <>:  必選內容

                            a|b :二選一

                            ...:  同一內容可出現多次

紅帽知識庫和官方線上文檔:

        http://kbase.redhat.com

         http://www.redhat.com/docs

         http://access.redhat.com

Linux 的兩種時鐘:

系統 時鐘:由Linux 內核通過CPU 的工作頻率進行的;

硬體 時鐘:主板

hwclock ,clock:  顯示硬體時鐘

-s, --hctosys  以硬體時鐘為準,校正系統時鐘

-w, --systohc  以系統時鐘為準,校正硬體時鐘

 時間管理:

date命令:按格式顯示或設置時間

         data [選項]... [格式]

         date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

                   -d, –date=STRING 顯示STRING指定的時間

                   -f, –file=DATEFILE 類似–date參數顯示DATEFILE文件中的每行時間

                   -ITIMESPEC, –iso-8601[=TIMESPEC] 以ISO 8601 格式顯示日期/時間。TIMESPEC為”date”(只顯示日期)、”hours”、”minutes”、”senconds”(顯示時間精度)之一,預設為”date”。

                   -r, –reference=FILE 顯示文件的最後修改時間

                   -R, –rfc-2822 以RFC-2822相容日期格式顯示時間

                   -s, –set=STRING 設置時間為STRING

               -u, –utc, –universal 顯示或設定為Coordinated Universal Time時間格式

         格式:可以使用“+”開頭的字元串指定其格式

                   %n : 下一行

                   %t : 跳格

                   %H : 小時(00-23)

                   %I : 小時(01-12)

               %k : 小時(0-23)

                   %l : 小時(1-12)

                   %M : 分鐘(00-59)

                   %p : 顯示本地 AM 或 PM

                   %r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)

                   %s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數

                   %S : 秒(00-60)

                   %T : 直接顯示時間 (24 小時制)

                   %X : 相當於 %H:%M:%S

                   %Z : 顯示時區

                   %a : 星期幾 (Sun-Sat)

                   %A : 星期幾 (Sunday-Saturday)

                   %b : 月份 (Jan-Dec)

                   %B : 月份 (January-December)

                   %c : 直接顯示日期與時間

                   %d : 日 (01-31)

                   %D : 直接顯示日期 (mm/dd/yy)

               %h : 同 %b

                   %j : 一年中的第幾天 (001-366)

                   %m : 月份 (01-12)

                   %U : 一年中的第幾周 (00-53) (以 Sunday 為一周的第一天的情形)

                   %w : 一周中的第幾天 (0-6)

                   %W : 一年中的第幾周 (00-53) (以 Monday 為一周的第一天的情形)

                   %x : 直接顯示日期 (mm/dd/yy)

                   %y : 年份的最後兩位數字 (00.99)

                   %Y : 完整年份 (0000-9999)

 

[root@bogon ~]# date "+現在時間是:%Y-%m-%d %H:%M:%S"
現在時間是:2017-05-01 21:59:23
[root@bogon ~]# date "+%Y-%m-%d %H:%M:%S" -d "-3 year"
2014-05-01 21:59:38    ## 顯示三年前的時間
[root@bogon ~]# date "+%Y-%m-%d %H:%M:%S" -d "+10 day"
2017-05-11 22:00:15    ##顯示十天後的時間
[root@bogon ~]#  date "+%s"
1493647224    ##顯示十天後的時間

 

         設置時間:

                   date -s "20161128 10:10:10"

 

[root@bogon ~]# cal    ##顯示日曆
      May 2017      
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

echo 命令:顯示文字

  語法:echo [-neE][ 字元串]

  說明:echo 會將輸入的字元串送往標準輸出。echo  需要使用-e  參數來列印轉義字元.

   -n  不要在最後自動換行

   -e  若字元串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出:

         \a  發出警告聲;

         \b  退格鍵

         \c  最後不加上換行符號;

         \n  換行且游標移至行首;

         \r  游標移至行首,但不換行;

       \t  插入tab; 

         \\  插入\ 字元;

         \0nnn  插入nnn (八進位)所代表的ASCII 字元

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

 括弧擴展:{ }

列印重覆字元串的簡化形式 

[root@bogon ~]# echo file{1,3,5}
file1 file3 file5

 ''單引號:強引用,單引號里的內容原樣不變,防止任何變數替換

 ""雙引號:弱引用,可防止通配符擴展,但允許變數替換

 ``反引號:命令引用,反引號里的指令會替換為執行結果

[root@bogon ~]# echo '$PATH'
$PATH
[root@bogon ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@bogon ~]# echo `pwd`
/root

重定向和管道:

         標準輸入輸出:

                   標準輸入:stdin-0 預設接受來自鍵盤的輸入

                   標準輸出:stdout-1 預設輸出到終端視窗

                   標準錯誤:stderr-2 預設輸出到終端視窗

         程式:指令+數據

         讀取數據:Input

         輸出數據:Output

         I/O重定向:改變預設位置

         重定向操作符:標準輸出和標準錯誤可以重定向到文件

                   >       把標準輸出重定向到文件

                   2>     把標準錯誤重定向到文件

                   &>    把所以輸出重定向到文件

                   註:>文件內容會被覆蓋,禁止內容覆蓋已有文件:set -c ,強制覆蓋:>|

                   >>     原有內容基礎上,追加內容

                   2>     覆蓋重定向錯誤數據流

                   2>>  追加從定向錯誤數據流

                   &>    標準輸出和錯誤輸出合併覆蓋重定向

                   &>> 標準輸出和錯誤輸出合併追加重定向

                   <       標準輸入重定向

                   <<終止詞                   把多行發送給stdin

[root@bogon ~]# uname -p > kernel.txt
[root@bogon ~]# cat kernel.txt
x86_64
[root@bogon ~]# uname -r >> kernel.txt
[root@bogon ~]# cat kernel.txt
x86_64
3.10.0-327.el7.x86_64

管道操作:

  管道操作為不同命令提供了協同工作的一種機制,位於管道符號左側的命令輸出的結果,將作為右側命令的輸入(處理對象),同一行命令中可以使用多個管道。   命令1 |命令2 |命令3

[root@bogon ~]# df -Th |grep "/$" 
/dev/mapper/centos-root xfs        32G  1.3G   31G   4% /
[root@bogon ~]# df -Th |grep "/$" |awk '{print $6}'
4%

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 數據定義語言 (Data Definition Language, DDL) 是SQL語言集中負責數據結構定義與資料庫對象定義的語言,由CREATE、ALTER與DROP三個語法所組成。資料庫對象包括表、視圖、索引、同義詞、序列等(TABLE/VIEW/INDEX/SYN/SEQUENCE)。我們先 ...
  • mysql命令[轉] 來自:http://www.cnblogs.com/zhangzhu/archive/2013/07/04/3172486.html 1、連接到本機上的MYSQL。首先打開DOS視窗,然後進入目錄mysql\bin,再鍵入命令mysql -u root -p,回車後提示你輸密碼 ...
  • --伺服器角色:--固定伺服器角色具有一組固定的許可權,並且適用於整個伺服器範圍。 它們專門用於管理 SQL Server,且不能更改分配給它們的許可權。 --可以在資料庫中不存在用戶帳戶的情況下向固定伺服器角色分配登錄。--按照從最低級別的角色(bulkadmin)到最高級別的角色(sysadmin) ...
  • 在五一的前一天,準備啟動資料庫完成我剩下的項目代碼時,資料庫配置管理器出現了一個讓人蛋疼的問題sqlserv配置管理器出現請求失敗或伺服器未及時響應關於這個問題的處理方法,經過我兩個小時的百度,網上對這個問題的解決方法有兩種,一、禁用SQL Server網路配置中的 MSSQLSERVER協議里的V ...
  • 方法1: 用SET PASSWORD命令 MySQL -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin mysqladmin -u root password "newp ...
  • 學習Hadoop,兩個東西肯定是繞不過,MapReduce和HDFS,上一篇博客介紹了MapReduce的處理流程,這一篇博客就來學習一下HDFS。 HDFS是一個分散式的文件系統,就是將多台機器的存儲當做一個文件系統來使用,因為在大數據的情景下,單機的存儲量已經完全不夠用了,所以採取分散式的方法來 ...
  • 作為小白的我,這個問題弄了半天才解決,特此記錄下。 兩張表:文章表和評論表 文章表(article):id 評論表(comment):id,c_aid 要求:查詢出所有文章及評論數量然後降序顯示(沒有評論的文章的評論數量則返回為0) SQL:select A.id, ifnull(AC.commen ...
  • ORACLE的預設賬號及密碼有以下三種: 用戶名:sys密碼:change_on_install 用戶名:system密碼:manager 用戶名:scott密碼:tiger 開始->cmd 運行以下命令:sqlplus / as sysdba 如果是用戶鎖定: alter user usernam ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...