1. Linux export命令簡介
成都創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
Linux export命令用于設(shè)置或顯示環(huán)境變量。
在shell中執(zhí)行程序時,shell會提供一組環(huán)境變量。export可新增,修改或刪除環(huán)境變量,供后續(xù)執(zhí)行的程序使用。export的效力僅及于該次登陸操作。
export命令用于將shell變量輸出為環(huán)境變量,或者將shell函數(shù)輸出為環(huán)境變量。
一個變量創(chuàng)建時,它不會自動地為在它之后創(chuàng)建的shell進(jìn)程所知。而命令export可以向后面的shell傳遞變量的值。當(dāng)一個shell腳本調(diào)用并執(zhí) 行時,它不會自動得到原為腳本(調(diào)用者)里定義的變量的訪問權(quán),除非這些變量已經(jīng)被顯式地設(shè)置為可用。export命令可以用于傳遞一個或多個變量的值到任何后繼腳本。
Linux export命令簡介
2. export參數(shù)
-f 代表[變量名稱]中為函數(shù)名稱。
-n 刪除指定的變量。變量實(shí)際上并未刪除,只是不會輸出到后續(xù)指令的執(zhí)行環(huán)境中。
-p 列出所有的shell賦予程序的環(huán)境變量。
一個變量創(chuàng)建時,它不會自動地為在它之后創(chuàng)建的shell進(jìn)程所知。而命令export可以向后面的shell傳遞變量的值。當(dāng)一個shell腳本調(diào)用并執(zhí)行時,它不會自動得到原為腳本(調(diào)用者)里定義的變量的訪問權(quán),除非這些變量已經(jīng)被顯式地設(shè)置為可用。export命令可以用于傳遞一個或多個變量的值到任何后繼腳本。
Linux怎么設(shè)置變量環(huán)境
3. 在linux里設(shè)置環(huán)境變量的方法
一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設(shè)置環(huán)境變量。例如我的mips-linux-gcc編譯器在“/opt/abc/123/bin”目錄下,有如下三種方法來設(shè)置環(huán)境變量:
3.1 直接用export命令,臨時生效
查看是否已經(jīng)設(shè)好,可用命令export查看:
檢查:
輸出結(jié)果:
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="zcwyou"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32: .tar=01;31: .tgz=01;31: .arc=01;31: .arj=01;31: .taz=01;31: .lha=01;31: .lz4=01;31: .lzh=01;31: .lzma=01;31: .tlz=01;31: .txz=01;31: .tzo=01;31: .t7z=01;31: .zip=01;31: .z=01;31: .Z=01;31: .dz=01;31: .gz=01;31: .lrz=01;31: .lz=01;31: .lzo=01;31: .xz=01;31: .bz2=01;31: .bz=01;31: .tbz=01;31: .tbz2=01;31: .tz=01;31: .deb=01;31: .rpm=01;31: .jar=01;31: .war=01;31: .ear=01;31: .sar=01;31: .rar=01;31: .alz=01;31: .ace=01;31: .zoo=01;31: .cpio=01;31: .7z=01;31: .rz=01;31: .cab=01;31: .jpg=01;35: .jpeg=01;35: .gif=01;35: .bmp=01;35: .pbm=01;35: .pgm=01;35: .ppm=01;35: .tga=01;35: .xbm=01;35: .xpm=01;35: .tif=01;35: .tiff=01;35: .png=01;35: .svg=01;35: .svgz=01;35: .mng=01;35: .pcx=01;35: .mov=01;35: .mpg=01;35: .mpeg=01;35: .m2v=01;35: .mkv=01;35: .webm=01;35: .ogm=01;35: .mp4=01;35: .m4v=01;35: .mp4v=01;35: .vob=01;35: .qt=01;35: .nuv=01;35: .wmv=01;35: .asf=01;35: .rm=01;35: .rmvb=01;35: .flc=01;35: .avi=01;35: .fli=01;35: .flv=01;35: .gl=01;35: .dl=01;35: .xcf=01;35: .xwd=01;35: .yuv=01;35: .cgm=01;35: .emf=01;35: .axv=01;35: .anx=01;35: .ogv=01;35: .ogx=01;35: .aac=01;36: .au=01;36: .flac=01;36: .mid=01;36: .midi=01;36: .mka=01;36: .mp3=01;36: .mpc=01;36: .ogg=01;36: .ra=01;36: .wav=01;36: .axa=01;36: .oga=01;36: .spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"
declare -x PWD="/root"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="113.105.164.145 6668 22"
declare -x SSH_CONNECTION="113.105.164.145 6668 113.105.164.151 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="2185"
留意一下輸出的這部分:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"
可以看到已經(jīng)包括了剛剛設(shè)置的變量路徑。
變量路徑和環(huán)境Linux
3.2 修改profile文件,永久生效
把目錄/opt/abc/123/bin在里面加入:
export PATH="
3.3 修改.bashrc文件,永久生效
在里面加入:
export PATH="PATH:/opt/abc/123/bin"¨K14K¨G3G在里面加入:exportPATH="PATH:/opt/abc/123/bin"
檢查結(jié)果:
3.4 修改/etc/re.local文件,永久生效
在里面加入:
export PATH="
“/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路徑已經(jīng)在系統(tǒng)環(huán)境變量中了,如果可執(zhí)行文件在這幾個標(biāo)準(zhǔn)位置,在終端命令行輸入該軟件可執(zhí)行文件的文件名和參數(shù)(如果需要參數(shù)),回車即可。
如果不在標(biāo)準(zhǔn)位置,文件名前面需要加上完整的路徑。不過每次都這樣跑就太麻煩了,一個“一勞永逸”的辦法是把這個路徑加入環(huán)境變量。命令 export PATH:/opt/abc/123/bin"“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路徑已經(jīng)在系統(tǒng)環(huán)境變量中了,如果可執(zhí)行文件在這幾個標(biāo)準(zhǔn)位置,在終端命令行輸入該軟件可執(zhí)行文件的文件名和參數(shù)(如果需要參數(shù)),回車即可。如果不在標(biāo)準(zhǔn)位置,文件名前面需要加上完整的路徑。不過每次都這樣跑就太麻煩了,一個“一勞永逸”的辦法是把這個路徑加入環(huán)境變量。命令exportPATH="路徑”(或“PATH=
PATH為環(huán)境變量名,如DVSDK;調(diào)用時用
export DVSDK)可以把這個路徑加入環(huán)境變量,但是退出這個命令行就失效了。要想永久生效,需要把這行添加到環(huán)境變量文件里。有兩個文件可選:“/etc/profile”和用戶主目錄下的“.bashprofile”,“/etc/profile”對系統(tǒng)里所有用戶都有效,用戶主目錄下的“.bashprofile”只對這個用戶有效。exportPATH="
PATH:路徑1:路徑2:…:路徑n"?。?,意思是可執(zhí)行文件的路徑包括原先設(shè)定的路徑,也包括從“路徑1”到“路徑n”的所有路徑。當(dāng)用戶輸入一個一串字符并按回車后,shell會依次在這些路徑里找對應(yīng)的可執(zhí)行文件并交給系統(tǒng)核心執(zhí)行。那個“
”。
注意,與DOS/Window不同,UNIX類系統(tǒng)環(huán)境變量中路徑名用冒號分隔,不是分號。另外,軟件越裝越多,環(huán)境變量越添越多,為了避免造成混亂,建議所有語句都添加在文件結(jié)尾,按軟件的安裝順序添加。
本文已同步至博客站:
命令格式: 命令 [-選項(xiàng)] [參數(shù)]
如:ls -la /usr
**說明: **
大部分命令遵從該格式
多個選項(xiàng)時,可以一起寫 eg:ls –l –a à ls –la
簡化選項(xiàng)與完整選項(xiàng)(注:并非所有選項(xiàng)都可使用完整選項(xiàng)) eg:ls –all à ls –a
作用:切換用戶身份
語法:su [選項(xiàng)] 用戶名
-c 僅執(zhí)行一次命令,而不切換用戶身份
$ su – root
env
$ su – root –c “useradd longjing”
文件或目錄的CRUD
英文:change directory 命令路徑:內(nèi)部命令 執(zhí)行權(quán)限:所有用戶
作用: 切換目錄
語法:cd [目錄] / 切換到根目錄
.. 回到上一級目錄
. 當(dāng)前目錄
~ 當(dāng)前用戶的宿主目錄(eg:# cd ~用戶名 進(jìn)入某個用戶的家目錄)
英文:list 命令路徑:/bin/ls 執(zhí)行權(quán)限:所有用戶
作用:顯示目錄文件
語法:ls [-alrRd] [文件或目錄]
-a all 顯示所有文件,注意隱藏文件,特殊目錄.和..
-l(long) 顯示詳細(xì)信息
-R(recursive) 遞歸顯示當(dāng)前目錄下所有目錄
-r (reverse) 逆序排序
-t(time) 按修改時間排序(降序)
英文:print working directory 命令路徑:/bin/pwd 執(zhí)行權(quán)限:所有用戶
作用:顯示當(dāng)前工作目錄
語法:pwd [-LP]
-L 顯示鏈接路徑,當(dāng)前路徑,默認(rèn)
-P 物理路徑
eg:# cd /etc/init.d
英文:make directories 命令路徑:/bin/mkdir 執(zhí)行權(quán)限:所有用戶
作用:創(chuàng)建新目錄
語法:mkdir [-p] 目錄名
-p 父目錄不存在情況下先生成父目錄 (parents)
eg: mkdir linux/test 如果目錄linux不存在,則報錯,使用參數(shù)-p即可自動創(chuàng)建父目錄。
命令路徑:/bin/touch 執(zhí)行權(quán)限:所有用戶
作用:創(chuàng)建空文件或更新已存在文件的時間
語法:touch 文件名
eg:touch a.txt b.txt touch {a.txt,b.txt} 同時創(chuàng)建多個文件
創(chuàng)建帶空格的文件 eg:touch "program files" 在查詢和刪除時也必須帶雙引號
注意:生產(chǎn)環(huán)境中,文件名,一定不要加空格
英文:copy 命令路徑:/bin/cp 執(zhí)行權(quán)限:所有用戶
作用:復(fù)制文件或目錄
語法:cp [–rp] 源文件或目錄 目的目錄
-r -R recursive 遞歸處理,復(fù)制目錄
-p 保留文件屬性 (原文件的時間不變)
eg:
1,相對路徑 cp –R /etc/* . cp –R ../aaa ../../test/
2,,絕對路徑 cp –R / ect/service /root/test/aa/bb
英文:move 命令路徑:/bin/mv 執(zhí)行權(quán)限:所有用戶
作用:移動文件或目錄、文件或目錄改名
語法:mv 源文件或目錄 目的目錄
英文:remove 命令路徑:/bin/rm 執(zhí)行權(quán)限:所有用戶
作用:刪除文件
語法: rm [-rf] 文件或目錄
-r (recursive)刪除目錄,同時刪除該目錄下的所有文件
-f(force) 強(qiáng)制刪除文件或目錄 即使原檔案屬性設(shè)為唯讀,亦直接刪除,無需逐一確認(rèn)
注意:工作中,謹(jǐn)慎使用rm –rf 命令。
擴(kuò)展點(diǎn) :刪除亂碼文件
一些文件亂碼后使用rm -rf 依然無法刪除
此時,使用ll -i 查找到文件的inode節(jié)點(diǎn)
然后使用find . -inum 查找到的inode編號 -exec rm {} -rf ;
就能順利刪除了
英文:concatenate 命令路徑:/bin/cat 執(zhí)行權(quán)限:所有用戶
作用:顯示文件內(nèi)容
語法:cat [-n] [文件名]
-n 顯示行號
eg:cat /etc/services
命令路徑:/bin/more 執(zhí)行權(quán)限:所有用戶
作用:分頁顯示文件內(nèi)容
語法:more [文件名]
空格或f 顯示下一頁
Enter鍵 顯示下一行
q或Q 退出
命令路徑:/usr/bin/head 執(zhí)行權(quán)限:所有用戶
作用:查看文件前幾行(默認(rèn)10行)
語法:head [文件名]
-n 指定行數(shù)
eg:head -20 /etc/services head –n 3 /etc/services
命令路徑:/usr/bin/tail 執(zhí)行權(quán)限:所有用戶
作用:查看文件的后幾行
語法:tail [文件名]
-n 指定行數(shù)
-f (follow) 動態(tài)顯示文件內(nèi)容
獲取一個大文件的部分文件,可使用head或tail命令
head -n 100 /etc/services config.log
英文: link 命令路徑:/bin/ln 執(zhí)行權(quán)限:所有用戶
作用:產(chǎn)生鏈接文件
語法:
ln -s [源文件] [目標(biāo)文件] 創(chuàng)建軟鏈接 源文件 使用 絕對路徑
ln [源文件] [目標(biāo)文件] 創(chuàng)建硬鏈接
eg:ln -s /etc/service ./service.soft
創(chuàng)建文件/etc/service的軟鏈接service.soft
eg:/etc/service /service.hard
創(chuàng)建文件/etc/service的硬鏈接/service.hard
軟連接類似于windows下的快捷方式
軟連接文件格式:
lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service - /etc/services
1 硬鏈接數(shù)量,如果該文件沒有硬鏈接,就只有本身一個硬鏈接。
13鏈接文件的長度
格式解析(特征):
1, 軟連接的文件類型是 l(軟連接),軟連接文件的權(quán)限 都是 lrwxrwxrwx
2,- 箭頭指向到源文件
真正的權(quán)限取決于對源文件的權(quán)限
時間值為創(chuàng)建軟連接的時間
軟連接可以跨文件系統(tǒng)生成
硬鏈接特征
1,相當(dāng)于 cp -p +同步更新
2,通過i節(jié)點(diǎn)識別,與源文件有相同的inode節(jié)點(diǎn)
3,硬鏈接不能跨分區(qū),ln /home/test/issuels /boot/test (錯誤)
4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬鏈接)
刪除軟連接
rm -rf symbolic_name
英文:manual 命令路徑:/usr/bin/man 執(zhí)行權(quán)限:所有用戶
作用:獲取命令或配置文件的幫助信息
語法:man [命令/配置文件]
eg:man ls man services
(查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)
調(diào)用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。
使用/加上關(guān)鍵的參數(shù)可直接定位搜索, n 查找下一個,shift+n 查找上一個
eg: /-l 直接查看-l的介紹
擴(kuò)展:man的級別 (幫助文檔的類型, 了解1 5即可)
man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)
1是命令,5是配置文件 man優(yōu)先顯示命令,可指定幫助類型
eg:man 5 passwd (5代表配置文件級別)
[圖片上傳失敗...(image-6718d2-1624438708895)]
help 查看shell內(nèi)置命令的幫助信息
eg:help cd
內(nèi)置命令,使用whereis,which,man都不能查看
type 命令 查看內(nèi)部命令還是外部命令
命令名 --help 列舉該命令的常用選項(xiàng)
eg: cp --help
命令路徑:/bin/find 執(zhí)行權(quán)限:所有用戶
作用:查找文件或目錄
語法:find [搜索路徑] [匹配條件]
如果沒有指定搜索路徑,默認(rèn)從當(dāng)前目錄查找
find命令選項(xiàng)
-name 按名稱查找 精準(zhǔn)查找
eg:find /etc -name “init” 在目錄/etc中查找文件init
-iname 按名稱查找
find查找中的字符匹配:
*:匹配所有
?:匹配單個字符
eg:find /etc -name “init???” 在目錄/etc中查找以init開頭的,且后面有三位的文件
模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉(zhuǎn)義,可使用 單雙引號括住查詢條件,或者使用*。
eg: # find . –name *g
-size ****按文件大小查找
以block為單位,一個block是512B, 1K=2block +大于 -小于 不寫是等于
eg:find /etc -size -204800 在etc目錄下找出大于100MB的文件
100MB=102400KB=204800block
**-type ** 按文件類型查找
f 二進(jìn)制文件l 軟連接文件 d 目錄 c 字符文件
eg: find /dev -type c
find****查找的基本原則 :
占用最少的系統(tǒng)資源,即查詢范圍最小,查詢條件最精準(zhǔn)
eg:
如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/
命令路徑:/bin/grep 執(zhí)行權(quán)限:所有用戶
作用:在文件中搜尋字串匹配的行并輸出
語法:grep [-cinv] '搜尋字符串' filename
選項(xiàng)與參數(shù):
-c :輸出匹配行的次數(shù)(是以行為單位,不是以出現(xiàn)次數(shù)為單位)
-i :忽略大小寫,所以大小寫視為相同
-n :顯示匹配行及行號
-v :反向選擇,顯示不包含匹配文本的所有行。
eg:grep ftp /etc/services
eg:#grep -v ^# /etc/inittab 去掉文件行首的#號
eg:# grep -n “init”/etc/inittab 顯示在inittab文件中,init匹配行及行號
eg:# grep -c“init”/etc/inittab 顯示在inittab文件中,init匹配了多少次
命令路徑:/usr/bin/which 執(zhí)行權(quán)限:所有用戶
作用: 顯示系統(tǒng)命令所在目錄(絕對路徑及別名)
which命令的作用是,在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果。也就是說,使用which命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令
alias ls='ls --color=auto'
/bin/ls
/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)
命令路徑:/usr/bin/whereis 執(zhí)行權(quán)限:所有用戶
作用:**搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑 **
eg: which passwd 和 whereis passwd
eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd
英文:GNU zip 命令路徑:/bin/gzip 執(zhí)行權(quán)限:所有用戶
作用:壓縮(解壓)文件,壓縮文件后綴為.gz
gzip只能壓縮文件,不能壓縮目錄;不保留原文件
語法:gzip 文件
-d將壓縮文件解壓(decompress)
解壓使用gzip –d或者 gunzip
命令路徑:/usr/bin/bzip2 執(zhí)行權(quán)限:所有用戶
作用: 壓縮(解壓)文件,壓縮文件后綴為.bz2
語法:bzip2 [-k] [文件]
-k:產(chǎn)生壓縮文件后保留原文件(壓縮比高)
-d 解壓縮的參數(shù)(decompress)
解壓使用bzip2 –d或者 bunzip2
命令路徑:/usr/bin/zip 執(zhí)行權(quán)限:所有用戶
作用: 壓縮(解壓)文件,壓縮文件后綴為.zip
語法:zip 選項(xiàng)[-r] [壓縮后文件名稱] [文件或目錄]
-r壓縮目錄
eg:zip services.zip /etc/services 壓縮文件;
zip -r test.zip /test 壓縮目錄
如果不加-r選項(xiàng),壓縮后的文件沒有數(shù)據(jù)。
解壓使用unzip
命令路徑:/bin/tar 執(zhí)行權(quán)限:所有用戶
作用:文件、目錄打(解)包
語法:tar [-zcf] 壓縮后文件名 文件或目錄
-c 建立一個壓縮文件的參數(shù)指令(create),后綴是.tar
-x 解開一個壓縮文件的參數(shù)指令(extract)
-z 以gzip命令壓縮/解壓縮
-j 以bzip2命令壓縮/解壓縮
-v 壓縮的過程中顯示文件(verbose)
-f file 指定文件名,必選項(xiàng)
1, 單獨(dú)的打包 ,解包 tar –cf tar –xf
2, 打包之后,進(jìn)行壓縮 gzip bzip2
3, 一步到位 tar –zcvf tar -zxvf
tar -cf -xf 單獨(dú) 壓縮 解壓縮
tar -z 以gzip打包目錄并壓縮 文件格式.tar.gz(.tgz)
tar -j 以bzip2打包目錄并壓縮 文件格式.tar.bz2
eg:tar -zcvf dir1.tar.gzdir1 使用gzip將目錄dir1壓縮成一個打包并壓縮文件dir1.tar.gz
eg: tar -cvf bak.tar . 將當(dāng)前目錄的文件打包為bak.tar
eg: tar -xvf bak.tar 解壓
eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip將打包文件bak.tar壓縮為bak.tar.gz
eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2將打包文件bak.tar壓縮為bak.tar.bz2
eg: tar -rvf bak.tar /etc/password 將/etc/password追加文件到bak.tar中(r)
eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的壓縮文件
eg:tar -xjf test.tar.bz2 解壓
最常用: tar + gzip
tar –zcvf 壓縮
tar –zxvf 解壓
補(bǔ)充:
1,文件路徑, 壓縮包帶文件路徑
2,源文件是保留的,不會被刪除
**shutdown **[選項(xiàng)] 時間
選項(xiàng): -c: 取消前一個關(guān)機(jī)命令
-h:關(guān)機(jī)
-r:重啟
eg:
shutdown -h now 立即關(guān)機(jī) shutdown -h 20:30 定時關(guān)機(jī)
其他關(guān)機(jī)命令 halt poweroff init 0
其他重啟命令
**reboot **重啟系統(tǒng) reboot -h now立即重啟
init 6
注意:生產(chǎn)環(huán)境中,關(guān)機(jī)命令和重啟命令謹(jǐn)慎執(zhí)行。
善于查看man help等幫助文檔
利用好Tab鍵 自動補(bǔ)全
掌握好一些快捷鍵
ctrl + c(停止當(dāng)前進(jìn)程)
ctrl + z 掛起當(dāng)前進(jìn)程,放后臺
ctrl + r(查看命令歷史) history
ctrl + l(清屏,與clear命令作用相同)
方向箭頭 上 下 可以查看執(zhí)行過的命令
ctrl + a 行首 ctrl + e 行尾
ctrl + k 清除 ctrl+ w 清除單詞
vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強(qiáng)大。
只有命令,沒有菜單。
《大碗》編輯器版
周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什么插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這么牛X的一東西,怎么著學(xué)會也得小半年吧。半年?。咳腴T都遠(yuǎn)著呢!能學(xué)會移動光標(biāo)就不錯了,你還別說耗不起,就這還是左右移動?。?!
:
[圖片上傳失敗...(image-a08366-1624438708894)]
命令模式:又稱一般模式
編輯模式:又稱底行模式,命令行模式
|
命令
|
作用
|
|
a
|
在光標(biāo)后附加文本
|
|
A(shift + a)
|
在本行行末附加文本 行尾
|
|
i
|
在光標(biāo)前插入文本
|
|
I(shift+i)
|
在本行開始插入文本 行首
|
|
o
|
在光標(biāo)下插入新行
|
|
O(shift+o)
|
在光標(biāo)上插入新行
|
|
命令
|
作用
|
|
:set nu
|
設(shè)置行號
|
|
:set nonu
|
取消行號
|
|
gg
G
|
到第一行
到最后一行
|
|
nG
|
到第n行
|
|
:n
|
到第n行
|
|
命令
|
作用
|
|
:w
|
保存修改
|
|
:w new_filename
|
另存為指定文件
|
|
:w a.txt
|
內(nèi)容追加到a.txt文件中 文件需存在
|
|
:wq
|
保存修改并退出
|
|
shift+zz(ZZ)
|
快捷鍵,保存修改并退出
|
|
:q!
|
不保存修改退出
|
|
:wq!
|
保存修改并退出(文件所有者可忽略文件的只讀屬性)
|
不保存并退出:
1, 有修改,但是修改后的內(nèi)容是不保存的
2, 有突發(fā)情況,導(dǎo)致窗口退出。修改文件之后,直接刪除同名的.swp文件
|
命令
|
作用
|
|
x
|
刪除光標(biāo)所在處字符 nx 刪除光標(biāo)所在處后n個字符
|
|
dd
|
刪除光標(biāo)所在行,ndd刪除n行
|
|
:n1,n2d
|
刪除指定范圍的行(eg :1,3d 刪除了123這三行)
|
|
dG
|
刪除光標(biāo)所在行到末尾的內(nèi)容
|
|
D
|
刪除從光標(biāo)所在處到行尾
|
|
命令
|
作用
|
|
yy、Y
|
復(fù)制當(dāng)前行
|
|
nyy、nY
|
復(fù)制當(dāng)前行以下n行
|
|
dd
|
剪切當(dāng)前行
|
|
ndd
|
剪切當(dāng)前行以下n行
|
|
p、P
|
粘貼在當(dāng)前光標(biāo)所在行下 或行上
|
|
命令
|
作用
|
|
r
|
取代光標(biāo)所在處字符
|
|
R(shift + r)
|
從光標(biāo)所在處開始替換字符,按Esc結(jié)束
|
|
u
|
undo,取消上一步操作
|
|
ctrl+r
|
redo,返回到undo之前
|
|
命令
|
作用
|
|
/string
|
向后搜索指定字符串 搜索時忽略大小寫 :set ic
|
|
?string
|
向前搜索指定字符串
|
|
n
|
搜索字符串的下一個出現(xiàn)位置,與搜索順序相同
|
|
N(Shift + n)
|
搜索字符串的上一個出現(xiàn)位置,與搜索順序相反
|
|
:%s/old/new/g
|
全文替換指定字符串
|
|
:n1,n2s/old/new/g
|
在一定范圍內(nèi)替換指定字符串
|
% 指全文,s 指開始,g 指全局替換
eg: :41,44/yang/lee/c 從41行到44行,把yang替換為lee,詢問是否替換
eg: :41,44/yang/lee/g 同上,不詢問,直接替換
使用替換命令來添加刪除注釋
:% s/^/#/g 來在全部內(nèi)容的行首添加 # 號注釋
:1,10 s/^/#/g 在1~10 行首添加 # 號注釋
vi里面怎么查命令??
:!which cp
vi里面怎么導(dǎo)入命令的結(jié)果?
:r !which cp
v 可視字符模式
V****(shift+v) 可視行模式,選擇多行操作
**ctrl+v **可視塊模式(列模式),操作列
I或者O進(jìn)入插入模式。
1,圖形化界面
2,setup 命令虛擬界面
3,修改配置文件(以網(wǎng)絡(luò)方式為NAT示例)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.129
NETMASK=255.255.255.0
GATEWAY=192.168.2. 2 #網(wǎng)段2任意,IP地址2固定,網(wǎng)段為vmnet8的設(shè)置的IP網(wǎng)段
DNS1=114.114.114.114
DNS2=8.8.8.8
重啟網(wǎng)絡(luò)生效:
service network restart
命令路徑:/bin/ping 執(zhí)行權(quán)限:所有用戶
作用:測試網(wǎng)絡(luò)的連通性
語法:ping 選項(xiàng) IP地址
-c 指定發(fā)送次數(shù)
ping 命令使用的是icmp協(xié)議,不占用端口
eg: # ping -c 3 127.0.0.1
英文:interface configure 命令路徑:/sbin/ifconfig 執(zhí)行權(quán)限:root
作用:查看和設(shè)置網(wǎng)卡網(wǎng)絡(luò)配置
語法:ifconfig [-a] [網(wǎng)卡設(shè)備標(biāo)識]
-a:顯示所有網(wǎng)卡信息
ifconfig [網(wǎng)卡設(shè)備標(biāo)識] IP地址 修改ip地址
英文:network statistics 命令路徑:/bin/netstat 執(zhí)行權(quán)限:所有用戶
作用:主要用于檢測主機(jī)的網(wǎng)絡(luò)配置和狀況
-a all顯示所有連接和監(jiān)聽端口
-t (tcp)僅顯示tcp相關(guān)選項(xiàng)
-u (udp)僅顯示udp相關(guān)選項(xiàng)
-n 使用數(shù)字方式顯示地址和端口號
-l (listening) 顯示監(jiān)控中的服務(wù)器的socket
eg:# netstat -tlnu 查看本機(jī)監(jiān)聽的端口
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
協(xié)議 待收數(shù)據(jù)包 待發(fā)送數(shù)據(jù)包 本地ip地址:端口 遠(yuǎn)程IP地址:端口
netstat –antpl
臨時生效:
hostname 主機(jī)名
[圖片上傳失敗...(image-ceed36-1624438708893)]
永久生效:修改配置文件
vi /etc/sysconfig/network
[圖片上傳失敗...(image-2b9d9e-1624438708893)]
修改主機(jī)名和ip地址之間的映射關(guān)系
vi /etc/hosts
192.168.2.120 node-1.edu.cn node-1
可配置別名
[圖片上傳失敗...(image-ec86cf-1624438708893)]
進(jìn)程和程序的區(qū)別:
1、程序是靜態(tài)概念,本身作為一種軟件資源長期保存;而進(jìn)程是程序的執(zhí)行過程,它是動態(tài)概念,有一定的生命期,是動態(tài)產(chǎn)生和消亡的。
2、程序和進(jìn)程無一一對應(yīng)關(guān)系。一個程序可以由多個進(jìn)程共用;另一方面,一個進(jìn)程在活動中有可順序地執(zhí)行若干個程序。
進(jìn)程和線程的區(qū)別:
進(jìn)程: 就是正在執(zhí)行的程序或命令,每一個進(jìn)程都是一個運(yùn)行的實(shí)體,都有自己的地址空間,并占用一定的系統(tǒng)資源。
線程: 輕量級的進(jìn)程;進(jìn)程有獨(dú)立的地址空間,線程沒有;線程不能獨(dú)立存在,它由進(jìn)程創(chuàng)建;相對講,線程耗費(fèi)的cpu和內(nèi)存要小于進(jìn)程。
進(jìn)程管理的作用?
判斷服務(wù)器的健康狀態(tài)
查看系統(tǒng)所有的進(jìn)程
殺死進(jìn)程
作用:查看系統(tǒng)中的進(jìn)程信息
語法:ps [-auxle]
常用選項(xiàng)
查看系統(tǒng)中所有進(jìn)程
ps應(yīng)用實(shí)例 # ps -u or ps -l 查看隸屬于自己進(jìn)程詳細(xì)信息
作用: 查看當(dāng)前進(jìn)程樹
語法:pstree [選項(xiàng)]
-p 顯示進(jìn)程PID
-u 顯示進(jìn)程的所屬用戶
作用:查看系統(tǒng)健康狀態(tài)
顯示當(dāng)前系統(tǒng)中耗費(fèi)資源最多的進(jìn)程,以及系統(tǒng)的一些負(fù)載情況。
語法:top [選項(xiàng)]
-d 秒數(shù),指定幾秒刷新一次,默認(rèn)3秒(動態(tài)顯示)
作用:關(guān)閉進(jìn)程
語法:kill [-選項(xiàng)] pId
kill -9 進(jìn)程號(強(qiáng)行關(guān)閉) 常用
kill -1 進(jìn)程號(重啟進(jìn)程)
添加用戶
語法:useradd [選項(xiàng)] 用戶名
修改密碼命令
語法:passwd [選項(xiàng)] [用戶名]
用戶密碼:生產(chǎn)環(huán)境中,用戶密碼長度8位以上,設(shè)置大小寫加數(shù)字加特殊字符,要定期更換密碼。
ys^h_L9t
刪除用戶
-r 刪除賬號時同時刪除宿主目錄(remove)
作用:用于查看Linux文件系統(tǒng)的狀態(tài)信息,顯示各個分區(qū)的容量、已使用量、未使用量及掛載點(diǎn)等信息??词S嗫臻g
語法:df [-hkam] [掛載點(diǎn)]
-h(human-readable)根據(jù)磁盤空間和使用情況 以易讀的方式顯示 KB,MB,GB等 -k 以KB 為單位顯示各分區(qū)的信息,默認(rèn)
-M 以MB為單位顯示信息 -a 顯示所有分區(qū)包括大小為0 的分區(qū)
作用:用于查看文件或目錄的大?。ù疟P使用空間)
語法:du [-abhs] [文件名目錄]
-a 顯示子文件的大小
-h以易讀的方式顯示 KB,MB,GB等
-s summarize 統(tǒng)計總占有量
eg:
du -a(all) /home 顯示/home 目錄下每個子文件的大小,默認(rèn)單位為kb
du -b /home 以bytes為單位顯示/home 目錄下各個子目錄的大小
du -h /home 以K,M,G為單位顯示/home 文件夾下各個子目錄的大小
du -sh /home 以常用單位(K,M,G)為單位顯示/home 目錄的總大小 -s summarize
df命令和du命令的區(qū)別:
df命令是從文件系統(tǒng)考慮的,不僅考慮文件占用的空間,還要統(tǒng)計被命令或者程序占用的空間。
du命令面向文件,只計算文件或目錄占用的空間。
作用:查看內(nèi)存及交換空間使用狀態(tài)
語法: free [-kmg]
選項(xiàng):
-k: 以KB為單位顯示,默認(rèn)就是以KB為單位顯示
-m: 以MB為單位顯示
-g: 以GB為單位顯示
清理緩存命令:
echo 1 /proc/sys/vm/drop_caches
準(zhǔn)確說,linux
不存在“用命令行登陸”的說法。
準(zhǔn)確應(yīng)該是從本地字符終端登陸。因?yàn)樵诘顷懬?,是沒有命令行的,命令行是一個用戶交互操作界面,在你還沒有登陸的時候,是不存在“命令行”的。
至于如何切換到本地字符終端,圖形狀態(tài)下用
ctrl
+
alt
+
f1
到
f6
即可,一般
linux
的設(shè)計都是
1-6
是字符終端,7
是圖形終端,部分發(fā)行版
f1
是字符終端,f2-f7
是字符終端。
你切換到這個終端里,就可以看到提示你輸入用戶名的提示了,輸入用戶名后回車就是輸入密碼。密碼無回顯,正確輸入后回車即可,別因?yàn)闆]看到密碼哪一行按了鍵盤沒反應(yīng)就覺得機(jī)器壞了。
在前面的兩個章節(jié)中,我們主要介紹了Linux基本知識和虛擬機(jī)的安裝,從當(dāng)前章節(jié)開始,我們一起學(xué)習(xí)下Linux的基本命令,在當(dāng)前章節(jié),我們先簡單的學(xué)習(xí)下一些系統(tǒng)的基本命令,慢慢的由淺入深,在后面的章節(jié)中我們將學(xué)習(xí)其他的命令比如文件操作、備份壓縮等
命令我們可以理解成在Windows中我們常常為了查看ip輸入的ipconfig,在Linux中也有很多的命令,比如操作目錄、文件、網(wǎng)絡(luò)、磁盤等等命令
使用者權(quán)限:管理員用戶
參數(shù)說明:
添加用戶czbk(傳智播客的首拼)執(zhí)行
我們使用useradd命令創(chuàng)建了一個用戶czbk
useradd 可用來建立用戶帳號。帳號建好之后,再用 passwd 設(shè)定帳號的密碼。
執(zhí)行如下
由上圖我們發(fā)現(xiàn),我們在使用useradd新增用戶的時候,出現(xiàn)了權(quán)限不足,也就是說我們使用用戶itcast沒有創(chuàng)建用戶的權(quán)限。
我們通過管理員賬號root進(jìn)行創(chuàng)建,首先我們從控制臺中切換到root
在 密碼的地方輸入我們的root密碼【root】即可進(jìn)入到root用戶下。
我們在root下繼續(xù)創(chuàng)建czbk用戶
以下是useradd常用選項(xiàng)
用戶管理的一項(xiàng)重要內(nèi)容是用戶口令的管理。用戶賬號剛創(chuàng)建時沒有口令,但是被系統(tǒng)鎖定,無法使用,必須為其指定口令后才可以使用
使用者權(quán)限:管理員用戶
指定和修改用戶口令的Shell命令是 passwd 。超級用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。命令的格式為:
可使用的選項(xiàng):
設(shè)置當(dāng)前用戶的口令
此處我們設(shè)置密碼和itcast賬號密碼一致,為【Itheima888】
usermod 命令通過修改系統(tǒng)帳戶文件來修改用戶賬戶信息
修改用戶賬號就是根據(jù)實(shí)際情況更改用戶的有關(guān)屬性,如用戶號、主目錄、用戶組、登錄Shell等。
使用者權(quán)限:管理員用戶
修改已有用戶的信息使用 usermod 命令,其格式如下:
下面命令將用戶czbk用戶名修改成czbk2019
以下是usermod常用選項(xiàng)
假如我們其中一個用戶的賬號不再使用,可以從系統(tǒng)中刪除。刪除用戶賬號就是要將/etc/passwd等系統(tǒng)文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。
使用者權(quán)限:管理員用戶
刪除一個已有的用戶賬號使用 userdel 命令,其格式如下:
-f:強(qiáng)制刪除用戶,即使用戶當(dāng)前已登錄;
-r:刪除用戶的同時,刪除與用戶相關(guān)的所有文件
此命令刪除用戶czbk2019
成功刪除用戶czbk2019
以下是userdel常用選項(xiàng)
引子:
為了方便用戶管理, 提出了 組 的概念, 如下圖所示
比如新建賬戶【張三】,那么它默認(rèn)對應(yīng)的組就是張三
一個用戶可以有一個或者多個組
假如說(如上圖),我們在企業(yè)級開發(fā)過程中,我們有多個組,其中一個開發(fā)組對應(yīng)三個賬戶,張三、李四、王五、如果就像上面提到的,一個用戶默認(rèn)對應(yīng)一個組,那么三個賬戶張三、李四、王五就有了三個不同的組,如果大家都操做一個文件,在進(jìn)行權(quán)限分配的時候,就要對不同的三個組進(jìn)行授權(quán),顯然這樣是不合理的,因?yàn)樘^繁瑣。
所以,才有了組(新建組)的概念,我們把張三、李四、王五統(tǒng)一放到【開發(fā)組】,在對文件授權(quán)的時候,我們只對【開發(fā)組】進(jìn)行授權(quán)由此,這樣的話【張三、李四、王五】都有相等的權(quán)利操作了。
新增一個用戶組(組名可見名知意,符合規(guī)范即可),然后將用戶添加到組中
使用者權(quán)限:管理員用戶
使用的選項(xiàng)有:
新增用戶組czbk-it
上面的命令向系統(tǒng)中增加了一個新組czbk-it,新組的組標(biāo)識號是在當(dāng)前已有的最大組標(biāo)識號的基礎(chǔ)上加1
以下是groupadd常用選項(xiàng)
使用者權(quán)限:管理員用戶
常用的選項(xiàng)有:
上面的命令將組czbk-it的組名修改為czbk-it-2019。
以下是groupmod常用選項(xiàng)
在查詢用戶所屬的用戶組前,我們先增加一個用戶ituser-groups
要查詢一個用戶屬于哪個用戶組,使用groups命令,其格式如下
查詢用戶ituser-groups屬于某個用戶組,執(zhí)行g(shù)roups命令
由此可見,ituser-groups用戶屬于用戶組ituser-groups(用戶組默認(rèn)與用戶名一樣)
使用者權(quán)限:管理員用戶
要刪除一個已有的用戶組,使用groupdel命令,其格式如下
刪除czbk-it-2019用戶組
刪除成功
以下是groupdel常用選項(xiàng)
1、創(chuàng)建一個新的組,并添加組ID(需要切換到root用戶)
執(zhí)行效果如下
2、創(chuàng)建3個用戶(需要切換到root用戶)
3、將上面三個用戶添加到組itbj2020group
我們通過passwd命令將三個用戶添加到組
什么是gpasswd:
gpasswd 是 Linux 下工作組文件 /etc/group 和 /etc/gshadow 管理工具,用于將一個用戶添加到組或者從組中刪除。
語法
將上面的三個用戶使用gpasswd添加到組(需要切換到root用戶)
執(zhí)行如下
查看用戶組下所有用戶(所有用戶)
執(zhí)行效果如下(或者直接打開/etc/group文件都可以)
由上圖可知:三個用戶全部都加入到了itbj2020group組。
date 可以用來顯示或設(shè)定系統(tǒng)的日期與時間
使用者權(quán)限:所有用戶
語法如下:
參數(shù)
-d字符串:顯示字符串所指的日期與時間。字符串前后必須加上雙引號;
-s字符串:根據(jù)字符串來設(shè)置日期與時間。字符串前后必須加上雙引號;
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息
1、設(shè)置時間
用 -s選項(xiàng)可以設(shè)置系統(tǒng)時間,如下:
2、顯示時間
協(xié)調(diào)世界時,又稱世界統(tǒng)一時間、世界標(biāo)準(zhǔn)時間、國際協(xié)調(diào)時間。由于英文(CUT)和法文(TUC)的縮寫不同,作為妥協(xié),簡稱UTC。。
(2)GMT
即 格林尼治 平太陽時間,是指格林尼治所在地的標(biāo)準(zhǔn)時間,也是表示地球自轉(zhuǎn)速率的一種形式
外文名: Universal Time
其他外文名 G.M.T.(Greenwich Mean Time)
(3)CST
北京時間 (中國國家標(biāo)準(zhǔn)時間) 北京時間是中國采用國際時區(qū)東八時區(qū)的區(qū)時作為標(biāo)準(zhǔn)時間 。 北京時間并不是北京(東經(jīng)116.4°)的地方時間,而是東經(jīng)120°的地方時間,故東經(jīng)120度地方時比北京的地方時早約14分半鐘。因?yàn)楸本┨幱趪H時區(qū)劃分中的東八區(qū),同格林尼治時間(世界時)整整相差8小時(即北京時間=世界時+8小時),故命名為“北京時間”。東八區(qū)包括的范圍從東經(jīng)112.5°到東經(jīng)127.5°,以東經(jīng)120°為中心線,東西各延伸7.5°,總寬度為15°的區(qū)域。 而中國幅員遼闊,東西相跨5個時區(qū)(即東五區(qū)、東六區(qū)、東七區(qū)、東八區(qū)、東九區(qū)5個時區(qū))授時臺必須建在地理中心地帶,從而也就產(chǎn)生了長短波授?!氨本r間”與“北京當(dāng)?shù)貢r間”是兩個概念, “北京時間”的發(fā)播不在北京,而在陜西蒲城(處于東七區(qū))
(4)東八區(qū)
東八區(qū)( UTC / GMT +08:00)是比 世界協(xié)調(diào)時間 (UTC)/ 格林尼治時間 (GMT)快8小時的時區(qū),理論上的位置是位于 東經(jīng) 112.5度至127.5度之間,是東盟標(biāo)準(zhǔn)的其中一個候選時區(qū)。當(dāng)格林尼治標(biāo)準(zhǔn)時間為0:00時,東八區(qū)的標(biāo)準(zhǔn)時間為08:00
pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n486" mdtype="fences" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); position: relative !important; background-position: inherit; background-repeat: inherit;"總結(jié):
上面提到了很多知識:即UTC/GMT/CST/東八區(qū)
總結(jié)一下就是,北京時間(中國國家標(biāo)準(zhǔn)時間CST)采用東八區(qū)區(qū)時,即:
協(xié)調(diào)世界時(UTC)+8 / 格林尼治時間(GMT)+8
也就是說+8后的時間才是北京時間/pre
logname命令用于顯示用戶名稱。
執(zhí)行l(wèi)ogname指令,它會顯示目前用戶的名稱
語法為如下:
參數(shù) :
顯示登錄賬號的信息
su命令用于變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。
使用權(quán)限:所有使用者。
語法如下:
變更帳號為 root 并在執(zhí)行 ls 指令后退出返回原使用者
切換到root
這樣的話,我們就進(jìn)入到了root用戶下。
id命令用于顯示用戶的ID,以及所屬群組的ID。
id會顯示用戶以及所屬群組的實(shí)際與有效ID。若兩個ID相同,則僅顯示實(shí)際ID。若僅指定用戶名稱,則顯示目前用戶的ID。
使用者權(quán)限:所有用戶
語法
參數(shù)說明:
顯示當(dāng)前用戶信息
執(zhí)行效果如下
sudo:控制用戶對系統(tǒng)命令的使用權(quán)限,root允許的操作。
通過sudo可以提高普通用戶的操作權(quán)限
使用者權(quán)限:普通用戶
語法如下:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
參數(shù)說明 :
sudo命令使用
指定root用戶執(zhí)行指令
修改網(wǎng)卡配置文件
比如,在下面的例子中,我們使用普通用戶修改網(wǎng)卡的配置文件,在進(jìn)行保存的時候,提示我們【無法打開并寫入文件】,那么此時,我們可以通過sudo命令來提升自己的寫入權(quán)限
執(zhí)行:
執(zhí)行效果如下(保存)
然后點(diǎn)擊回車
執(zhí)行效果如下(鍵入itcast密碼)
執(zhí)行保存
top命令用于實(shí)時顯示 process 的動態(tài)。
使用權(quán)限:所有使用者。
顯示進(jìn)程信息
執(zhí)行效果如下
顯示完整命令,與top命令不同的就是command屬性像是進(jìn)行了命令補(bǔ)全
執(zhí)行效果如下
執(zhí)行效果如下
Linux ps命令用于顯示當(dāng)前進(jìn)程 (process) 的狀態(tài)信息
使用者權(quán)限:所有用戶
語法如下:
顯示進(jìn)程信息
顯示指定用戶信息
顯示所有進(jìn)程信息
Linux kill命令用于刪除執(zhí)行中的程序或工作(可強(qiáng)制中斷)
使用者權(quán)限:所有用戶
語法如下:
參數(shù)說明 :
殺死一個進(jìn)程
強(qiáng)制殺死進(jìn)程
徹底殺死進(jìn)程
殺死指定用戶所有進(jìn)程
1.方法一 過濾出itcast用戶進(jìn)程
2.方法二,直接殺死
shutdown命令可以用來進(jìn)行關(guān)閉系統(tǒng),并且在關(guān)機(jī)以前傳送訊息給所有使用者正在執(zhí)行的程序,shutdown 也可以用來重開機(jī)
使用者權(quán)限:管理員用戶
語法如下:
參數(shù)說明 :
立即關(guān)機(jī)
指定1分鐘后關(guān)機(jī),1分鐘關(guān)機(jī)并顯示警告信息
指定1分鐘后重啟,并發(fā)出警告信息
reboot命令用于用來重新啟動計算機(jī)
使用者權(quán)限:管理員、普通(需要驗(yàn)證)用戶
語法如下:
參數(shù) :
開始重新啟動
重啟效果如下
who命令用于顯示系統(tǒng)中有哪些使用者正在上面,顯示的資料包含了使用者 ID、使用的終端機(jī)、從哪邊連上來的、上線時間、呆滯時間、CPU 使用量、動作等等
使用者權(quán)限:所有使用者都可使用。
語法如下:
參數(shù)說明 :
顯示當(dāng)前登錄系統(tǒng)的用戶
顯示明細(xì)(標(biāo)題)信息
由上圖可知,截止到現(xiàn)在只有itcast在線。
引子:
timedatectl是用于控制系統(tǒng)時間和日期??梢杂脕聿樵兒透南到y(tǒng)時鐘于設(shè)定,同時可以設(shè)定和修改時區(qū)信息。
在實(shí)際開發(fā)過程中,系統(tǒng)時間的顯示會和實(shí)際出現(xiàn)不同步;我們一般為了校正服務(wù)器時間、時區(qū)的時候會使用timedatectl命令/pre
使用者權(quán)限:所有使用者都可使用,設(shè)置時間需要管理員,下面會標(biāo)注。
幾個常見的概念,進(jìn)行總結(jié)如下:
顯示系統(tǒng)的當(dāng)前時間和日期,使用命令行中的timedatectl命令
執(zhí)行效果如下
上圖顯示中國時區(qū)
作為高性能WEB服務(wù)器,只調(diào)整Nginx本身的參數(shù)是不行的,因?yàn)镹ginx服務(wù)依賴于高性能的操作系統(tǒng)。
以下為常見的幾個Linux內(nèi)核參數(shù)優(yōu)化方法。
net.ipv4.tcp_max_tw_buckets
對于tcp連接,服務(wù)端和客戶端通信完后狀態(tài)變?yōu)閠imewait,假如某臺服務(wù)器非常忙,連接數(shù)特別多的話,那么這個timewait數(shù)量就會越來越大。
畢竟它也是會占用一定的資源,所以應(yīng)該有一個最大值,當(dāng)超過這個值,系統(tǒng)就會刪除最早的連接,這樣始終保持在一個數(shù)量級。
這個數(shù)值就是由net.ipv4.tcp_max_tw_buckets這個參數(shù)來決定的。
CentOS7系統(tǒng),你可以使用sysctl -a |grep tw_buckets來查看它的值,默認(rèn)為32768,
你可以適當(dāng)把它調(diào)低,比如調(diào)整到8000,畢竟這個狀態(tài)的連接太多也是會消耗資源的。
但你不要把它調(diào)到幾十、幾百這樣,因?yàn)檫@種狀態(tài)的tcp連接也是有用的,
如果同樣的客戶端再次和服務(wù)端通信,就不用再次建立新的連接了,用這個舊的通道,省時省力。
net.ipv4.tcp_tw_recycle = 1
該參數(shù)的作用是快速回收timewait狀態(tài)的連接。上面雖然提到系統(tǒng)會自動刪除掉timewait狀態(tài)的連接,但如果把這樣的連接重新利用起來豈不是更好。
所以該參數(shù)設(shè)置為1就可以讓timewait狀態(tài)的連接快速回收,它需要和下面的參數(shù)配合一起使用。
net.ipv4.tcp_tw_reuse = 1
該參數(shù)設(shè)置為1,將timewait狀態(tài)的連接重新用于新的TCP連接,要結(jié)合上面的參數(shù)一起使用。
net.ipv4.tcp_syncookies = 1
tcp三次握手中,客戶端向服務(wù)端發(fā)起syn請求,服務(wù)端收到后,也會向客戶端發(fā)起syn請求同時連帶ack確認(rèn),
假如客戶端發(fā)送請求后直接斷開和服務(wù)端的連接,不接收服務(wù)端發(fā)起的這個請求,服務(wù)端會重試多次,
這個重試的過程會持續(xù)一段時間(通常高于30s),當(dāng)這種狀態(tài)的連接數(shù)量非常大時,服務(wù)器會消耗很大的資源,從而造成癱瘓,
正常的連接進(jìn)不來,這種惡意的半連接行為其實(shí)叫做syn flood攻擊。
設(shè)置為1,是開啟SYN Cookies,開啟后可以避免發(fā)生上述的syn flood攻擊。
開啟該參數(shù)后,服務(wù)端接收客戶端的ack后,再向客戶端發(fā)送ack+syn之前會要求client在短時間內(nèi)回應(yīng)一個序號,
如果客戶端不能提供序號或者提供的序號不對則認(rèn)為該客戶端不合法,于是不會發(fā)ack+syn給客戶端,更涉及不到重試。
net.ipv4.tcp_max_syn_backlog
該參數(shù)定義系統(tǒng)能接受的最大半連接狀態(tài)的tcp連接數(shù)??蛻舳讼蚍?wù)端發(fā)送了syn包,服務(wù)端收到后,會記錄一下,
該參數(shù)決定最多能記錄幾個這樣的連接。在CentOS7,默認(rèn)是256,當(dāng)有syn flood攻擊時,這個數(shù)值太小則很容易導(dǎo)致服務(wù)器癱瘓,
實(shí)際上此時服務(wù)器并沒有消耗太多資源(cpu、內(nèi)存等),所以可以適當(dāng)調(diào)大它,比如調(diào)整到30000。
net.ipv4.tcp_syn_retries
該參數(shù)適用于客戶端,它定義發(fā)起syn的最大重試次數(shù),默認(rèn)為6,建議改為2。
net.ipv4.tcp_synack_retries
該參數(shù)適用于服務(wù)端,它定義發(fā)起syn+ack的最大重試次數(shù),默認(rèn)為5,建議改為2,可以適當(dāng)預(yù)防syn flood攻擊。
net.ipv4.ip_local_port_range
該參數(shù)定義端口范圍,系統(tǒng)默認(rèn)保留端口為1024及以下,以上部分為自定義端口。這個參數(shù)適用于客戶端,
當(dāng)客戶端和服務(wù)端建立連接時,比如說訪問服務(wù)端的80端口,客戶端隨機(jī)開啟了一個端口和服務(wù)端發(fā)起連接,
這個參數(shù)定義隨機(jī)端口的范圍。默認(rèn)為32768 61000,建議調(diào)整為1025 61000。
net.ipv4.tcp_fin_timeout
tcp連接的狀態(tài)中,客戶端上有一個是FIN-WAIT-2狀態(tài),它是狀態(tài)變遷為timewait前一個狀態(tài)。
該參數(shù)定義不屬于任何進(jìn)程的該連接狀態(tài)的超時時間,默認(rèn)值為60,建議調(diào)整為6。
net.ipv4.tcp_keepalive_time
tcp連接狀態(tài)里,有一個是established狀態(tài),只有在這個狀態(tài)下,客戶端和服務(wù)端才能通信。正常情況下,當(dāng)通信完畢,
客戶端或服務(wù)端會告訴對方要關(guān)閉連接,此時狀態(tài)就會變?yōu)閠imewait,如果客戶端沒有告訴服務(wù)端,
并且服務(wù)端也沒有告訴客戶端關(guān)閉的話(例如,客戶端那邊斷網(wǎng)了),此時需要該參數(shù)來判定。
比如客戶端已經(jīng)斷網(wǎng)了,但服務(wù)端上本次連接的狀態(tài)依然是established,服務(wù)端為了確認(rèn)客戶端是否斷網(wǎng),
就需要每隔一段時間去發(fā)一個探測包去確認(rèn)一下看看對方是否在線。這個時間就由該參數(shù)決定。它的默認(rèn)值為7200秒,建議設(shè)置為30秒。
net.ipv4.tcp_keepalive_intvl
該參數(shù)和上面的參數(shù)是一起的,服務(wù)端在規(guī)定時間內(nèi)發(fā)起了探測,查看客戶端是否在線,如果客戶端并沒有確認(rèn),
此時服務(wù)端還不能認(rèn)定為對方不在線,而是要嘗試多次。該參數(shù)定義重新發(fā)送探測的時間,即第一次發(fā)現(xiàn)對方有問題后,過多久再次發(fā)起探測。
默認(rèn)值為75秒,可以改為3秒。
net.ipv4.tcp_keepalive_probes
第10和第11個參數(shù)規(guī)定了何時發(fā)起探測和探測失敗后再過多久再發(fā)起探測,但并沒有定義一共探測幾次才算結(jié)束。
該參數(shù)定義發(fā)起探測的包的數(shù)量。默認(rèn)為9,建議設(shè)置2。
設(shè)置和范例
在Linux下調(diào)整內(nèi)核參數(shù),可以直接編輯配置文件/etc/sysctl.conf,然后執(zhí)行sysctl -p命令生效。
新聞名稱:linux設(shè)置命令行參數(shù),linux命令選項(xiàng)參數(shù)
標(biāo)題鏈接:http://jinyejixie.com/article42/hsichc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計、移動網(wǎng)站建設(shè)、定制網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)