liunx常用知識基本命令大全


liunx基礎命令使用


臨時生效成中文

LANG=zh_CN.UTF8

永久生效中文

vim /etc/locale.conf
#LANG="en_US.UTF-8"        #修改為LANG=zh_CN.UTF8

網絡配置

IPADDRIP地址 NETMASK子網掩碼 GATEWAY網關  DNS1  DNS2

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.30.200
NETMASK=255.255.255.0
GATEWAY=192.168.30.2
DNS1=211.100.225.34
DNS2=114.114.114.114
uptime 查看容器或者物理機運行多長時間
echo $PATH ——查看環境變量,命令都從哪些路徑目錄里找
ip link ——查看網卡信息    ifconfig ——查看Linux網絡網卡信息
ifconfig eth0 up ——啟動網卡物理設備    ifup eth0 ——開啟網卡    ifdown eth0 ——關閉網卡

#Centos6.X修改主機名字
/etc/sysconfig/network   /etc/hosts

#Centos7.X
hostnamectl set-hostname --static hostname      #--static支持大寫,不加參數只支持小寫

常用基本命令

備注:路徑都需要用絕對路徑

seq 100 >> test ——可以直接重定向到文件里    df -h ——看磁盤掛載磁盤容量情況

stat 文件名 ——查看文件的所有時間    reboot ——重啟服務器       whoami ——查看當前用戶   

w ——查詢登陸到主機的用戶信息	echo $? ——檢查上一條命令是否成功    history ——查看歷史命令記錄 -c 清空

which ——查找命令安裝路徑和有沒有此命令    pwd ——查看當前位置路徑    cd .. ——返回上級目錄

cd 目錄 ——進入下級目錄    cd ~ ——直接回到用戶家目錄    mv ——移動(源)到(目標)

cp -r ——全部復制(源位置)到(目標位置)    cp -p 文件目錄名 ——復制文件和目錄,文件屬性和時間等不變

touch ——創建文件    mkdir ——創建目錄    { . . } ——表示序列,可以用的方式創建文件和目錄{1..9}

mkdir -p ——連續創建目錄    rm -f ——強制刪除文件    rm -r ——刪除目錄    rm -rf ——強制刪除目錄文件

echo " " > ——輸出重定向,清除原文件內容,把內容追加到文件的末尾    ">>" ———追加重定向,追加內容到文件的尾部    "1>>" ——正確追加重定向

"2>>" ——錯誤追加重定向    "&>>" ——正確錯誤都追加重定向    type 命令 ——查看屬於內部命令還是外部命令
help ——查看命令的幫助    alias 命令=命令 ——別名,修改替代改名命令 

grep過濾命令參數

grep -c ——過濾的時候計數    grep -v ——過濾的時候取反    grep -n "條件" ——加行號    grep -w "條件" ——精確匹配

grep -l "條件" ——顯示匹配到內容的文件的名字    grep -c "^$" 文件名 | wc -l ——過濾一個文件有多少空行

Xargs ——默認將管道符傳遞過來的字符串轉換為文件名

在liunx中正常看一個文件是豎列顯示,如果想在終端上顯示為橫向可以這樣操作

cat 文件名 |tr "\n" " "

cat 文件名 |tr "\n" "|"(替換換行符后可以隨意替換其他字符來代替也可以使用空格)

ls所有參數和各種看

ls——查看當前位置里的所有文件	ll ——以列表形式查看詳細信息    ls -t ——按時間顯示文件和目錄

ls -a ——查看隱藏文件和目錄    ll -d ——顯示目錄本身的屬性	du -sh 文件名 ——查看文件的大小

stat ——看一下文件的詳細信息	cat ——查看文件全部內容	tac ——倒着看  nl ——行號橫着看

more —— 一頁一頁的看	less ——一頁一頁的看,可以上下移動	  tail -f 文件名 ——動態查看文件信息,實時監測

head ——默認只看文件前十行!例如:head -20 看前20行文件內容	tail ——默認只看文件后十行!例如:tail -30 看后30行文件內容

find參數搭配

-type d ——代表目錄    -type f ——代表文件
find 配合 -size 按大小查找文件或者目錄
find 配合 mtime 按時間查找文件和目錄

文件目錄精確查找

find 路徑 -name "文件名字" ——精確查找某個文件
find 路徑 -type f -name "文件名字" ——精確查找某個文件    例如:find . -type f -name "yunjisuan.txt"`**

模糊查找某些文件

find .-type f -name "bent*"

精確刪除一個文件

find 路徑 -type f -name "文件名" | xargs rm -rf    例如:find . -type f -name "yunjisuan.txt" | xargs rm -f

批量刪除一堆文件

find 路徑 -type f -name "*"| xargs rm -rf    例如:find . -type f -name "*" | xargs rm -rf

批量清空一堆文件里的內容

for i in `find 路徑 -name "*.log"`; do echo >$i; done

用echo >執行的清理文件並非完全為空的,而是有4K大小,用cat /dev/null >清理的文件內容大小完全為0

for i in `find 路徑 -name "*.log"`; do cat /dev/null >$i; done

精確移動某一個文件目錄:

find  -type  f  -name "文件名" | xargs  -i mv {} 移動的路徑    例如:find -type f -name "bent.txt" | xargs -i mv {} /root/

find  -type  f  -name "文件名"  -exec  mv {} 移動的路徑 \;    例如:find -type f -name "bent.txt" -exec mv {} /root \;

文件內保留一個其他全部刪除

!和 -v 取反保留的意思

find 路徑 !  -name "文件名"  -type  f  | xargs rm - rf
 
例如:find . ! -name "bent.txt" -type f | xargs rm -rf
例如:grep -v "bent.txt" | xargs rm -f

tar打包解壓

gzip 文件名 壓縮 -- gzip -d 文件名 解壓縮

bzip2 文件名 壓縮 -- bzip2 -d 文件名 解壓縮

打包 tar jcvftar zcvf (v可加可不加代表過程)

z 代表調用gzip  j 代表調用bzip2

打包:打包以后的路徑包名 源包名路徑

例如:tar jcf /root/fang.tar.gz fang

打包排出某個文件不打

tar jcf 路徑包名.tar.gz 源包名字 --exclude=排出的文件名字    例如:tar jcf /root/fang.tar.gz fang --exclude=/fang/yunjisuan.txt

解包:tar xvf 包名 例如:tar xf fang.tar.gz直接解壓到當前目錄

指定目錄解包:tar xf 包名 -C 解包路徑 例如:tar xf fang.tar.gz -C /root/bent

vim用法

vim 三種模式 1.末行模式 2.正常模式 3.輸入模式  正常模式只能正常上下移動

i ——進入輸入模式    esc ——進去正常模式    :末行模式  q ——保持  w ——保存  wq ——保存退出  q! ——強退不保存

G ——跳到末行  gg ——回到第一行  參數+gg ——到指定行  a ——光標后面插入字符  i  ——光標前面插入字符

I ——立刻調到行首  A ——立刻調到行尾    o ——另起下一行輸入    O ——另起上一行輸入

dd ——刪除當前行  參數+dd ——剪切  p ——移動到末尾粘貼    參數+yy ——復制

h ——向前    j ——向下    k ——向上    l ——向后  Ctal c ——回到正常模式    shift zz ——保存並退出

光標移動到某個字符 r 不用進入出入模式直接改某個字符

rmp參數

/media/cdrom ——掛載光盤默認路徑    /dev/sr0 ——光盤的默認路徑

mount /dev/sr0 /media/cdrom ——掛載光盤唯一路徑    umount /dev.sr0 ——卸載掛的光盤
rpm -q 軟件包名字 ——精確查找某個軟件包的名字是否已經安裝了    rpm -qa ——查看系統中所有已安裝的rpm軟件包

rpm -qa | grep 包名 ——模糊查找某一個軟件包    rpm -qf 命令路徑 ——查看命令所屬的軟件包的名字

rpm -ivh rpm 軟件包的路徑 ——軟件包安裝    rpm -e 軟件包名字 ——卸載軟件包 

rpm -e 包名 --nodeps ——強制卸載軟件包

yum倉庫安裝搭建和安裝

/etc/yum.repos.d/ ——yum倉庫的路徑位置

yum -y clean all ——清空就yum緩存    yum makecache ——生成新yum緩存

yum -y  install 軟件包名     yum安裝軟件包

yum hsisory list            查看yum安裝歷史紀錄 

yum -y history undo 序號    進行回滾安裝操作回退

yum -y remove 軟件包名      yum卸載軟件包

增刪用戶和權限

超級用戶root含有一個組也叫root

用戶賬號路徑有兩個/etc/passwd  /etc/shadow

cat /etc/passwd
root:        x:        0:  0:      root:      /root:       /bin/bash
賬戶名    密碼占位符     UID:GID      空備注     家目錄路徑    是否可登陸系統

#/bin/bash可登陸操作系統  /sbin/nologin 不能登陸操作系統

cat /etc/shadow
root:$6$VwcbTSr3XgtUuAgN$YNh3W5KIQdjomr0IUbH0OAf/Lnh/55/sWLAFCrHRL/3VHqquk5Zwg3O5Z.Kwot2RL9AZJXqS24muL0hVBV5sG.:17822:0:99999:7:::
賬戶名:密碼暗文:上次修改密碼已過多少天:0表示隨時可以修改密碼:密碼永久有效

chsh 用戶名 改成/sbin/nologin    ——修改登錄賬號權限

-M 不為用戶建立家目錄  -s 指定用戶的登陸shell  -e 指定賬號失效時間 

創建用戶          useradd 名字
創建用戶密碼      passwd 用戶名
刪除用戶          userdel -r 用戶名
passwd -l 用戶名 ——鎖定密碼(!!)    -U ——解鎖用戶賬號

免交互一條命令創建賬戶密碼

[root@ /root/master] #useradd chen

[root@ /root/master] #echo "123456" |passwd --stdin chen
Changing password for user chen.
passwd: all authentication tokens updated successfully.

[root@ /root/master] #su - chen
Last failed login: Wed Jul 28 13:09:55 CST 2021 from 10.170.25.9 on ssh:notty
There were 8 failed login attempts since the last successful login.
[chen@ ~]$ 

用戶組 /etc/group /etc/gshadow

id 賬號名 ——看這個賬號有沒有和基本信息 finger 賬號名 ——看這個賬號的詳細信息 stat -c %A 文件名 查看權限

#第一位表示文件類型
-:表示一般文件	  d:表示目錄	  l:表示軟連接	  c:表示設備字符設備文件		b:表示塊設備文件


例如:-rw-r--r-- 表示的是一個權限為644的文件。 例如:rwxr-xr-x 表示的是一個權限為755的目錄。

chmod 改文件的權限  chown 修改屬主  

liunx規定目錄最高權限是777,文件最高權限是666

目錄和文件的權限受umask影響,所以創建目錄和文件的最高權限就是666-umask777-umask  umask權限掩碼默認0022

硬盤分區詳解

硬盤每個扇區可存放512字節 MBR一個扇區前446字節叫做mbr引導區,64字節是分區表, 后2字節是校驗碼。

磁盤路徑 /dev/sda1(a表示第幾個塊硬盤)(1表示第幾個分區)邏輯分區從5開始

fdisk -l ——查看磁盤情況
fdisk ——磁盤分區只能分2T以下的硬盤    fdisk 磁盤路徑 ——磁盤分區
p打印磁盤分區表    m幫助    n創建一個磁盤分區    p分主分區    e分擴展分區從4開始    l虛擬分區從5開始    d刪除一個分區

q不保存分區直接退出    w保存磁盤分區退出    t改分區名字    L看分區名字    partx如果分區沒出來刷新一下

blkid ——查看硬盤是否有UUID號 mkfs. ext4 /磁盤路徑 ——格式化 parted無論多大都可以直接分區 quit退出不用保存

lvm邏輯卷

pvcreate 將磁盤那些盤創建pe化 例:pvcreate /dev/sd[bcd]那些盤 pvs查看 pe化
vgcreate -s 多大 vg0 /dev/sd[bcd]路徑 將pe化的盤組成卷組 vgs 查看卷組
lvcreate -L 多大 -n 名字 從哪割的卷組名字 將卷組割出一部分組成LVM lvs 查看lvm
lvextend -L +多大 lvm盤路徑 在線擴容磁盤容量
resize2fs 探測擴容磁盤沒有格式化的自動格式化
/etc/rc.local個人配置腳本自動開機執行

raid詳解

【raid 0】擁有極高的讀寫效率,幾塊盤組合近似幾倍的讀寫速度,數據非常不安全,某一塊盤出現問題,所有硬盤的數據全都用了

【raid 1】 非常安全,自動備份,可修復,成本高,多少塊盤容量不變,讀寫速度都不變,最少2塊

【raid 5】 安全性和性能兼顧的raid組合,突出性價比,近似n-1倍的讀寫速度,可用容量近似n-1 最少3塊

【raid 10】 突出安全性,近似支持壞一半數量的硬盤,可容量只用一半,只能有偶數盤來組合,最少4塊,偏貴

有硬raid和軟raid區分,硬raid一般是在企業工作中服務器上做

#軟raid 組成步驟
mdadm -Cv /dev/md5 -l5 -n3 -x1 /dev/sd[那幾塊盤]
mdadm -D /dev/md5 或 cat/proc/mdstat 查看同步率
mkfs.ext4 /dev/md5

mdadm /dev/md5 -r /dev/sdb  (-a插盤)取盤命令

程序服務啟動項

Linux七種啟動級別:

0.關機模式
1.單用戶模式
2.沒有NFS文件系統的多用戶模式
3.命令行模式
4.保留模式
5.桌面模式
6.重啟模式

開機十項啟動項:

① 開機自檢(BIOS)主板啟動
② MBR(硬盤)引導
③ 操作系統(GRUB)菜單
④ 加載內核(Kernel)|啟動操作系統核心
⑤ init進程初始化 | 執行kernel的任務 (init是主進程)
⑥ 讀取/etc/inittab 配置文件(開機以哪個模式啟動)
⑦ 執行/etc/rc.d/rc.sysinit 初始化腳本
⑧ 執行/etc/rc.d/ 腳本 通腳本過這個文件以大S來判定是否開機自啟動
⑨ 執行/etc/rc.d/rc.local 個人配置腳本
⑩ 啟動 mingetty 進程

runlenel ——查看當前系統的啟動級別    init ——快速切換啟動級別

/dev/null 黑洞文件,什么文件到這個文件里都會消失
/dev/zero 無線數據流 無論取多大數據都可以取出來,取出來只有大小,沒有任何內容

來測試磁盤的讀寫速度

dd if=/dev/zero 0f=路徑 bs=多大 count=幾次**
#  從那取數據   放到哪里 取多少 取幾次

Centos6.X查看服務命令及參數,Centos7.X取消此命令改為systemctl

chkconfig --list ——指定某一個服務名,單一看

chkconfig 服務名 ——默認執行2,3,4,5,模式,開機自啟動和關閉

chkconfig --level 模式 服務名 (on 開)(0ff 關)——指定一個模式自啟動和關閉 

service 服務名 status ——查看狀態    stop ——關閉    start ——開啟 

/etc/init.d/ 服務名 stop ——關閉  start ——開啟

進程服務和終止進程

sshd這個進程主要是負責遠程連接服務的進程 socket進程是24小時不間斷監聽某個固定端口的進程

ps aux ——查看所有進程的內存和cpu    ps -u ——單一查看某個進程服務

ps -ef | grep 服務名 ——過濾某個進程在沒在啟動狀態    pgrep 服務名 -l ——查看某個服務的pid

命令運行 & 進程開啟直接在后台運行

ctri z切換后台  fg 1切回前台 jobs查看所有后台

#查看僵屍進程
ps aux | head -1

top看右上角

ps -aux | grep “^Zz$”| wc -l

netstat 等於 ss

netstat -antup 查看發訪問服務器和進程    netstat -antup|grep 服務 ——查看單個進程

netstat -an | grep ESTAB | wc -l(端口號) ——查看有幾個並發的進程連接處 

3種查看路由器

route -n netstat -rn ip route

殺進程:

kill PID號  #需要根據PID號殺進程 -9 強殺

killall    #需要根據服務名殺,因為還會子進程全部殺死 -9強殺

pkill -9   #根據服務器名殺,不殺子進程后代,它能踢人還能根據終端名殺

定時任務介紹

定時任務服務名:crond 必須開啟這個服務 定時任務的配置文件路徑/etc/crontab/

#設置當前系統全部時間
date -s "01:01:01 20180826"
/var/spool/cron/             #定時任務存放文件的目錄
tail -f /var/log/cron        #定時任務日志存放目錄

定時任務以根為起始HOME=/ 定時任務默認為/bin/bash,定時任務的環境變量和bash的環境變量作用范圍不同。

如果定時任務有信息輸出默認給root發郵件MAILTO=root 輸出默認發送郵件到/var/spool/mail/這個目錄

如果系統postfix被關閉郵件發送失敗,就會在此目錄下生成瑣碎小文件件/var/spool/postfix/maildrod/

定時任務書寫格式:

定時任務里的命令必須用絕對路徑,定時任務如果產生輸出要重定向到 &>/dev/null 垃圾箱

*(分0-59)* (時0-23)* (日1-31)* (月1-12) *(周0-6)

crontab -e       #進入定時編輯模式

crontab -l       #查看當前系統的定時任務

crontab -u       #用戶名 -l 查看指定某個用戶定時任務

crontab -r       #刪除定時任務

sudo的用法和i鎖

lsattr 查看是否有i鎖或者a鎖

chattr +i 文件名      #加i鎖后只有只讀權限 
chattr +a 文件名      #加a鎖后普通用戶不能vim寫內容,只能追加
chattr -a 文件名      #-i 解除i鎖和a鎖

su安全日志文件路徑/var/log/secure

su - 賬戶名 ————#切換用戶賬號        su - 用戶名字 -c ————#臨時切換一次 `
visudo       #打開sudo的配置文件   #sudo代表授權

sudo的配置文件里這一行,第一個ALL=代表IP地址 第二個ALL帶表所有命令進行免密登陸加上PASWWD=ALL

sudo的配置文件里命令要求絕對路徑來表示 (,表示隔離)(!表示取反不讓)

indoe號block存儲

ll -i ————#可以看文件的inode的號      df -i ————#看inode的容量    df -h ————#看block容量

文件格式化就是為了生成inodeblockinode是為了來存存蓄這些數據的屬性信息為了區分,一般占256字節

block是為了存蓄文件的內容 ,一般一個字節4K

軟硬連接

硬鏈接組成 inode號是一個,刪除一個都沒影響,不能硬連接目錄 ln 原文件 硬鏈接名

軟連接組成有自己的inode號,刪除源鏈接軟連接無法使用,目錄只能做軟連接不能做硬連接 ln -s 源文件 軟連接名

awk的切割使用

用awk取出文件內容里所記錄的名字和每個名字下面的總數是多少

# cat all.txt
[100] 15:06:03 [SUCCESS] 405b.cloud
 Id    Name                           State
----------------------------------------------------
 1    i-nd105asdfjkhsfowefwefwfe run
 2    i-nd105asdfjkhsfowefwefwfe run
 3    i-nd105asdfjkhsfowefwefwfe run
 4    i-nd105asdfjkhsfowefwefwfe run
 5    i-nd105asdfjkhsfowefwefwfe run
 6    i-nd105asdfjkhsfowefwefwfe run
 7    i-nd105asdfjkhsfowefwefwfe run

[100] 15:06:03 [SUCCESS] 405b0.cloud
 Id    Name                           State
----------------------------------------------------
 1    i-nd105asdfjkhsfowefwefwfe run
 2    i-nd105asdfjkhsfowefwefwfe run

[100] 15:06:05 [SUCCESS] 405b.cloud
 Id    Name                           State
----------------------------------------------------
 1    i-nd105asdfjkhsfowefwefwfe run
 2    i-nd105asdfjkhsfowefwefwfe run
 3    i-nd105asdfjkhsfowefwefwfe run
 4    i-nd105asdfjkhsfowefwefwfe run
 5    i-nd105asdfjkhsfowefwefwfe run
 6    i-nd105asdfjkhsfowefwefwfe run
 7    i-nd105asdfjkhsfowefwefwfe run
 4    i-nd105asdfjkhsfowefwefwfe run
 5    i-nd105asdfjkhsfowefwefwfe run
 6    i-nd105asdfjkhsfowefwefwfe run
 7    i-nd105asdfjkhsfowefwefwfe run

# awk '/SUCCESS/{b=$0;a[b]}/run/{a[b]++}END{for(i in a)print i,a[i]}' all.txt
[100] 15:06:03 [SUCCESS] 405b.cloud  7 
[100] 15:06:03 [SUCCESS] 405b.cloud  2
[100] 15:06:05 [SUCCESS] 405b.cloud  11

# awk -F '[ :]+' '{print $4,$NF}' all.txt
405b.cloud  7 
405b.cloud  2
405b.cloud  11


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM