1. 程式人生 > >Linux匯總一——Linux程序管理,Linux終端,Linux命令格式、命令類型及Linux命令幫助

Linux匯總一——Linux程序管理,Linux終端,Linux命令格式、命令類型及Linux命令幫助

for nco argument tomcat empty 環境變量 地址空間 偽終端 多個進程

本章blog主要匯總了Linux程序管理,linux應用程序的分類,Linux終端類型,Linux命令格式、命令類型及Linux命令幫助等相關知識點,並介紹了man命令,which命令,type命令,tty命令,hash命令,dirname命令,basename命令,who命令的相關功能及選項。

本章Blog相關Linux知識點


計算機=硬件+軟件 。

馮諾依曼理論,五大部件:CPU —— 運算器、控制器, 存儲器,輸入設備,輸出設備。

Shell 環境是通過環境變量進行配置的 ,環境變量保存對應用程序的配置,在當前進程有效 。若長期有效,需保存到配置文件中。

  • 語言分類:

編譯型語言:寫的程序在被執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件;

解釋型語言:解釋性語言在運行程序的時候才翻譯,效率比較低。

相比較而言,兩種不同型語言只是翻譯的時間不同

  • 程序與進程的關系:

程序並不能單獨執行,只有將程序加載到內存中,系統為他分配資源後才能夠執行,這種執行的程序稱之為進程,也就是說進程是系統進行資源分配和調度的一個獨立單位,每個進程都有自己單獨的地址空間。所以說程序與進程的區別在於,程序是指令的集合,是進程運行的靜態描述文本,而進程則是程序在系統上順序執行時的動態活動。

進程和程序並不是一一對應的,一個程序執行在不同的數據集上就成為不同的進程。一般來說,一個進程肯定有一個與之對應的程序,而且只有一個。而一個程序有可能沒有與之對應的進程,也有可能有多個進程與之對應。

  • 環境變量:僅當前進程有效 ,命名的內存空間

引用環境變量:echo ${ 變量 } 例:#echo $PS1

$PS1 組成格式為 [\u@\h \W]\$ ,其中 \u表示登錄的用戶名 ,\h 表示主機名,\W表示工作目錄的路徑基名

  • linux路徑,路徑分隔符 :/

相對路徑:從當前位置開始的路徑

絕對路徑:從頂層開始的路徑

  • Linux文件系統特性 :

文件名可以使用除 / 號外的任意字符 ,但長度不能超過255字符

嚴格區分大小寫

Linux程序管理


程序四要素:二進制文件、配置文件、庫文件及幫助文件

  • 程序管理器:

Debian 的程序包管理器 :deb

SuSE、Redhat的程序包管理器 :rpm

  • 通用軟件

內核:文件系統(File system)、網絡協議棧、進程管理、加密解密機制、驅動程序、創建索引加密、解密功能;TCP/IP協議 (內核模塊)

  • 應用軟件

系統管理:網絡配置、文件系統(分區、raid)、用戶、文件(創建、刪除、移動、權限)、加密解密、內核(編譯)、啟動過程、程序包管理

網絡服務管理:web(Apache,nginx,mysql,php)、NFS、DNS、FTP、Postfix/D :ovecot 、網絡安全(Iptables、tcp_Wrapper)

Mysql:CRUD、索引、存儲引擎、備份恢復、集群、分片

集群:LB、HA、Hadoop 、GFS

WEB:Nginx 、Haproxy、Keeplived、tomcat、分布式文件系統、CDN、Nosql

虛擬化:Xen 、KVM、LXC/openVZ

Laas :Openstack

自動化運維:zabbix 、nginos 、Python

大規模並行處理平臺:hadoop

Linux命令終端類型


  • linux終端類型:

  串行終端,串行端口終端(Serial Port Terminal)是使用計算機串行端口連接的終端設備。類型為/dev/ttys/#

  物理終端,直接接入計算機顯示器通常被稱為物理終端,如/dev/console

  虛擬終端 ,虛擬終端附加在物理終端之上的,是以軟件方式虛擬實現的終端。系統開機後會啟動6個虛擬終端,在CentOs6系統,可以使用快捷鍵 Ctrl+Alt+F[1-6]切換虛擬終端。類型為/dev/tty#

  偽終端(模擬終端)是純粹的軟件方式實現,而且不會附加在本地物理終端上,建立一個telnet或ssh連接使用的終端都是偽終端,如客戶端軟件ssh ,CRT 等。類型為 /dev/pts/#。

Ctrl +c 取消當前程序運行

Ctrl+Alt+F[1-6] 啟動命令界面,Ctrl+Alt+F7啟動圖形界面(先啟動圖形功能#startx)

命令 #startx & 表示在後臺運行

Shift +Pageup/Pagedown 翻屏查看命令界面之前的頁

[root@vm ~]# tty    # 顯示當前終端訪問類型
/dev/pts/0    # 代表了是模擬終端

[root@vm ~]# who    # 查看當前系統登錄的所有用戶及其信息
root     tty1         2018-09-25 18:38    # 代表了是本機的虛擬終端登陸
root     pts/0        2018-09-25 18:39 (192.168.4.101)    # 代表了是本機的模擬終端登陸

Linux命令類型及命令幫助信息


  • linux命令格式:

command options arguments

命令 選項 參數

選項:調整命令的執行特性

  短選項:-char ,可合並 ;

  長選項:--word ,多個選項之間必須以空格分隔;

參數:命令的作用對象

  有些命令可以帶多個參數;

  各參數之間使用空格分隔;

  • Linux命令類型 :

  alias:別名。

  keyword:關鍵字,Shell保留字。

  function:函數,Shell函數。

  builtin:內建命令,Shell內建命令。

  file:文件,磁盤文件,外部命令。

  unfound:沒有找到。

  • linux命令幫助:

內置命令:

  # help COMMAND 內部命令獲取幫助

外置命令:

  # COMMAND --help 外部獲取命令幫助

  # man COMMAND 查看命令man手冊

  # info COMMAND 在線文檔

  應用程序自帶的文檔:/usr/shared/doc 幫助文檔

  google 網絡查看幫助

[root@vm ~]# help cd    # 對內部命令cd查看幫助信息
cd: cd [-L|-P] [dir]
    Change the shell working directory.

[root@vm ~]# date --help    # 對外部命令date 查看幫助信息
Usage: date [OPTION]... [+FORMAT]
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

[root@vm ~]# man cd    # 對命令cd查看man幫助信息

[root@vm ~]# man ls    # 對命令ls查看man幫助信息
      
[root@vm ~]# info ls    # 命令ls查看幫助信息
  • man的使用機制:man其實能為命令(普通命令、管理命令)、程序的配置文件格式、系統調用、庫調用、遊戲及其他不便歸類的文件提供幫助信息

翻屏:

  space 向文件尾部翻一屏

  b 向文件首部翻一屏

回車鍵:向文件尾部翻一行

k 向文件首部翻一行

  Ctrl +d 向文件尾部翻半屏

  Ctrl +u 向文件首部翻半屏

文本搜索:

  /keyword 向文件尾部搜索

  ?keyword 向文件首部搜索

  n 跟搜索命令相同的方向(下一個)

  N 跟搜索命令相反的方向(上一個)

  q :退出

man 分段機制:1-8

1. 用戶命令 2.系統調用 3.庫 調用 4.設備文件 5.文件格式 6.遊戲 7.雜項 8.管理命令

  • type命令

type 命令用來顯示指定命令的類型,判斷給出的指令是內部指令還是外部指令。

選項:

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

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

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

[root@vm ~]# type ls
ls is aliased to `ls --color=auto
[root@vm ~]# type cd
cd is a shell builtin

[root@vm ~]# type date
date is /bin/date

[root@vm ~]# type nginx
-bash: type: nginx: not found

[root@vm ~]# type -p date
/bin/date

[root@vm ~]# type -t ls
alias
  • hash命令:

hash命令:顯示、添加或清除哈希表。linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令時,hash表會記錄下這條命令的路徑,就相當於緩存一樣。第一次執行命令shell解釋器默認的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令才會去PATH路徑下尋找。

[root@vm ~]# hash    # 查看hash表的內容
hits    command
   4    /usr/bin/tty
   1    /bin/date
   5    /bin/rpm
   3    /usr/bin/yum
   1    /usr/bin/who
   6    /usr/bin/man
   1    /usr/bin/info
   3    /bin/ls

[root@vm ~]# hash -h    # hash 命令幫助
-bash: hash: -h: invalid option
hash: usage: hash [-lr] [-p pathname] [-dt] [name ...]

[root@vm ~]# hash -l    # hash 命令列表
builtin hash -p /usr/bin/tty tty
builtin hash -p /bin/date date
builtin hash -p /bin/rpm rpm
builtin hash -p /usr/bin/yum yum
builtin hash -p /usr/bin/who who
builtin hash -p /usr/bin/man man
builtin hash -p /usr/bin/info info
builtin hash -p /bin/ls ls

[root@vm ~]# hash -r    # 清空hash表

[root@vm ~]# hash
hash: hash table empty
 
  • whatis命令

whatis命令:是用於查詢一個命令執行什麽功能,並將查詢結果打印到終端上。另whatis命令可顯示手冊部分的頁眉行,然後可以發出man命令以獲取附加的信息。whatis命令等同於使用man -f命令。

  • dirname命令:

dirname命令去除文件名中的非目錄部分,僅顯示與目錄有關的內容。

[root@vm ~]# dirname  /usr/local/bin/
/usr/local

[root@vm ~]# dirname /usr/local/bin
/usr/local

[root@vm ~]# dirname /root/
/

[root@vm ~]# dirname /
/
  • basename命令:

basename命令用於打印目錄或者文件的基本名稱。basename和dirname命令通常用於shell腳本中的命令替換來指定和指定的輸入文件名稱有所差異的輸出文件名稱。

[root@vm ~]# basename /usr/local/bin/
bin

[root@vm ~]# basename /usr/local/bin
bin

[root@vm ~]# basename /root/
root

[root@vm ~]# basename /
/
  • which命令:

which命令用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時需要遍歷的目錄。which指令會在環境變量$PATH設置的目錄裏查找符合條件的文件。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

[root@vm ~]# which ls
alias ls=ls --color=auto
    /bin/ls

[root@vm ~]# which vi
alias vi=vim
    /usr/bin/vim

[root@vm ~]# which pwd
/bin/pwd

Linux匯總一常用命令


# tty :顯示當前終端對應的終端設備文件,即終端訪問類型

# who :查看當前系統登錄的所有用戶及其信息

# hash:顯示、添加或清除hash 表

# type COMMAND:顯示指定命令類型

# dirname PATH :查看路徑目錄名

# basename PATH:查看路徑基名

# which COMMAND:查看一個可執行程序的具體路徑,即外部命令的位置

# help BuiltinCommand :查看內置命令幫助信息

# COMMAND --help :獲取外部命令幫助

# man COMMAND:查看命令手冊

# info COMMAND 在線文檔

Linux匯總一——Linux程序管理,Linux終端,Linux命令格式、命令類型及Linux命令幫助