linux命令2

set命令

顯示、設(shè)置或取消設(shè)置shell屬性和位置參數(shù)的值。

  • 顯示shell變量的名稱和值:
    set

  • 標記為導出而修改或創(chuàng)建的變量:
    set -a

  • 立即通知工作終止:
    set -b

  • 設(shè)置各種選項,如啟用“vi”樣式行編輯:
    set -o vi

iptables

允許配置由Linux內(nèi)核防火墻提供的表、鏈和規(guī)則的程序。

  • 查看所有表的鏈、規(guī)則和包/字節(jié)計數(shù)器:
    sudo iptables -vnL

  • 設(shè)置鏈策略規(guī)則:
    sudo iptables -P chain rule

  • 為IP的鏈策略添加規(guī)則:
    sudo iptables -A chain -s ip -j rule

  • 在考慮協(xié)議和端口的IP鏈策略中附加規(guī)則:
    sudo iptables -A chain -s ip -p protocol --dport port -j rule

  • 刪除鏈式法則:
    sudo iptables -D chain rule_line_number

  • 將給定表的iptables配置保存到文件中:
    sudo iptables-save -t tablename > path/to/iptables_file

  • 從文件中恢復iptables配置:
    sudo iptables-restore < path/to/iptables_file

sysctl
訪問內(nèi)核狀態(tài)信息.

  • 顯示所有可用的變量及其值:
    sysctl -a

  • 顯示Apple模型標識符:
    sysctl -n hw.model

  • 顯示CPU模型;
    sysctl -n machdep.cpu.brand_string

  • 顯示可用的CPU特性(MMX、SSE、SSE2、SSE3、AES等):
    sysctl -n machdep.cpu.feature

  • 設(shè)置一個可變的內(nèi)核狀態(tài)變量:
    sysctl -w section.tunable=value

swapoff

禁用設(shè)備或文件的交換.

  • 禁用給定的交換分區(qū):
    swapoff /dev/sdb7

  • 禁用給定的交換文件:
    swapoff path/to/file

  • 禁用所有交換區(qū)域:
    swapoff -a

  • 通過設(shè)備或文件的標簽禁用交換:
    swapoff -L swap1

unset

刪除shell變量或函數(shù)

  • -刪除變量foo和bar:
    unset foo bar

  • 刪除函數(shù)my_func:
    unset -f my_func

where

類似命令 which whereis whatis
報告一個命令的所有已知實例。
它可以是PATH環(huán)境變量中的可執(zhí)行文件、別名或shell內(nèi)建文件。

  • 查找命令的所有實例:
    where command

nvm

node . js版本管理。
在NodeJS版本之間切換:系統(tǒng),節(jié)點,0.10,0.12,4.2等等.

  • 安裝指定版本的NodeJS:
    nvm install node_version

  • 在當前shell中使用指定版本的NodeJS:
    nvm use node_version

  • 設(shè)置默認的NodeJS版本:
    nvm alias default node_version

  • 列出所有可用的NodeJS版本并打印默認版本:
    nvm list

  • 運行特定版本的NodeJS REPL:
    nvm run node_version --version

  • 在特定版本的NodeJS中運行app:
    nvm exec node_version node app.js

nrm

NPM注冊中心管理。
有助于在不同的npm注冊中心之間輕松切換。

  • 列出所有注冊:
    nrm ls
npm -------- https://registry.npmjs.org/
  yarn ------- https://registry.yarnpkg.com/
  cnpm ------- http://r.cnpmjs.org/
* taobao ----- https://registry.npm.taobao.org/ (*號表示當前npm使用的地址)
  nj --------- https://registry.nodejitsu.com/
  npmMirror -- https://skimdb.npmjs.com/registry/
  edunpm ----- http://registry.enpmjs.org/
  • 更改為特定的注冊表:
    nrm use registry
    nrm use taobao 和 nrm use npm 來互相切換

  • 顯示所有注冊表的響應時間:
    nrm test

  • 添加自定義注冊中心:
    nrm add registry url

  • 刪除一個注冊表:
    nrm del registry

webpack

將web項目的js文件和其他資產(chǎn)打包到一個輸出文件中。

  • 從入口點文件創(chuàng)建單個輸出文件:
    webpack app.js bundle.js

  • 從js文件中加載css文件(這將css加載器用于.css文件):
    webpack app.js bundle.js --module-bind 'css=css'

  • 傳遞一個配置文件。輸入腳本和輸出文件名),顯示編譯進度:
    webpack --config webpack.config.js --progress

  • 對項目文件的更改自動重新編譯:
    webpack --watch app.js bundle.js
    http

HTTP客戶端,一個用戶友好的cUrll替代品。

  • 將URL下載到文件:
    http -d example.org

  • 發(fā)送表單編碼的數(shù)據(jù):
    http -f example.org name='bob' profile_picture@'bob.png'

  • 發(fā)送JSON對象:
    http example.org name='bob'

  • 指定HTTP方法:
    http HEAD example.org

  • 包含額外的標題:
    http example.org X-MyHeader:123

  • 為服務(wù)器身份驗證傳遞用戶名和密碼:
    http -a username:password example.org

  • 通過stdin指定原始請求體:
    cat data.txt | http PUT example.org

curl
從服務(wù)器或向服務(wù)器傳輸數(shù)據(jù)。
支持大多數(shù)協(xié)議,包括HTTP、FTP和POP3.

  • 將URL的內(nèi)容下載到文件中:
    curl http://example.com -o filename

  • 下載一個文件,將輸出保存在URL指示的文件名下:
    curl -O http://example.com/filename

  • 下載一個文件,遵循定位重定向,并自動繼續(xù)(恢復)以前的文件傳輸:
    curl -O -L -C - http://example.com/filename

  • 發(fā)送表單編碼的數(shù)據(jù)(類型為“application/x-www-form-urlencoded”的POST請求):
    curl -d 'name=bob' http://example.com/form

  • 使用自定義HTTP方法發(fā)送帶有額外標頭的請求:
    curl -H 'X-My-Header: 123' -X PUT http://example.com

  • 以JSON格式發(fā)送數(shù)據(jù),指定適當?shù)膬?nèi)容類型頭:
    curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

  • 為服務(wù)器身份驗證傳遞用戶名和密碼:
    curl -u myusername:mypassword http://example.com

  • 通過客戶端證書和資源密鑰,跳過證書驗證:
    curl --cert client.pem --key key.pem --insecure https://example.com

wget

從網(wǎng)上下載文件。
支持HTTP、HTTPS和FTP.

  • 將URL的內(nèi)容下載到一個文件中(在本例中名為“foo”):
    wget https://example.com/foo

  • 將URL的內(nèi)容下載到文件中(在本例中名為“bar”):
    wget -O bar https://example.com/foo

  • 下載單個web頁面及其所有資源(腳本、樣式表、圖像等):
    wget --page-requisites --convert-links https://example.com/somepage.html

  • 下載一個完整的網(wǎng)站,每個請求之間間隔3秒:
    wget --mirror --page-requisites --convert-links --wait=3 https://example.com

  • 下載目錄及其子目錄中列出的所有文件(不下載嵌入的頁面元素):
    wget --mirror --no-parent https://example.com/somepath/

  • 通過認證的FTP下載URL的內(nèi)容:
    wget --ftp-user=username --ftp-password=password ftp://example.com

  • 繼續(xù)未完成的下載:
    wget -c https://example.com

  • 啟用靜音模式來抑制輸出:
    wget -q https://example.com

babel npm 全局安裝 babel-cli

一個將代碼從JavaScript ES6/ES7語法轉(zhuǎn)換為ES5語法的編譯器

  • 將指定的輸入文件和輸出轉(zhuǎn)換為標準輸出:
    babel path/to/file

  • 將指定的輸入文件和輸出轉(zhuǎn)換為特定的文件:
    babel path/to/input_file --out-file path/to/output_file

  • 每次更改輸入文件時,都要轉(zhuǎn)換它:
    babel path/to/input_file --watch

  • 轉(zhuǎn)換整個文件目錄:
    babel path/to/input_directory

  • 忽略目錄中指定的逗號分隔的文件:
    babel path/to/input_directory --ignore ignored_files

  • 轉(zhuǎn)換和輸出為縮小的JavaScript:
    babel path/to/input_file --minified

  • 為輸出格式選擇一組預置:
    babel path/to/input_file --presets presets

  • 輸出所有可用選項:
    babel --help

diff命令
比較文件和目錄.

  • 比較文件:
    diff file1 file2

  • 比較文件,忽略空白:
    diff -w file1 file2

  • 比較文件,并排顯示差異:
    diff -y file1 file2

  • 比較文件,以統(tǒng)一格式顯示差異(如“git diff”所使用的格式):
    diff -u file1 file2

  • 遞歸地比較目錄:
    diff -r directory1 directory2

  • 比較目錄,只顯示不同文件的名稱:
    diff -rq directory1 directory2

patch 命令

用差異文件修補一個或多個文件。
注意,diff文件包含目標文件名和更改列表。

  • 應用一個補丁:
    patch < patch_file.diff

  • 對當前目錄應用補丁:
    patch -p1 < patch_file.diff

  • 應用補丁的反面:
    patch -R < patch_file.diff

  • 對指定文件應用補丁:
    patch -p1 file patch_file.diff

fdupes

在給定的目錄集中查找重復的文件。

  • 搜索單個目錄:
    fdupes directory

  • 搜索多個目錄:
    fdupes directory1 directory2

  • 遞歸搜索所有目錄:
    fdupes -r directory

  • 搜索多個目錄,遞歸地搜索一個:
    fdupes directory1 -R directory2

xargs命令
使用來自另一個命令、文件等的管道參數(shù)執(zhí)行命令。
輸入被視為一個單獨的文本塊,并被分割成空格、制表符、換行符和文件結(jié)束符上的單獨參數(shù)。

  • 主要使用模式:
    arguments_source | xargs command

  • Delete all files with a .backup extension. -print0 on find uses a null character to split the files, and -0 changes the delimiter to the null character (useful if there's whitespace in filenames):
    find . -name '*.backup' -print0 | xargs -0 rm -v

  • 對每個輸入行執(zhí)行一次命令,用輸入行替換任何占位符(這里標記為“_”):
    arguments_source | xargs -I _ command _ optional_extra_arguments

  • 假如你有一個文件包含了很多你希望下載的 URL,你能夠使用 xargs下載所有鏈接:
    cat url-list.txt | xargs wget -c

NPM注冊管理人
有助于在不同的npm注冊中心之間輕松切換。

  • 列出所有注冊:
    nrm ls

  • 更改為特定的注冊表:
    nrm use registry

  • 顯示所有注冊表的響應時間:
    nrm test

  • 添加自定義注冊中心:
    nrm add registry url

  • 刪除注冊表:
    nrm del registry

npx

npx使用介紹

從“npm”包執(zhí)行二進制文件。

  • 從給定的npm模塊執(zhí)行二進制代碼:
    npx module_name

  • 如果一個包有多個二進制文件,請指定包名和二進制文件:
    npx -p package_name module_name

  • 查看幫助內(nèi)容:
    npx --help

locate命令
快速找到文件名。

  • 在數(shù)據(jù)庫中查找模式。注:數(shù)據(jù)庫定期重新計算(通常每周或每天):
    locate pattern

  • 根據(jù)文件名查找文件(不包含通配符的模式被解釋為“pattern”):
    locate */filename

  • 再計算數(shù)據(jù)庫。如果你想找到最近添加的文件,你需要這樣做:
    sudo /usr/libexec/locate.updatedb

ripgrep 使用命令rg

一個快速的命令行搜索工具.

  • 遞歸地在當前目錄中搜索regex模式:
    rg pattern

  • 搜索包括所有。gitignored和隱藏文件的模式:
    rg -uu pattern

  • 僅在特定文件類型(如html、css等)中搜索模式:
    rg -t filetype pattern

  • 僅在目錄的子集中搜索模式:
    rg pattern set_of_subdirs

  • 在匹配glob的文件中搜索模式(例如,' README.* '):
    rg pattern -g glob

  • 只列出匹配的文件——當管道連接到其他命令時非常有用:
    rg --files-with-matches pattern

fdfind命令更快

一個簡單,快速和用戶友好的選擇找到。

  • 查找當前目錄下與模式匹配的文件:
    fd pattern

  • 查找以foo開頭的文件:
    fd '^foo'

  • 查找具有特定擴展名的文件:
    fd --extension .ext pattern

  • 查找特定目錄下的文件:
    fd pattern path/to/dir

  • 包括忽略和隱藏的文件在搜索:
    fd --hidden --no-ignore pattern

paste命令

合并文件行.

  • 將所有的行連接成一行,使用TAB作為分隔符:
    paste -s file

  • 使用指定的分隔符將所有行連接成一行:
    paste -s -d delimiter file

  • 并排合并兩個文件,每個文件在其列中,使用TAB作為分隔符:
    paste file1 file2

  • 使用指定的分隔符并排合并列中的兩個文件:
    paste -d delimiter file1 file2

  • 合并兩個文件,交替添加行:
    paste -d '\n' file1 file2

tee
從標準輸入讀取,然后寫入標準輸出和文件(或命令)。
tee指令會從標準輸入設(shè)備讀取數(shù)據(jù),將其內(nèi)容輸出到標準輸出設(shè)備,同時保存成文件。

  • 將標準輸入復制到每個文件,也復制到標準輸出:
    echo "example" | tee FILE

  • 附加到給定的文件,不要覆蓋:
    echo "example" | tee -a FILE

  • 將標準輸入打印到終端,并將其輸入到另一個程序中進行進一步處理:
    echo "example" | tee /dev/tty | xargs printf "[%s]"

  • 創(chuàng)建一個名為“example”的文件夾,計算“example”中的字符數(shù),并將“example”寫入終端:
    echo "example" | tee >(xargs mkdir) >(wc -c)

tree命令
以樹的形式顯示當前目錄的內(nèi)容。

  • 顯示文件和目錄到深度的“num”級別(其中1表示當前目錄):
    tree -L num

  • 只顯示目錄:
    tree -d

  • 也顯示隱藏文件:
    tree -a

  • 打印沒有縮進的樹,顯示完整的路徑(使用' -N '來避免轉(zhuǎn)義空格和特殊字符):
    tree -i -f

  • 以人類可讀的格式打印它旁邊每個節(jié)點的大小,并在文件夾中顯示它們的累積大小(如' du '命令所示):
    tree -s -h --du

  • 使用通配符(glob)模式在樹層次結(jié)構(gòu)中查找文件,并刪除不包含匹配文件的目錄:
    tree -P '*.txt' --prune

  • 在樹層次結(jié)構(gòu)中查找目錄,刪除非所需目錄的祖先目錄:
    tree -P directory_name --matchdirs --prune

ss命令

用于研究套接字的實用程序。

  • 顯示所有TCP/UDP/RAW/UNIX套接字:
    ss -a -t|-u|-w|-x

  • 過濾TCP套接字的狀態(tài),只/排除:
    ss state/exclude bucket/big/connected/synchronized/...

  • 顯示所有連接到本地HTTPS端口的TCP套接字(443):
    ss -t src :443

  • 顯示所有TCP套接字以及連接到遠程ssh端口的進程:
    ss -pt dst :ssh

  • 顯示所有UDP套接字連接在特定的源和目標端口:
    ss -u 'sport == :source_port and dport == :destination_port'

  • 顯示在子網(wǎng)192.168.0.0/16上本地連接的所有TCP IPv4套接字:
    ss -4t src 192.168/16

swapon

啟用設(shè)備或文件交換.

  • 獲得交換信息:
    swapon -s

  • 啟用給定的交換分區(qū):
    swapon /dev/sdb7

  • 啟用給定的交換文件:
    swapon path/to/file

  • 啟用所有交換區(qū)域:
    swapon -a

  • 通過設(shè)備或文件的標簽啟用交換:
    swapon -L swap1

mkswap命令 用于在一個文件或者設(shè)備上建立交換分區(qū)。在建立完之后要使用sawpon命令開始使用這個交換區(qū)。最后一個選擇性參數(shù)指定了交換區(qū)的大小,但是這個參數(shù)是為了向后兼容設(shè)置的,沒有使用的必要,一般都將整個文件或者設(shè)備作為交換區(qū)。

在設(shè)備或文件中設(shè)置Linux交換區(qū)域.

  • 將給定的分區(qū)設(shè)置為交換區(qū):
    sudo mkswap /dev/sdb7

  • 使用給定的文件作為交換區(qū)域:
    sudo mkswap path/to/file

  • 在創(chuàng)建交換區(qū)域之前,檢查分區(qū)是否有壞的塊:
    sudo mkswap -c /dev/sdb7

  • 為文件指定一個標簽(允許swapon使用標簽):
    `sudo mkswap -L swap1 path/to/file

dd 命令

if=文件名:輸入文件名
of=文件名:輸出文件名
bs=字節(jié)大小
count=個數(shù)

轉(zhuǎn)換和復制文件.

  • 從一個isohybrid文件(比如archlinux-xxx.iso)中創(chuàng)建一個可引導的usb驅(qū)動器,并顯示進程:
    dd if=file.iso of=/dev/usb_drive status=progress

  • 克隆一個驅(qū)動器到另一個驅(qū)動器與4MB塊,忽略錯誤,并顯示進展:
    dd if=/dev/source_drive of=/dev/dest_drive bs=4M conv=noerror status=progress

  • 使用內(nèi)核隨機驅(qū)動程序生成一個100個隨機字節(jié)的文件:
    dd if=/dev/urandom of=random_file bs=100 count=1

  • 測試磁盤的寫性能::
    dd if=/dev/zero of=/swapfile bs=1M count=1024

  • 檢查正在進行的dd操作的進度(從另一個shell運行此命令):
    kill -USR1 $(pgrep ^dd)

groupdel
從系統(tǒng)中刪除現(xiàn)有的用戶組.

  • 刪除現(xiàn)有組:
    groupdel group_name

userdel
刪除一個用戶。

  • 刪除用戶及其主目錄:
    userdel -r name

lsmod
顯示linux內(nèi)核模塊的狀態(tài)。
請參見modprobe,它加載內(nèi)核模塊。

  • 列出所有當前加載的內(nèi)核模塊:
    lsmod

seq 命令

輸出一串數(shù)字到標準輸出。

  • 從1到10的序列:
    seq 10

  • 每3個數(shù)字從5到20:
    seq 5 3 20

  • 用空格而不是換行分隔輸出:
    seq -s " " 5 3 20

file命令
確定文件類型.
***如果是純字符文本則是 ASCII Text 含有中文的話則就是 unicode Text

  • 描述指定文件的類型。適用于沒有文件擴展名的文件:
    file filename

  • 查看壓縮文件的內(nèi)部,并確定其中的文件類型:
    file -z foo.zip

-允許文件處理特殊文件或設(shè)備文件:
file -s filename

  • 不要在第一個文件類型匹配時停止;一直讀到文件末尾:
    file -k filename

  • 確定文件的mime編碼類型:
    file -I filename

whereis命令

  • 定位命令的二進制、源代碼和手動頁文件。

whatis命令

顯示手冊頁中的一行描述。.

  • 顯示來自手冊頁的描述:
    whatis command

  • 不要在一行的末尾刪去描述:
    whatis --long command

  • 顯示與一個glob匹配的所有命令的描述:
    whatis --wildcard net*

  • 使用正則表達式搜索手冊頁描述:
    whatis --regex 'wish[0-9]\.[0-9]'

查看文件的權(quán)限

方式1: stat file
方式2:la -alh (a 顯示隱藏文件 l每行列出一個文件 h使用人類可讀單元(KB、MB、GB)顯示大小的長格式列表)
顯示內(nèi)容
drwx------ 2 root root 4.0K 4月 8 13:28 .ssh

r [r]ead 讀 w ([w]rite) 寫權(quán)限 x (e[x]ecute)可執(zhí)行權(quán)限

用戶管理

使用who命令,可以查看目前已登陸的用戶。要查看系統(tǒng)上的用戶,以 root 執(zhí)行 passwd -Sa 輸出的數(shù)據(jù)格式可以參考 passwd(1)。

使用useradd命令添加用戶:

  • useradd -m -g "初始組" -G "附加組" -s "登陸shell" "用戶"
  • -m:創(chuàng)建用戶主目錄/home/[用戶名];在自己的主目錄內(nèi),即使不是root用戶也可以讀寫文件、安裝程序等等。(當?shù)卿?當前的用戶的時候。目錄名就是用戶名 只有在自己的主目錄才有操作權(quán)限)
  • -g:設(shè)置用戶初始組的名稱或數(shù)字ID;該組必須是存在的;如果沒有設(shè)置該選項,useradd會根據(jù)/etc/login.defs文件中的USERGROUPS_ENAB環(huán)境變量進行設(shè)置。默認(USERGROUPS_ENAB yes) 會用和用戶名相同的名字創(chuàng)建群組,GID 等于 UID.
  • -G:用戶要加入的附加組列表;使用逗號分隔多個組,不要添加空格;如果不設(shè)置,用戶僅僅加入初始組。
  • -s:用戶默認登錄shell的路徑;啟動過程結(jié)束后,默認啟動的登錄shell在此處設(shè)定;請確保使用的shell已經(jīng)安裝,默認是 Bash

**警告: **為了登錄,登錄 shell 必須位于 /etc/shells 中, 否則 PAMpam_shell 模塊會阻止登錄請求。不要使用 /usr/bin/bash 替代 /bin/bash, 除非這個路徑已經(jīng)在 /etc/shells中正確配置.

  • 有時候需要禁止某些用戶執(zhí)行登錄動作,例如用來執(zhí)行系統(tǒng)服務(wù)的用戶。將shell設(shè)置成 /usr/bin/nologin 就可以禁止用戶登錄。(nologin(8)).

用戶信息存儲

本地用戶信息儲存在`/etc/passwd`文件中。要查看系統(tǒng)上所有用戶賬戶:

cat /etc/passwd

一行代表一個用戶,格式如下,每行分七個部分,用英文冒號“:”分開:

account:password:UID:GID:GECOS:directory(用戶主目錄 保存在環(huán)境變量$HOME):shell(環(huán)境變量$SHELL中)

此處:

*   `account`:用戶名,不能為空,而且要符合標準的*NIX命名規(guī)則。
*   `password`:加密的密碼,可以使用一個小寫的"x"(不帶括號)表示密碼保存在`/etc/shadow`文件里。
*   `UID``GID`:每個用戶和組有一個對應的UID和GID(用戶ID和組ID)。Arch里面,第一個非root用戶的默認UID是1000,后續(xù)創(chuàng)建的用戶UID也應大于1000,特定用戶的GID應該屬于指定的首要組,組的ID數(shù)值列在`/etc/group`文件里。
*   `GECOS`:可選的注釋字段,通常記錄用戶全名
*   `directory`:用于登錄命令設(shè)置`$HOME`環(huán)境變量。某些服務(wù)的用戶主目錄設(shè)置為"/"是安全的,但不建議普通用戶設(shè)置為此目錄。
*   `shell`:是用戶默認登錄的shell,通常是[Bash](https://wiki.archlinux.org/index.php/Bash_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Bash (簡體中文)"),還可選擇其他的命令解釋器,默認是"/bin/bash"(不帶括號),如果你用的是別的shell,在這里設(shè)置其路徑,此部分是可選的,可留空。

示例:
jack:x:1001:100:Jack Smith,some comment here,,:/home/jack:/bin/bash

示例分解說明:用戶登錄名為jack,密碼保存在`/etc/shadow`,UID為1001,首要組的ID是100 (users組),全名Jack Smith并加了一些注釋,主目錄是`/home/jack`,使用Bash作為默認shell。

ssh-keygen

生成ssh密鑰用戶以進行身份驗證、無密碼登錄和其他操作.

  • Generate a key interactively:
    ssh-keygen

  • Specify file in which to save the key:
    ssh-keygen -f ~/.ssh/filename

  • 生成一個ed25519密鑰,包含100個密鑰派生函數(shù)輪:
    ssh-keygen -t ed25519 -a 100

  • 生成一個RSA 4096位密鑰,并將您的電子郵件作為注釋:
    ssh-keygen -t rsa -b 4096 -C "email"

  • 從主機檢索密鑰指紋(用于在首次通過SSH連接到主機時確認主機的真實性):
    ssh-keygen -l -F remote_host

  • 檢索MD5十六進制密鑰的指紋:
    ssh-keygen -l -E md5 -f ~/.ssh/filename

  • 更改密鑰的密碼:
    ssh-keygen -p -f ~/.ssh/filename

service

通過運行init腳本管理服務(wù)。
應該省略完整的腳本路徑(/etc/init.d 假設(shè))。

  • 啟動/停止/重啟/重新加載服務(wù)(啟動/停止應該總是可用的):
    service init_script start|stop|restart|reload

  • 完全重新啟動(使用start和stop運行腳本兩次):
    service init_script --full-restart

  • 顯示服務(wù)的當前狀態(tài):
    service init_script status

  • 列出所有服務(wù)的狀態(tài):
    service --status-all

useradd

創(chuàng)建一個新用戶.

  • 創(chuàng)建新用戶:
    useradd name

  • 創(chuàng)建具有默認主目錄的新用戶:
    useradd --create-home name

  • 使用指定的shell創(chuàng)建新用戶:
    useradd --shell /path/to/shell name

  • 創(chuàng)建屬于其他組的新用戶(注意沒有空格):
    useradd --groups group1,group2 name

  • 創(chuàng)建沒有主目錄的新系統(tǒng)用戶:
    useradd --no-create-home --system name

groupmod

修改系統(tǒng)中現(xiàn)有的用戶組.

  • 更改組名稱:
    groupmod -n new_group_name old_group_name

-更改組id:
groupmod -g new_group_id old_group_name

gpasswd

管理“/etc/group”和“/etc/gshadow”。

  • 定義組管理員:
    sudo gpasswd -A user1,user2 group

  • 設(shè)置組成員列表:
    sudo gpasswd -M user1,user2 group

  • 為指定的組創(chuàng)建密碼:
    gpasswd group

  • 將用戶添加到指定的組:
    gpasswd -a user group

  • 從已命名組中刪除用戶:
    gpasswd -d user group

groupadd

向系統(tǒng)添加用戶組.

  • 創(chuàng)建一個新的Linux組:
    groupadd group_name

  • 使用特定的groupid創(chuàng)建新組:
    groupadd group_name -g group_id

id

顯示當前用戶和組標識.

  • 顯示當前用戶id (UID)、組id (GID)和它們所屬的組:
    id

  • 將當前用戶標識顯示為數(shù)字:
    id -u

  • 將當前組標識顯示為數(shù)字:
    id -g

  • 顯示任意用戶的id (UID)、組id (GID)和它們所屬的組:
    id username

usermod user model

修改用戶帳戶。

  • 更改用戶名:
    usermod -l newname oldname

  • 將用戶加入 群組,用逗號分隔:
    usermod -a -G group1,group2 user

  • 為用戶創(chuàng)建一個新的主目錄并將其文件移動到其中,更改用戶主目錄:
    查看 當前用戶主目錄 在環(huán)境變量 $HOME 中
    usermod -m -d /path/to/home(新的目錄) user

通過find命令查找屬于某個用戶或某個組的文件
find / -group "用戶組"
find / -user "用戶"

who
顯示登錄的用戶和相關(guān)數(shù)據(jù)(進程、啟動時間).

  • 簡潔的方式顯示登錄用戶
    whoami

  • 顯示當前登錄的所有會話的用戶名、行和時間:
    who

  • 僅顯示當前終端會話的信息:
    who am i

  • 顯示所有可用信息:
    who -a

  • 使用表頭顯示所有可用信息:
    who -a -H

stat

顯示文件和文件系統(tǒng)信息.

  • 顯示文件屬性,如大小、權(quán)限、創(chuàng)建和訪問日期等:
    stat file

  • 和上面一樣,但是更簡潔:
    stat -t file

  • 顯示文件信息:
    stat -f file

  • 只顯示八進制文件權(quán)限:
    stat -c "%a %n" file

  • 顯示文件的所有者和組:
    stat -c "%U %G" file

  • 以字節(jié)為單位顯示文件的大小:
    stat -c "%s %n" file

link

創(chuàng)建到現(xiàn)有文件的硬鏈接。 (-s 是軟鏈接)
有關(guān)更多選項,請參見ln命令.

  • 創(chuàng)建從新文件到現(xiàn)有文件的硬鏈接:
    link path/to/existing_file path/to/new_file

unlink

從文件系統(tǒng)中刪除到文件的鏈接。
如果鏈接是文件的最后一個鏈接,則文件內(nèi)容將丟失

  • 如果指定的文件是最后一個鏈接,則刪除它:
    unlink path/to/file

netstat

顯示與網(wǎng)絡(luò)相關(guān)的信息,如打開的連接、打開的套接字端口等。

  • 輸出跟nginx相關(guān)的端口信息
    netstat -tnlup | grep nginx

  • 列出所有端口:
    netstat -a

  • 列出所有監(jiān)聽端口:
    netstat -l

  • 列出監(jiān)聽TCP端口:
    netstat -t

  • 顯示特定端口的PID和程序名:
    netstat -p {PROTOCOL}

  • 持續(xù)輸出:
    netstat -c

  • 打印路由表:
    netstat -nr

reboot
重啟系統(tǒng).

  • 立即重新啟動:
    reboot

  • 立即重啟,而不是優(yōu)雅地關(guān)閉:
    reboot -f

chsh

更改用戶的登錄shell。

  • 獲取當前使用的shell
    echo $SEHLL or export | grep SHELL
  • 改變shell:
    chsh -s 新的shell的路徑 username 例如zsh 需要 which zsh /bin/zsh

cut

從STDIN或文件中刪除字段.

  • 剪掉每一行的前16個字符:
    cut -c 1-16

  • 刪除給定文件每行的前16個字符:
    cut -c 1-16 file

  • 把從第三個字符到每行末尾的所有內(nèi)容都剪掉:
    cut -c 3-

  • 使用冒號作為字段分隔符(默認分隔符是tab),刪除每行中的第5個字段:
    cut -d':' -f5

  • 使用分號作為分隔符,刪除每一行的第2和第10個字段:
    cut -d';' -f2,10

  • 使用空格作為分隔符,將字段3切到每一行的末尾:
    cut -d' ' -f3-

sort

對文本文件行進行排序。

  • 按升序排列文件:
    sort filename

  • 按降序排列文件:
    sort -r filename

  • 以不區(qū)分大小寫的方式對文件排序:
    sort --ignore-case filename

  • 使用數(shù)字而不是字母順序?qū)ξ募判?
    sort -n filename

  • 按第三個字段對passwd文件進行數(shù)字排序:
    sort -t: -k 3n /etc/passwd

  • 對只保留唯一行的文件進行排序: (有重復的行只保留一個)
    sort -u filename

  • 對人類可讀的數(shù)字排序(在本例中是“l(fā)s -lh”的第5個字段):
    (使用標準輸出取代文件 管道符連接)
    ls -lh | sort -h -k 5

uniq

從給定的輸入或文件中輸出唯一的行。
因為它不會檢測重復的行,除非它們是相鄰的,所以我們需要首先對它們進行排序。

  • 每一行顯示一次:
    sort file | uniq

  • 只顯示唯一的行:
    sort file | uniq -u

  • 只顯示重復的行:
    sort file | uniq -d

  • 顯示每一行的出現(xiàn)次數(shù):
    sort file | uniq -c

  • 顯示每行出現(xiàn)的次數(shù),按最頻繁的次數(shù)排序:
    sort file | uniq -c | sort -nr

w命令

顯示誰已登錄以及他們正在做什么。
打印用戶登錄、TTY、遠程主機、登錄時間、空閑時間、當前進程。

  • 顯示已登錄的用戶信息:
    w

  • 顯示登錄的用戶信息,沒有標題:
    w -h

  • 顯示登錄用戶的信息,按空閑時間排序:
    w -i

watch 命令

定期執(zhí)行程序,顯示全屏輸出。.

  • 反復運行命令并顯示結(jié)果:
    watch command

  • 每60秒重新運行一個命令:
    watch -n 60 command

  • 監(jiān)視目錄的內(nèi)容,在它們出現(xiàn)時突出顯示差異:
    watch -d ls -l

make命令

用于Makefile中描述的目標的任務(wù)運行器。
主要用于控制從源代碼編譯可執(zhí)行文件。

  • 調(diào)用Makefile中指定的第一個目標(通常名為“all”):
    make

  • 調(diào)用特定目標:
    make target

  • 調(diào)用一個特定的目標,同時執(zhí)行4個作業(yè):
    make -j4 target

  • 使用特定的Makefile:
    make --file file

  • 從另一個目錄執(zhí)行make:
    make --directory directory

  • 強制生成目標,即使源文件沒有更改:
    make --always-make target

ifconfig命令
網(wǎng)絡(luò)接口配置器.

  • 查看以太網(wǎng)適配器的網(wǎng)絡(luò)設(shè)置:
    ifconfig eth0

  • 顯示所有接口的詳細信息,包括禁用的接口:
    ifconfig -a

  • 禁用eth0接口:
    ifconfig eth0 down

  • 使eth0接口:
    ifconfig eth0 up

  • 將IP地址分配給eth0接口:
    ifconfig eth0 ip_address

chkconfig命令

管理CentOS 6上的服務(wù)運行級別。

  • 列出帶有運行級別的服務(wù):
    chkconfig --list

  • 顯示服務(wù)的運行級別:
    chkconfig --list ntpd

  • 啟動時啟用服務(wù):
    chkconfig sshd on

  • 在啟動時為運行級別2、3、4和5啟用服務(wù):
    chkconfig --level 2345 sshd on

  • 在啟動時禁用服務(wù):
    chkconfig ntpd off

  • 在啟動時禁用運行級別3的服務(wù):
    chkconfig --level 3 ntpd off

systemctl命令
Linux systemctl是一個系統(tǒng)管理守護進程、工具和庫的集合,用于取代System V、servicechkconfig命令)
注意,一般先殺死nginx進程再去開啟 systemctl 管理 nginx
控制系統(tǒng)和服務(wù)管理。

  • 列出失敗的服務(wù):
    systemctl --failed

  • 啟動/停止/啟動/重新加載一個服務(wù): (這里是立刻啟動服務(wù))
    systemctl start/stop/restart/reload unit

  • 顯示一個單元的狀態(tài):
    systemctl status unit egsystemctl status nginx|mysqld

  • 開機啟動時(啟用)和(禁用)要啟動的模塊:
    systemctl enable/disable unit

  • 屏蔽/解壓一個單元,防止它在啟動時啟動:
    systemctl mask/unmask unit

  • 重新加載systemd,掃描新的或更改的模塊:
    systemctl daemon-reload

adduser 命令

添加用戶命令.

  • 創(chuàng)建一個具有默認主目錄的新用戶,并提示用戶設(shè)置密碼: (會創(chuàng)建一個主目錄)
    adduser username

  • 創(chuàng)建沒有主目錄的新用戶:
    adduser --no-create-home username

  • 使用指定路徑上的主目錄創(chuàng)建一個新用戶:
    adduser --home path/to/home username

  • 創(chuàng)建一個新用戶,并將指定的shell設(shè)置為登錄shell:
    adduser --shell path/to/shell username

  • 創(chuàng)建屬于指定組的新用戶:
    adduser --ingroup group username

users 命令
顯示已登錄用戶的列表.

  • 顯示已登錄用戶的列表:
    users

  • 顯示根據(jù)特定文件登錄的用戶列表:
    users /var/log/wmtp

chown 命令

更改文件和文件夾的用戶和組所有權(quán).

  • 更改文件/文件夾的所有者用戶:
    chown user path/to/file

  • 更改文件/文件夾的所有者、用戶和組:
    chown user:group path/to/file

  • 遞歸地更改文件夾的所有者及其內(nèi)容:
    chown -R user path/to/folder

  • 更改符號鏈接的所有者:
    chown -h user path/to/symlink

  • 更改文件/文件夾的所有者以匹配引用文件:
    chown --reference=path/to/reference_file path/to/file

rename命令

重命名多個文件.

  • 直接重新命名
    rename originName newName originName

  • 使用Perl公共正則表達式重命名文件(在找到的地方用bar替換foo):
    rename 's/foo/bar/' \*

  • 顯示哪些重命名將在不執(zhí)行它們的情況下發(fā)生:
    rename -n 's/foo/bar/' \*

  • 強制重命名,即使該操作將覆蓋現(xiàn)有文件:
    rename -f 's/foo/bar/' \*

  • 將文件名轉(zhuǎn)換為小寫(在不區(qū)分大小寫的文件系統(tǒng)中使用' -f ',以防止"already exists"錯誤):
    rename 'y/A-Z/a-z/' \*

  • 用下劃線替換空格:
    rename 's/\s+/_/g' \*

main命令

格式化和顯示手冊頁。

  • 顯示命令的手冊頁:
    man command

  • 顯示來自第7節(jié)的命令的手冊頁:
    man command.7

  • 搜索手冊頁的顯示路徑:
    man --path

  • 顯示手冊頁的位置,而不是手冊頁本身:
    man -w command

  • 對包含搜索字符串的手冊頁進行關(guān)鍵字搜索:
    man -k keyword

dirname命令

計算給定文件或目錄路徑的父目錄.

  • 計算給定路徑的父目錄:
    dirname path/to/file_or_directory

  • 計算多個路徑的父目錄:
    dirname path/to/file_a path/to/directory_b

  • 用NUL字符而不是換行符分隔輸出(在與' xargs '結(jié)合時非常有用):
    dirname --zero path/to/directory_a path/to/file_b

basename

返回路徑名的非目錄部分.

  • 只顯示路徑中的文件名:
    basename path/to/file

  • 只顯示路徑中的文件名,并刪除后綴:
    basename path/to/file suffix

test 命令
評估條件。
如果為真,返回0退出狀態(tài),否則返回1。

  • 測試給定的變量是否等于給定的字符串:
    test $MY_VAR == '/bin/zsh'

  • 測試給定變量是否為空:
    test -z $GIT_BRANCH

  • 測試文件是否存在:
    test -e filename

  • 測試目錄是否不存在:
    test ! -d path/to/directory

  • if - else語句:
    test condition && echo "true" || echo "false"

nginx命令
Nginx web服務(wù)器.

  • 使用默認配置文件啟動服務(wù)器:
    nginx path:/etc/nginx/nginx.conf

  • 使用自定義配置文件啟動服務(wù)器:
    nginx -c config_file

  • 顯示版本并配置選項,然后退出:
    nginx -V

  • 使用配置文件中所有相對路徑的前綴啟動服務(wù)器:
    nginx -c config_file -p prefix/for/relative/paths

  • 在不影響正在運行的服務(wù)器的情況下測試配置:
    nginx -t

  • 通過發(fā)送一個沒有停機的信號來重新加載配置:
    nginx -s reload

  • 通過發(fā)送一個沒有停機的信號來重新打開配置:
    nginx -s reopen

  • 停止nginx:
    nginx -s stop

  • 退出nginx:
    nginx -s quit

-?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/share/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : 從配置文件中設(shè)置全局指令

supervisorctl

Supervisor是一個客戶機/服務(wù)器系統(tǒng),它允許用戶在類unix操作系統(tǒng)上控制多個進程。
監(jiān)督者ctl是監(jiān)督者的命令行客戶端,它提供了一個類似shell的接口.

  • 啟動/停止/啟動一個過程:
    supervisorctl start|stop|restart process_name

  • 啟動/停止/重啟組中的所有進程:
    supervisorctl start|stop|restart group_name:*

  • 顯示最后100字節(jié)的流程stderr:
    supervisorctl tail -100 process_name stderr

  • 保持在進程外顯示stdout:
    supervisorctl tail -f process_name stdout

  • 重新加載進程配置文件,根據(jù)需要添加/刪除進程:
    supervisorctl update

  • 查看進程狀態(tài)
    supervisorctl status

supervisord

Supervisor是一個客戶機/服務(wù)器系統(tǒng),用于控制類unix操作系統(tǒng)上的一些進程。
監(jiān)控器是監(jiān)控器的服務(wù)器部分;它主要通過配置文件進行管理。

  • 用指定的配置文件啟動督導員: 默認在 /etc/supervisord.conf 下面
    supervisord -c path/to/file

  • 在前臺運行督導員:
    supervisord -n

  • 使用默認的配置文件 /etc/supervisord.conf
    supervisord

  • 明確指定配置文件
    supervisord -c /etc/supervisord.conf

  • 使用 user 用戶啟動 supervisord
    supervisord -u user

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,695評論 0 5
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,890評論 0 13
  • (一)基本命令 命令格式: 命令 參數(shù) 1.ls 顯示文件名,等同于dos下dir命令 命令格式:ls [opti...
    飛羽孟德閱讀 2,075評論 0 3
  • 1. (( 雙重尖括號命令 (( ))雙尖括號和[[ ]]雙方括號都是bash shell的兩項新的擴展,提供了可...
    KevinCool閱讀 699評論 0 0
  • 1、vi 字符串查找(常用):/要查找的字符串 敲enter開始查找 n代表下一個 N代表上一個從上往下找...
    Kris_Shin閱讀 289評論 0 4

友情鏈接更多精彩內(nèi)容