1. 程式人生 > >Linux命令總結(部分說明)

Linux命令總結(部分說明)

linux命令總結(部分說明)


  1、登陸和開關機


  1. 關機
      
      halt poweroff init 0
      
      重啟
      
      reboot init 6 shutdown shutdown -r 重啟
      shutodwn -h 關機 shutdown -c 取消計劃關機 shutdown +0 馬上關機 +1 一分鐘後關機

      -X X分鐘後關機 20:00 今天20:00關機
      
      whoami 顯示當前的登錄用戶名
      
      who am i 顯示當前的登錄用戶名 終端名 登錄時間
      
      who 顯示當前所有的登錄用戶名 終端名 登錄時間


      
      w 顯示當前所有的登錄用戶名 終端名 登錄時間 登錄的來源 當前在做什麽
      
      2.切換用戶與當前工作目錄


su – 用戶名 切換用戶,並切換至用戶家目錄
  su 用戶名 非登陸切換用戶
  cd 相對或者絕對路徑 進入目錄
  -P 如果目標目錄是個軟鏈接目錄,則直接進入其源始目錄
  .. 進入上一級目錄
  cd 進入家目錄
  cd ~或直接 cd 進入家目錄
  cd – 進入上一次的工作目錄
  pwd 獲取當前目錄路徑
  

  3.基本常用命令


  date 獲取系統時間
  
  date -s “2018-1-20 13:50:11” 設置系統時間
  hwclock 或 clock 獲取原子時間


  -s 將硬時間寫入軟時間。
  -w 將軟時間寫入硬時間。
  cal 獲取日歷
  history 獲取命令的歷史記錄

hostname 獲取主機名

  
  中斷命令
  
  ctrl+C 強制中斷
  
  ctrl+d 正常中斷

  
  4.幫助命令文檔查詢


  
  type 用來判斷命令的類型
  
  enable 管理顯示內部命令
  
  enable command 禁用內部命令
  
  enable -n command 激活已禁用的內部命令
  
  help 內部命令
  
  外部命令 –help
  
  查看指定命令的幫助信息
  
  whereis command 查看命令的路徑(外部命令)和 幫助文檔的路徑


  
  which command 查看命令路徑
  
  man 檢索命令幫助文檔
  
  5.文件查詢


  
  ls 列出目錄的內容
  
  ls 列出目錄的內容
  
  -a 列出所有文件(包含隱藏文件)
  
  -A 列出所有文件(包含隱藏文件但不包含.和..)
  
  -l 長列出(即顯示屬性信息)
  
  -R 遞歸

  
  -ld 查看指定目錄的屬性
  
  -1 豎顯示
  
  stat 文件名
  
  查看一個文件的詳細屬性,包括三個時間戳。
  
  file 文件路徑 判斷文件的類型
  
  -b 只顯示辨識結果,不顯示文件名
  
  -f 文件路徑 根據文件內容,將其中的文件分別辨識

  
  cat 文件名 查看文件內容
  
  vim 文件名 查看並編輯文件
  
  6,新建文件, 移動、復制、刪除文件


  
  touch newfile 創建空文件
  
  touch oldfile 更新文件的三個時間戳
  
  touch -a oldfile 更新文件的atime和ctime
  
  touch -m oldfile 更新文件的mtime和ctime
  
  touch -t 201802122021.59 fstab
  
  touch -c newfile 若文件存在則更新時間戳,若不存在不創建
  
  mkdir
  
  -p 一次性創建多級目錄,無論父級目錄是否存在。
  
  -v 創建時顯示信息
  
  -m mode 創建時直接指定權限
  
  rmdir 刪除空目
  
  cp src dst 被復制文件路徑 新文件或被覆蓋文件路徑
  
  -i 覆蓋時提示
  
  -r 遞歸,可復制目錄
  
  –preserv=mode 權限不變
  

  –preserv=owner 權限及所屬關系不變
  
  –preserv=timestamp 時間不變
  
  –preserv=all 以上全變
  
  -p 等於 –preserv=mode,owner,timestamp 復制時保留權限,時間不變
  
  -d 復制軟鏈接
  
  -v 顯示復制過程
  
  -a 以上全部
  
  -f 當dst已存在,但當前用戶對其沒有w權限,導致無法直接覆蓋,如果當前用戶對所在目錄有wx權限,即可創建和刪除文件,那麽,加上-f後,會先刪除文件,再創建新文件,最後再填充內容與src一致。
  
  mv src dst
  
  若dst不存在,則改名。
  
  -i 若dst已存在,則詢問是否覆蓋
  
  -f 抵消掉-i的作用,直接覆蓋,不詢問
  
  rm 刪除
  
  rm 文件名
  
  -i 詢問是否刪除
  
  -f 抵消掉-i的作用,直接刪除,不詢問
  
  -r 遞歸,刪除目錄
  
  ls |xargs rm -rf 當刪除的文件數量過多,超過了所支持的參數數量上限時,可配合管道及xargs來刪除。
  
  –no-preserve-root
  

  7.文本處理命令


  
  tr
  
  [set1] [set2 將set1轉換成set2,set1的位數多於set2時,多出的位數全轉成 set2的最後一位,如tr abcd ef 即a轉成e,bcd均轉成f
  
  -d [set1] 刪除set1的字符
  
  -c [set1] [set2 除了set1以外的剩下其他字符都轉換set2(換行符也會被轉)
  
  -cd [set1] 刪除除set1以外的字符
  
  -s [set1] 將連續重復的字符轉為一個
  
  cut -d分隔符(只能是單個字符) -f取哪一列 文件名
  
  -output-delimiter=分隔符 表示輸出的分隔符。默認為原文件分隔符

  
  -fn,m 或 -fn-m
  
  -cn,m 或 -cn,m -cn
  
  sort
  
  -t分隔符
  
  -k以分隔符的第幾列排序
  
  -n以數字方式排序
  
  -r倒序排列
  
  -u去除重復項
  
  -f忽略大小寫
  
  uniq 去重
  
  uniq 去除連續的重復行,僅保留一行
  
  -u 去除連續的重復行,不保留
  
  -d 僅顯示重復的行,去除不重復的行
  
  -c 顯示的結果前顯示重復的次數
  
  8.正則表達式grep 和 sed


  
  grep
  
  –color=auto 關鍵字高亮顯示
  
  -v 反選
  
  -n 顯示行號
  
  -c 顯示匹配行的數量
  
  -i 忽略大小寫

  
  -q 靜默
  
  -A n 顯示關鍵字及其下n行
  
  -B n 顯示關鍵字及其上n行
  
  -C n 顯示關鍵字及其上下n行
  
  -e:實現多個選項間的邏輯or關系
  
  -w:匹配整個單詞
  
  -E 或 egrep 使用擴展正則
  
  -F 或 fgrep 不使用正則
  
  sed
  
  -i 更改原文件
  

  -i.bak 在更改前將原文件備份為.bak
  
  -n 不打印
  
  -e 多模式
  
  -f sed.txt 指定scripts的文件
  
  -r 指定擴展正則
  
  p打印
  
  d刪除
  
  a在指定行後增加
  

  i在指定行前增加
  
  c替換指定行
  
  w將模式空間的行寫入指定文件
  
  r將文件中的內容讀入模式空間
  
  =: 為模式空間中的行打印行號
  
  !:模式空間中匹配行取反處理

Linux命令的語法格式:

COMMAND options arguments

選項:定義命令的執行特性

長選項:--引導,後跟單詞,如 --help,--verbose

短選項:-引導,後跟單個字符,如-h,-l,-a

多個短選項可以組合: -h, -l , -a = -hla

有些選項也可以帶參數

參數:定義命令的作用對象


ls : 列出指定目錄下的文件

-l : 長格式顯示文件的詳細屬性

文件類型

屬主、屬組及其它用戶的權限

文件被硬鏈接次數

屬主

屬組

文件的大小

文件最後一次被修改的時間

時間戳:

最後一次被訪問

最後一次被修改:內容

最後一次被改變:屬性

-a : 顯示所有文件,包括隱藏文件

-A : 跟-a功能相同,但不顯示.和..;

. : 當前目錄;

.. : 上級目錄;

-n : 以用戶級組的id號排序;

-h : 文件大小會自動進行單位換算;

-r :文件名逆序顯示;

-R:遞歸顯示;

-1 : 縱向列表顯示,列表過濾或需要復制縱向結果時常用。


執行歷史命令數據的快捷方法

!# : 執行歷史中的第#條;

!-#: 執行歷史中的倒數第#條;

!! : 命令歷史中的最後一條命令;

!string : 執行命令歷史中最近一條以“string”開頭的命令

Ctrl+r 輸入”string”: 搜索命令歷史中最後一條以“string”開頭的命令

COMMAND !$ 使用上一個命令的參數 也可用Alt+. 或 Esc .

系統時鐘與硬件時鐘的同步

hwclock

-w : 以系統時鐘為準,將硬件時間修改為系統時間

-s : 以硬件時鐘為準,將系統時間修改為硬件時間


Linux FHS標準目錄結構:

/ : 根目錄;

/bin : 二進制,可執行的命令;

/sbin : 可執行命令,僅用於管理,通常管理員才權限使用;

/boot : 引導,操作系統用於引導系統啟動的文件,內核、grub;

/dev : 設備文件;

Linux的設備類型;

字符設備:c, 線性設備

塊設備 : b, 隨機設備

/etc : 配置文件;

/home : 用戶的家目錄,/home/USERNAME, jerry,/home/jerry;

/root : 管理員的家目錄;

/lib, /lib64 : 庫文件

/media : 掛載點目錄,通常用於掛載便攜性設備,如U盤;

/mnt : 掛載點目錄,掛載額外的文件系統;

/misc : 備份目錄;

/opt :可選目錄,通常第三方軟件偶爾安裝於此路徑下;

/proc : 偽文件系統:內存中內核的映射;

/selinux : 安全加強的Linux;

/srv : 屬於服務的中間數據存儲位置;

/sys : 偽文件系統,通常用於訪問硬件設備屬性信息;

/tmp : 臨時文件目錄;

/usr : 存儲只讀文件;

/var : 經常會發生變化的文件;比如說日誌等;

切換到家目錄的常用快捷方法

cd ~

cd

cd ~USERNAME : 切換到USERNAME的家目錄;

cd - : 在上個目錄和當前之間切換;


dirname : 顯示指定路徑的目錄

在寫腳本的時候常用來獲取相應腳本的所在目錄

例:

test.sh 腳本內容如下

base_dir=$(cd `dirname $0` && pwd)
echo $base_dir
執行結果 : 是test.sh的所在目錄

bash支持命令行展開:{}

分別創建這四個目錄 a_b,a_d,c_b,c_d

方法一: mkdir a_b a_d c_b _c_d

方法二: mkdir {a,c}_{b,d} –v

分別創建這幾個目錄 x/y, x/z, x/y/a, x/y/b, x/m

mkdir x/{y/{a,b},z,m}

文件相關的命令:

查看:

cat , tac : 正向和反向輸出文件內容

more/less

more : 向後翻,在翻至文件尾部前允許向前翻

less : 向前後都可以

head/tail

head : 文件的前n行 默認10行

tail : 文件的後n行 默認10行

-n : 指定輸出n行

tail -f : 實時輸出文件尾部內容;退出使用Ctrl+C;

id命令:

id - print real and effective user and group IDs

id [OPTION]... [USER]

常用選項:

-u:查看uid

username:查看用戶是否存在

在centos6.x中uid:

0:root用戶

1-499:系統用戶

500-65534:普通用戶

在centos7.x中uid:

0:root用戶

1-999:系統用戶

1000-65534:普通用戶

查看當前shell類型:

~]# echo $SHELL

shell的配置文件:/etc/shells

~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

顯示提示符格式:\\u:user \\h:host \\w:present path

~]# echo $PS1

[\\[email protected]\\h \\W]\\$

自定義提示格式:PS1=[.....]

PS1:

\\u: 當前用戶名

\\h: 主機名

\\H: FQDN,完整格式的主機名

\\W:當前工作目錄的基名

\\w: 當前工作目錄絕對路徑

\\$: 提示符

當前使用命令查看:type

內嵌:type cd 查看幫助手冊:help cd

外部:type mkdir

hash命令:

搜索外部命令路徑的結果緩存至key-value

hash:顯示緩存

hash -r:清空緩存

hash -d:清空指定命令的緩存 如:hash -d ls

命令的執行的順序:先找內部命令->緩存外部->外部命令,按照$PATH來找。

alias命令:

顯示系統的別名,和設別名。

選項:

alias ls=ls --color=auto 設置別名

unalias ls 取消別名

which命令:

顯示命令的位置所在

which COMMAND which mkdir

whereis命令:

顯示命令的幫助文檔和命令所在的位置

date命令:

顯示系統的時間

選項:

-s:修改系統時間

date: 日期和時間

date [options] [+FORMAT]

%s: 時間戳計時法,從Unix元年(1970-01-01 00:00:00)到此刻所經過的秒數

%F, %D

%T

%Y

%m

%d

%H

%M

%S

date [MMDDhhmm[[CC]YY][.ss]]

Linux有兩個時鐘:系統時鐘和硬件時鐘

硬件時鐘:

系統時鐘:Linux

hwclock

-s: 以硬件為準

-w:以系統為準

ntp: Network Time Protocol

通過網絡同步系統時間

C/S: Server, Client

ntpdate SERVER

screen命令:

screen - screen manager with VT100/ANSI terminal emulation

安裝screenrpm包:

rpm -i /media/CentOS_6.8_Final/Packages/screen-4.0.3-19.el6.x86_64.rpm

執行:screen -x chen

在另一端執行:screen -ls screen -rchen

echo命令:

功能:回顯

選項:

\\a:發出警報

\\b:退格

\\c:不加上換行符

\\n:換行且換標移道行首

\\e:轉義

~]# echo -e "\\033[42;31mman\\033[0m"

~]# echo -e "\\033[41;36m something here \\033[0m"

shell腳本中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用參數-e
格式如下:

echo -e "\\033[字背景顏色;文字顏色m字符串\\033[0m"

例如:

echo -e "\\033[41;36m something here \\033[0m"

其中41的位置代表底色, 36的位置是代表字的顏色
註:
  1、字背景顏色和文字顏色之間是英文的""
  2、文字顏色後面有個m
  3、字符串前後可以沒有空格,如果有的話,輸出也是同樣有空格
  下面是相應的字和背景顏色,可以自己來嘗試找出不同顏色搭配

echo -e “\\033[31m 紅色字 \\033[0m”

echo -e “\\033[34m 黃色字 \\033[0m”

echo -e “\\033[41;33m 紅底黃字 \\033[0m”

echo -e “\\033[41;37m 紅底白字 \\033[0m”

字顏色:30—–37

  echo -e “\\033[30m 黑色字 \\033[0m”

  echo -e “\\033[31m 紅色字 \\033[0m”

  echo -e “\\033[32m 綠色字 \\033[0m”

  echo -e “\\033[33m 黃色字 \\033[0m”

  echo -e “\\033[34m 藍色字 \\033[0m”

  echo -e “\\033[35m 紫色字 \\033[0m”

  echo -e “\\033[36m 天藍字 \\033[0m”

  echo -e “\\033[37m 白色字 \\033[0m”

字背景顏色範圍:40—–47

  echo -e “\\033[40;37m 黑底白字 \\033[0m”

  echo -e “\\033[41;37m 紅底白字 \\033[0m”

  echo -e “\\033[42;37m 綠底白字 \\033[0m”

  echo -e “\\033[43;37m 黃底白字 \\033[0m”

  echo -e “\\033[44;37m 藍底白字 \\033[0m”

  echo -e “\\033[45;37m 紫底白字 \\033[0m”

  echo -e “\\033[46;37m 天藍底白字 \\033[0m”

  echo -e “\\033[47;30m 白底黑字 \\033[0m”

最後面控制選項說明

  \\33[0m 關閉所有屬性

  \\33[1m 設置高亮度

  \\33[4m 下劃線

  \\33[5m 閃爍

  \\33[7m 反顯

  \\33[8m 消隱

  \\33[30m — \\33[37m 設置前景色

  \\33[40m — \\33[47m 設置背景色

  \\33[nA 光標上移n

  \\33[nB 光標下移n

  \\33[nC 光標右移n

  \\33[nD 光標左移n

  \\33[y;xH設置光標位置

  \\33[2J 清屏

  \\33[K 清除從光標到行尾的內容

  \\33[s 保存光標位置

  \\33[u 恢復光標位置

  \\33[?25l 隱藏光標

  \\33[?25h 顯示光

命令擴展、被包括起來的集合

whatis命令:

whatis - search the whatis database for complete words.

如何獲取命令幫助:

內置命令:help COMMAND

例如:help history

外部命令:

1COMMAND --help

2、手冊:manual

man [#] COMMAND

如何查看指定命令在哪些章節下有幫助:

whatis COMMAND

註意:whatis根據數據庫執行查找操作,此庫為系統定期更新;可使用makewhatis手動更新;


man的使用機制:

翻屏:

空格鍵:向文件尾部翻一屏

b: 向文件首部翻一屏

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

k: 向文件首部翻一行

Ctrl+d: 向文件尾部翻半屏

Ctrl+u: 向文件首部翻並屏

字串搜索:

/keyword: 從文件首部向尾部進行搜索

?keyword: 從文件尾部向首部進行搜索

n: 顯示找到的下一個

N:顯示找到的上一個

退出:q

3info命令:獲取在線文檔

僅在man手冊無法獲取到足夠信息,或想了解程序的開發歷史時才使用info

4、很多應用程序都自帶有幫助文檔:/usr/share/doc/

ChangeLog: 程序版本升級的變動情況

INSTALL: 安裝方法說明

README:程序說明信息

安裝vmware-tools:

cd /media/VMware\\ Tools/

ls

cp VMwareTools-10.0.0-2977863.tar.gz /testdir/

cd /testdir/

tar xvf VMwareTools-10.0.0-2977863.tar.gz

cd vmware-tools-distrib/

./testdir/vmware-tools-distrib/vmware-install.pl d

reboot

圖形界面開機免密碼登錄:在/etc/gdm/custom.conf [daemon]下添加如下代碼:

vi /etc/gdm/custom.conf

[daemon]

AutomaticLoginEnable=True

AutomaticLogin=root

命令別名:

alias

\\COMMAND : 使用命令自身,而不使用與命令名稱同名的別名;

例:在root用戶下使用cp復制文件需要覆蓋時默認會提示因為root用戶默認別名為 alias cp=’cp -i’, 使用\\cp 則 不提示直接覆蓋


通配符:bash 支持文件通配 ,globbing

* : 任意長度的任意字符;

?:任意單個字符

[] : 指定範圍內的憑單單個字符;[a-z]

[0-9] : 所有的數字

[a-z] : 所有的小寫字母

[A-Z] : 所有的大寫字母

[a-zA-Z]:所有的字母

[0-9a-zA-Z]:所有的數字和字母

不區分大小寫;

字符集合(過濾文件內容時使用下面的集合比上面的字符更準確):

[:digit:] : 所有數字,相當於0-9

[0-9], [[:digit:]]

[:lower:] : 所有的小寫字母

[:upper:] : 所有的大寫字母

[:alpha:] : 所有的字母

[:alnum:] : 相當於[0-9a-zA-Z]

[:space:] : 空白字符

[:punct:] : 所有標點符號

[^] : 脫字符,取反,指定範圍外的任意單個字符,[^0-9]

Linux 文件類型:

普通文件(-):a.html, b.txt , c.ppt , ls

目錄文件(d):

特殊文件:

塊設備文件(b):

字符設備(c):

符號鏈接文件(l) :

命名管道文件(p) : pipe

套接字文件 (s): socket

判斷普通文件的內容的類型,使用file命令;

# file FILE


Linux命令總結(部分說明)