linux基礎部分(CentOS 7.x)

第一章 計算機硬件知識


服務器種類

硬件服務器

云服務器

服務器外觀


機架式服務器

塔式服務器

刀片式服務器

dell服務器型號


時間          1U                    2U

十年前        1850 1950              2850 2950

10-13年      R410/R610          R710  (11代)

14-至今      R420/R430 R620/R630  R720 R730

服務器組成


cpu 硬盤 內存 電源 主板   風扇   光驅   顯卡   聲卡

處理器

Cpu的 棵樹 或者 個數(shù) 路

服務器cpu的個數(shù)2-4顆

筆記本i3 i5 i7

服務器  至強系列 E3 E5 E7

金牌  銀牌 銅牌

內存


        臨時儲存的地方 介于CPU和硬盤之間

        運行的所有程序都會在內存中運行


程序 靜態(tài)的內容 文檔 視屏 可執(zhí)行的程序 存放在磁盤的數(shù)據(jù) 稱為程序

進程 把靜態(tài)的內容運行起來 把系統(tǒng)的程序存放在內存中運行 稱為進程

守護進程 持續(xù)不斷的運行 稱為守護進程

buffer && cache


buffer  寫入數(shù)據(jù)到內存中 這個數(shù)據(jù)的內存空間稱為緩沖區(qū) 寫緩存               

Cache  從內存讀取數(shù)據(jù),這個數(shù)據(jù)內存空間稱為 緩存區(qū) 讀緩存

raid 0 1


raid 0方法1 兩塊600G硬盤組合 1.2T      800G的文件損壞? 徹底損壞 無法恢復

raid 1方法2 兩塊600G硬盤組合只能使用600G 備份 同時寫兩份數(shù)據(jù) 1份損壞 另一塊正常使用

安裝操作系統(tǒng)方法


使用U盤

使用網(wǎng)絡方式安裝

使用批量化自動化安裝操作系統(tǒng)kickstar cobbler

第二章 linux發(fā)展史

69年在貝爾實驗室unix誕生

譚寧邦 寫了minix

斯托曼 FSF 自由軟件基金會

托瓦茲 創(chuàng)建linux內核

GNU #GNU is not unix 沒有流行 組件流傳了下來 bash gcc awk

GPL 通用公共許可

unix優(yōu)點


技術成熟  可靠性高

極強的可伸縮性

強大的網(wǎng)絡功能

開發(fā)功能

數(shù)據(jù)庫支持能力

發(fā)行版本


Ubuntu  開發(fā)人員

Redhat或centos  服務器多

Debian 或 FreeBSD  安全人員使用 多用于滲透  安全

SUSE 德國多  專業(yè)使用數(shù)據(jù)庫 電子郵件網(wǎng)絡

紅旗  麒麟  中文版

面試題:Redhat與centos的區(qū)別


centos 是redhat一個分支

centos 是Redhat去掉logo和部分非自由軟件在編譯而成 

centos免費版本

redhat部分收費

第三章 虛擬機創(chuàng)建&&xhsell排錯

更改網(wǎng)卡


net.ifnames=0 biosdevname=0

分區(qū)


/boot 200

swap 物理內存1.5倍

/ 剩下內存

xshell 排錯


看IP

ping ip

改網(wǎng)卡

vmware服務

centos7 關閉NetworkManager

端口

無法上網(wǎng)

ping 網(wǎng)關

ping 公網(wǎng)

DNS域名解析

看網(wǎng)關

第四章 基本命令使用

路徑


相對路徑:當前路徑

絕對路徑:從根下的路徑到指定的目錄/文件路徑

pwd 查看當前路徑

cd 改變當前工作目錄

ls 顯示目錄中的內容


- l      顯示詳細信息(等價于ll)

- r      逆向排序 a-z

mkdir 創(chuàng)建目錄


  -p    遞歸創(chuàng)建目錄

touch 創(chuàng)建文件

cp 復制

  • r 復制目錄及目錄下的文件所以 遞歸復制

echo 輸出內容分到桌面


>      重定向 先清空 再寫入

>>      追加重定向

{} 生成序列

cat 查看文件內容


- n      顯示行號

tree 以樹狀圖顯示目錄


-d    只顯示目錄

-F 在目錄后面加上/ 用來區(qū)分目錄或文件

-L 顯示目錄層級(加參數(shù))

rm 刪除文件或目錄


-r 遞歸刪除目錄及目錄下的文件

-f      強制刪除不提示

mv 移動或者改名

第五章 Vim編輯器

打開文件

vim file.name

編輯


i  o   

退出

esc    到視圖模式

保存


Shift + :

w      保存退出

q      退出

q!      強制退出

wq    保存并退出

wq!    強制保存并退出

vim 快捷鍵

光標的移動


G    快速移動到文件尾部

10G  快速移動到第十行

gg 1G  快速移動到行首

$ End  快速移動光標所在行的行尾

^ Home 0 快速移動光標所在行的行首 

復制粘貼剪切刪除  視圖模式下

yy      復制當前光標所在行

2yy      復制光標所在連續(xù)兩行

p        粘貼到光標所在行的下一行

3p      粘貼三次內容

dd      剪切光標所在的行

2dd      剪切光標所在的連續(xù)兩行

d$  d+End 剪切光標所在到行尾

u        撤銷操作

D        剪切光標所在到行尾

d^ d+home d0 刪除光標所在到行首

dG      剪切光標所在行到文件尾部

dw      剪切一個單詞

s        刪除一個字母

x        刪除一個字母

編輯模式


i  a    進入編輯模式

o      進入光標所在行的下一行編輯

O      進入光標所在行的上一行編輯

C      刪除光標所在行行尾并進入編輯模式

A      移動到行尾并進入編輯模式

cc      刪除整行進入編輯模式

批量操作


1.ctrl + v  選中行

2.按大寫I

3.輸入要添加的內容

4.按兩次esc


1.ctrl + v  選中行

2.r

3.輸入替換內容

vim 不正常退出


1.直接刪除.swp 文件 進行編輯 新寫入的內容會消失

2.如何恢復

vim -r oldboy.txt 按回車保存退出

刪除.swp 文件即可

第六章 目錄結構

掛載磁盤

mount /dev/cdrom /mnt/

網(wǎng)卡配置文件


/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet   #網(wǎng)絡類型 以太網(wǎng)

BOOTPROTO=none   #獲取ip地址

                            三種配置方法

                            1.none  靜態(tài)

                            2.DHCP 動態(tài)獲取

                            3.static 靜態(tài)

NAME=eth0 #配置文件名 網(wǎng)卡名稱

DEVICE=eth0 #硬件網(wǎng)卡名稱

UUID=842a0ef2-ed4b-4fb4-aa1b-8d4e70b0eacd

#唯一標識 系統(tǒng)為每一個硬件設備分配唯一標識(克隆虛擬機刪除)

ONBOOT=yes #開機自動啟動

IPADDR=10.0.1.200 IP地址 局域網(wǎng)內唯一 公網(wǎng)上唯一

PREFIX=24 #子網(wǎng)掩碼 決定我們網(wǎng)絡中可使用ip地址數(shù)量

GATEWAY=10.0.1.254 #網(wǎng)關 大門口

DNS1=10.0.1.254 #域名解析服務器 可快速方便訪問服務器

    負責把域名解析為ip地址

/etc/hosts  本地解析配置文件  DNS解析 解析主機名稱

/etc/hostname  主機名稱配置文件

1.如何查看當前主機名


hostname  centos6/7  想同

2.如何臨時修改主機名


hostname  主機名    centos6/7 相同

3.如何永久修改主機名


vim /etc/hostname        centos7重啟生效

vim /etc/sysconfig/network    cetnos6

4.如何臨時+永久修改主機名


hostname set-hostname 主機名  centos7

hostname 先臨時修改 再更改配置文件

vim /etc/sysconfig/network      cenros6

/ect/resolv.conf 配置DNS服務器的配置文件

/etc/rc.local 開機自啟執(zhí)行文件中命令

/etc/fstab 磁盤掛載配置文件 開機自動掛載

/etc/issue 登錄服務器前顯示的內容

/etc/issue.net 登錄服務器前顯示的內容

/etc/moth 連接服務器后顯示的內容

/etc/inittab 服務器開機后運行級別


centos 6.x

0 關機

1 單用戶模式 救援模式 忘記密碼

2 多用戶模式 沒有NFS網(wǎng)絡支持

3 完全多用戶模式 默認使用

4 待開發(fā)

5 桌面模式

6 重啟


centos 7.x

0 poweroff.target

1  rescue.target

2  multi-user.target

3  multi-user.target

4  mulit-user.target

5  graphical.target

6  reboot.target

1.如何查看當前的運行級別


centos 6 查看方法

cat /etc/inittab

id:3:initdefault:

centos 7 查看方法


root@oldboyedu ~#: systemctl get-default

multi-user.target

2.如何臨時修改啟動級別centos 6 / 7相同


init  0  關機

init  5  桌面

init  6  重啟

3.如何永久修改運行級別 開機后自動運行那個功能那個級別

centos 6 配置方法


vim  /etc/inittab  id:3:initdefault:

centos 7 配置方法


systemctl set-default  runlevel5.target

/etc/profile 環(huán)境變量 開機自動運行

/etc/bashrc 環(huán)境變量 別名

.bashrc 環(huán)境變量 針對當前登錄用戶生效

.bash_profile 環(huán)境變量 針對當前登錄用戶生效

/var variable 變化的 日志文件

/var/log/messages 日志信息 記錄了系統(tǒng)運行的記錄

/var/log/secure 系統(tǒng)的安全日志

/proc/cpuinfo 處理器的一些信息

/proc/meminfo 查看內存信息

/proc/loadavg 平均負載

/proc/mounts 了解 系統(tǒng)掛載的詳細信息

第七章 安裝方式

yum 安裝


yum -y install package.name

yum 卸載


yum -y remove package.name

yum 查找包名


yum provides  package.name

rpm 安裝

rpm 安裝方式


rpm -ivh package.name

-i    install

-v  顯示安裝過程

-h  人類可讀模式

rpm -qa 查看軟件是否安裝


-q 查看

-a 所有

-l 列表

rpm 卸載軟件


rpm -e package.name

編譯安裝

.configure make makeinstall

第八章 虛擬機優(yōu)化

yum 源


yum  repolist    #查看當前使用的軟件倉庫

rpm  -qa        #查看已安裝的軟件

yum  list        #查看這個倉庫有什么軟件可裝

更改yum源為阿里云源

備份


mv  /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下載新倉庫到本地


wget  -O  /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

Selinux

如何查看當前selinux是否開啟


getenforce

如何臨時關閉selinux


setenforce Permissive

setenforce 0

永久關閉selinux 需要重啟


    /etc/selinux/conf

enforcing # 開啟狀態(tài) 運行中

permissive     # 關閉狀態(tài)但是會提示警告信息

disabled     # 完全關閉狀態(tài)

SELINUX=disabled

防火墻

centos6.x iptables

centos7.x firewalld

如何查看當前防火墻是否運行


systemctl status firewalld

中間的常用命令


start  開啟

stop    停止

restart 重啟

reload  加載

status  狀態(tài)

systemctl is-active firewalld # 查看防火墻運行狀態(tài)

如何臨時關閉防火墻


systemctl stop firewalld

永久關閉防火墻


systemctl disable firewalld

如何查看是否開機禁止啟動防火墻


  systemctl status firewalld.service 第二行顯示 enabled 開機自動啟動

  [root@alexlnb ~]#systemctl is-enabled firewalld.service

  enabled

  禁止啟動

  systemctl disable firewalld.service

centos6 iptables的關閉和禁止啟動


centos6

  /etc/init.d/iptables stop

  service iptables stop  

  chkconfig iptable off  

  /etc/init.d/iptables status # 查看狀態(tài)

字符集

如何查看系統(tǒng)默認的字符集 centos7


[root@alexlnb ~]#echo $LANG

  en_US.UTF-8

臨時修改默認的字符集


LANG='zh_CN.UTF-8'

永久修改字符集


/etc/locale.conf

LANG="en_US.UTF-8"

centos 6 修改字符集

臨時修改


echo $LANG

LANG='zh_CN.UTF-8'

永久修改字符集


/etc/sysconfig/i18n

source /etc/sysconfig/i18n

第九章 vim進階和文本命令

vim 底行模式


:set nu  顯示行號

:set nonu 取消顯示行號  

ZZ  保存并退出

搜索


/ 搜索的內容

n 查找下一個內容 往下查找

N 查找上一個內容 往上查找


1copy10 # 把第一行的內容復制到第10行的下面 簡寫co

1,3copy10  # 把第一行到第三行的內容復制到第10行的下面

1move10 # 把第一行的內容移動到第10行的下面  簡寫mo

1,3move10  # 把第一行到第三行的內容移動到第10行的下面

1d     # 刪除第一行的內容

1,5d # 刪除第一行到第五行的內容

取消高亮


:noh

替換


s###g # s替換標志  g 全局替換

cat 查看文本內容


-n 顯示行號

-A 在行尾加上$ 表示行結束

less 查看文本內容(大文件)


-N    顯示行號

空格 f 顯示下一頁內容

b      顯示上一頁內容

gg  快速移動到首頁

100G 快速到100行

g      快速移動到第一頁

G   快速移動到文件的底部

/   搜索

n      查找下一個內容

N   查找上一個內容

q   退出

more 查看內容一頁一頁顯示


f  往下翻頁

b  往上翻頁

空格 往下翻頁

head 默認顯示前十行


-n  顯示文件的行數(shù) 可簡寫 -2  -n2

-c  顯示文件的前n個字符 不常用

tail 默認顯示文件后十行


-n  顯示文件的行數(shù) 簡寫-2 -n2

-f follow 實時顯示文件的內容變化

-F  實時顯示文件內容的變化 監(jiān)控文件 文件不存在會時時等待文件的出現(xiàn)

tailf === tail -f

tailf 不讀磁盤 速度快

tail -f 讀磁盤 速度慢

seq 生成序列

tr 替換不能對文件進行操作 1 對 1


-d  刪除內容

-c  取反

特殊符號


    . 代表當前的目錄

  .. 代表上一級目錄

  #  注釋 不生效的內容  shell編程的第一行有用  root用戶提示符

  ~  代表家目錄

  $  代表普通用戶提示符

  > 重定向

  >> 追加重定向

  <  輸入重定向

  -  上一次所在的目錄

  |  前面命令的輸出 作為后面命令的使用

  \  轉義字符

alias 別名

永久定義別名

把配置寫入/etc/profile中

環(huán)境變量的生效順序 /etc/profile-> /etc/bashrc

第十章 文件屬性

indoe 節(jié)點

33575001 inode

  •                   文件的類型
    

rw-r--r-- 文件的權限

. selinux

1 硬鏈接個數(shù)

root 屬主

root 屬組

18 文件的大小

12月 12 20:37 時間

bash.sh 文件名

inode index node # 存放著文件的屬性和文件具體的位置的指針 不包含文件名

block 快 文件的具體存放位置

文件類型


- 普通文件

drwxr-xr-x  d 目錄 directory

lrwxr-xr-x l 軟鏈接

brw-rw---- b 快設備

crw-rw-rw- c 字符設備

p 管道設備

文件相關命令

which 查看命令的全路徑

file 查看文件的類型

whereis 查看文件的具體位置和文件的幫助

第十一章 文件查找之find

find 查找命令


find 在哪里找 -類型 f  -名字 "1.txt"

-name    # 按名稱查找 test.txt

-iname  # 查找到的內容不區(qū)分大小寫 

-size    # 按照大小查找 -b -k -M -G

-maxdepth # 按最大的深度等級查找

-mtime  # 按照文件的修改時間查找modify

-類型 -type

f  普通文件

d  目錄

按名稱查找


find /tmp/ -type f -name "test.txt"

按文件的后綴查找 所有.txt結尾的文件


find /tmp/ -type f -name "*.txt"

不區(qū)分大小寫搜索


find /tmp/ -type f -iname "*.txt"

按照大小查找 -size


find ./ -type f -size +100k # 查找當前目錄 大小100k的文件

按時間查找


find  -type f -mtime +7 -mtime -30  #查找7-30內的文件

移動


find ./ -type f -size +1M|xargs -i mv {} /tmp

mv `find /tmp/ -type f -name "7.txt"` .

find /tmp/ -type f -name 8.txt -exec mv {} /opt \;

刪除


find /tmp/ -type f -name "5.txt"|xargs rm

rm `find ./ -type f -name 7.txt`

find ./ -type f -name "3.txt" -exec rm {} \;

復制


find /tmp/ -type f -name "6.txt"|xargs -i cp {} .

cp `find /tmp/ -type f -name 8.txt` .

find ./ -type f -name "4.txt" -exec cp {} /tmp \;

序列匹配


find /tmp -type f -name '[1-8].txt'   # 匹配1-8以.txt結尾的文件

df -i 查看indoe使用情況

df -h 查看block使用情況

第十二章 軟硬鏈接

硬鏈接

硬鏈接的特點:


1)在相同文件系統(tǒng)中具有相同inode號的文件 互為硬鏈接  ll -i

2)相當于文件的多個入口  類似于超市的多個入口

3)文件默認的硬鏈接為1  目錄默認的硬鏈接為2  且目錄無法做硬鏈接(會出現(xiàn)循環(huán))

4)刪除源文件和目標文件任意一個文件 文件不會真正的刪除

5)只有同時刪除源文件和目標文件 文件才會被刪除  (普通文件)

6)刪除源文件和目標文件 并且沒有被系統(tǒng)或程序調用 則被真正刪除  進程調用

7)如果刪除文件的空間在存放其他文件 則被刪除文件無法恢復 或者使用fsck命令進程磁盤檢查 空間也會被系統(tǒng)回收

8)硬鏈接文件是普通文件 使用rm刪除即可

9)硬鏈接為防止文件的誤刪做的備份

10)不能跨文件系統(tǒng)

軟鏈接

軟鏈接特點:


1)Inode號不同

2)類似于windows的快捷方式 里面存放了源文件的指針指向

3)刪除軟鏈接文件不影響源文件

4)刪除源文件則文件被真正的刪除  軟鏈接不會刪除 但是不可用

5)做軟鏈接盡量使用全路徑

6)刪除一定要注意不能刪除源文件(>后面的為源文件)

權限講解

-rw-r--r-- 1 root root 58 Dec 28 16:10 1.pl

主 組 其他 主 組 大小 時間 文件名

Access: 訪問時間 cat查看 當文件無修改 則時間不會變

Modify: 修改時間 vim echo 修改

Change: 屬性的修改時間 屬性信息 -rw-r--r-- 1 root root 1.3M Dec 18 10:53

為什么目錄的硬鏈接數(shù)為2


每個目錄下都有一個硬鏈接"."號,和對應上級目錄的硬鏈接".."

在父目錄里創(chuàng)建一個子目錄,父目錄的鏈接數(shù)增加1(每個目錄里都有..來指向父目錄)。但是在父目錄里創(chuàng)建文件,父目錄的鏈接數(shù)不會增加

第十三章 打包壓縮

tar


  z  使用gzip壓縮

  c  create 創(chuàng)建

  v  顯示過程 verbose

  f  指定壓縮文件

解包:tar zxvf FileName.tar

打包:tar czvf FileName.tar DirName

gz


解壓1:gunzip FileName.gz

解壓2:gzip -d FileName.gz

壓縮:gzip FileName

.tar.gz    .tgz

解壓:tar zxvf FileName.tar.gz

壓縮:tar zcvf FileName.tar.gz DirName

bz2


解壓1:bzip2 -d FileName.bz2

解壓2:bunzip2 FileName.bz2

壓縮: bzip2 -z FileName

.tar.bz2

解壓:tar jxvf FileName.tar.bz2

壓縮:tar jcvf FileName.tar.bz2 DirName

bz


解壓1:bzip2 -d FileName.bz

解壓2:bunzip2 FileName.bz

.tar.bz

解壓:tar jxvf FileName.tar.bz

zip


解壓:unzip FileName.zip

壓縮:zip FileName.zip DirName

第十四章 通配符


命令1|命令2  ###管道符號  傳遞的是普通的字符串,文本 來自于前一個命令

|xargs          ###管道符號 與xargs 傳遞的是把字符串變成了 文件名

.    #當前目錄,任意一個字符(正則)

..    #當前目錄的上一級目錄

*    #任意0個或多個字符(文本)(通配符)

>    #輸出重定向 會清空原來的內容 然后在向文件里面追加內容

>>  #追加輸出重定向 追加到文件的最后一行

<    #輸入重定向 tr  xargs 

<<  #cat 用來給文件追加多行文本

#    #注釋 linux會忽視他。給人看的。解釋說明。

    # root 超級用戶的 提示符

$    shell

$變量  ====>取變量里面的內容

    手 鞋盒子  拿出鞋  ====>取變量里面的內容

&& # 前面的命令執(zhí)行成功 則執(zhí)行后面的命令  不成功則不執(zhí)行后面的命令

  cd /backup && ls  如果backup存在則執(zhí)行l(wèi)s  如果backup不存在 則不行l(wèi)s

|| # 前面的命令執(zhí)行失敗 則執(zhí)行后面的命令 不失敗則不執(zhí)行

    cd /backup || mkdir backup 如果cd執(zhí)行失敗 則創(chuàng)建目錄backup

如果cd成功  則不會執(zhí)行后面的創(chuàng)建命令

; # 前面的命令成功和失敗 都會繼續(xù)執(zhí)行后面的命令

        cd /backup;ls /opt 不管cd是否成功 都會繼續(xù)執(zhí)行分號后面的命令

""      # 大部分都是字符串 能解析變量 不能解析通配符

錯誤重定向 正確重定向 &>/dev/null  定向到空

ls > test.txt # 命令執(zhí)行的結果為正確的才可重定向到test.txt

1> 只接收正確的結果 重定向 前清空在寫入

1>> 只接收正確的結果 追加

2> 只接收錯誤的結果

2>> 只接收錯誤的結果 追加

'' 輸出不解析變量 所見即所得

""  解析變量 不能解析通配符

不加引號和加雙引號類似 能解析變量 但是能解析通配符

``  執(zhí)行命令  把命令的結果留在原地 其他命令調用  和$()相同

第十五章 正則符號

基礎正則


^ 以什么什么開頭

$ 以什么什么結尾的行

' ' 過濾空格 不顯示空行

^$  表示空行

. 過濾任意一個字符 不會匹配空行

* 前面的字符串出現(xiàn)0次或0次以上

.* 所有   包含空行

[]  匹配中括號中的任意一個字符

擴展正則

[^]  取反  中括號和默認語句''  都不會匹配空行

+ 前面的字符出現(xiàn)1次或1次以上

{} 匹配次數(shù)

第十六章 三劍客

grep 過濾字符串


-r 遞歸搜索

-v 取反

-o 顯示匹配過程

-n 顯示過濾出內容的行號

-w 統(tǒng)計單詞

-i 不區(qū)分大小寫

-c 過濾內容的總行數(shù)

格式

grep -參數(shù) '字符串' 文件名


過濾1

[root@alexlnb ~]#grep '1' test.txt

1

10

查找空行

grep ^$ logs.log

查找以leo開頭的行

grep ^leo logs.log

sed 替換,查找


-e  指定多命令

-f 指定命令文件

-i  修改源文件

-n 取消默認輸出

-r  支持擴展正則

p 打印

d 刪除  臨時刪除

c  替換

s  全局替換g

a  追加 在當前行的下一行插入內容

i  插入 在當前行插入新的內容

sed -參數(shù) '字符串' 文件


查找第三行

sed '3p' file

查找1到3行

[root@alexlnb ~]#sed -n '1,3p' 1.txt

111111111111

2222222222

333333333333

明確匹配最后一行

[root@alexlnb ~]#sed -n '$p' 1.txt

55555555555555

模糊匹配// 字符串匹配

sed '/字符串/p' file

[root@alexlnb ~]#sed -n '/lizhenya/p' oldboy.txt

I am lizhenya teacher!

our site is http:www.lizhenya.com

lizhenya

匹配顯示lizhenya的行到test之間的行

lizhenya

fags

gswgsreh

test

刪除第 2 行

sed '2d' test.txt

匹配每一行的第一個old替換為new

sed 's/old/new/' test.txt

如何匹配出 10.0.1.200 255.255.255.0

inet 10.0.1.200  netmask 255.255.255.0  broadcast 10.0.1.255

root@13k ~#: ifconfig|sed -n '2p' |sed -r 's/^.*inet (.*) net.* (.*) bro.* /\1\2/g'

10.0.1.200 10.0.1.255

awk 查找


NR    行

NF    列

==  等于

>  大于

<  小于

>=  大于等于

<=  小于等于

!=  不等于

&&  并且

||  或者

awk '{print $n}' 文件


取第一行到第五行

    [root@alexlnb ~]#awk 'NR<6' /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

取第一列

[root@alexlnb ~]#awk '{print $1}' 1.txt

oldboy

lizhenya

1

5

指定分隔符取列

[root@alexlnb ~]#cat 2.txt

oldboy

[root@alexlnb ~]#awk -F "d" '{print $1}' 2.txt

ol

搜索匹配

[root@alexlnb ~]#awk '/root/' test.txt

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

查找以root開頭的行

[root@alexlnb ~]#awk '/^root/' test.txt

root:x:0:0:root:/root:/bin/bash

查找以root開頭的行 并打印第一列和最后一列

[root@alexlnb ~]#awk -F: '/^root/{print $1,$NF}' test.txt

root /bin/bash

數(shù)字比較

[root@alexlnb ~]#awk '$1>2' 2.txt

4 5 6

3 1 2

查看行號

awk '{print NR,$0}' test.txt

第十七章 開機流程

Centos6.X init


串行啟動  如果某一項服務掛掉 無法啟動  則后面的全部無法正常啟動

centos7.X systemd


并行啟動  如果某一項服務掛掉 不影響系統(tǒng)正常啟動

開機流程centos 6


開機BIOS自檢

MBR引導

grub引導菜單

加載內核kernel

啟動init進程

讀取inittab文件,執(zhí)行rc.sysinit,rc等腳本

啟動mingetty,進入系統(tǒng)登陸界面

開機流程centos 7


按下電源

開機自檢

MBR引導

GRUB菜單

加載內核

啟動systemd

讀取systemd/system文件

初始化 /usr/lib/systemd/system

并行  啟動服務

進入登陸界面

第十八章 用戶管理

讓一個命令或者一個服務開機自啟動

/etc/rc.local 需要給源文件x權限 可執(zhí)行命令 服務啟動 腳本

chkconfig iptables on                開機啟動

systemctl enable firewalld         開機啟動

/etc/profile 開機加載 或者重新打開窗口連接 重新加載

用戶分類

管理員 root

虛擬用戶

普通用戶

useradd 創(chuàng)建用戶


-u      指定uid

-g      指定gid

-s      指定解釋器

-M      不創(chuàng)建家目錄

passwd 創(chuàng)建密碼


交互式

passwd  用戶 密碼

非交互式

echo 密碼 | passwd  --stdin  用戶

usermod 修改用戶信息


-s 修改解釋器

-u 修改用戶uid

-g 修改屬于組

-G 屬于多個組

chown 修改用戶屬主屬組


-R 遞歸

groupadd 添加用戶組


  -g  指定組ID

groupdel 刪除用戶組

userdel 刪除用戶


-r      連根拔起  用戶和家目錄一并刪除

第十九章 批量化創(chuàng)建用戶

普通創(chuàng)建


非交互式創(chuàng)建

echo 123456|passwd --stdin oldboy

sed  批量創(chuàng)建用戶

echo test{01..10}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'|bash

sed  批量刪除用戶

echo oldboy{1..10}|xargs -n1|sed -r 's#(.*)#userdel -r \1#g'|bash

awk 批量創(chuàng)建用戶

echo oldboy{1..10}|xargs -n1|awk  '{print "useradd " $1";echo 123456|passwd --stdin " $1}'|bash

awk 批量刪除用戶

echo oldboy{1..10}|xargs -n1|awk '{print "userdel -r " $1}'|bash

隨機模塊


$RANDOM  0 - 32767

echo $RANDOM

高級創(chuàng)建


非交互式創(chuàng)建

useradd oldboy;echo `echo $RANDOM|md5sum|cut -c1-8`|passwd --stdin oldboy

sed  批量創(chuàng)建用戶

echo test{1..10}|xargs -n1|sed -r 's#(.*)#useradd \1;pass=`echo $RANDOM|md5sum|cut -c1-8`;echo $pass|passwd --stdin \1;echo \1 $pass >>passwd.txt#g'|bash

sed 批量刪除用戶

for i in {1..10};do userdel -r test$i;done

awk 批量創(chuàng)建用戶

echo test{1..10}|xargs -n1|awk '{print "useradd "$1";pass=`echo $RANDOM|md5sum|cut -c1-8`;echo $pass|passwd --stdin "$1";echo "$1" $pass >>passwd.txt"}'|bash

awk 批量刪除用戶

for i in {1..10};do userdel -r test$i;done

第二十章 文件權限


最小化原則  安裝操作系統(tǒng) 需要什么安裝什么

保護root  禁止root登錄 更改默認SSH端口 22端口

給重要的命令+i  給重要的文件加a

給重要的文件或命令做一個指紋

r:read 讀

w:write 寫

x:execute 執(zhí)行

讀 r -> 4

寫 w -> 2

執(zhí)行 x -> 1

方法1:mode法


格式:chmod who opt per file

  who:u g o a(all) 

  opt:+ – =

  per:r w x X

方法2:數(shù)字法


格式:chmod XXX file

  rwx rw- r–

  111 110 100

  7  6  4

  r:4

  w:2

  x:1

rwx 對文件的作用


r 可讀 不可寫 不可執(zhí)行

w 不可寫 不可執(zhí)行 可追加 如果想寫入 必須和r 配合使用

x 啥都不能干 想要執(zhí)行 必須和r 進行配合

rwx 對目錄的作用


r 不能進入目錄 只顯示文件名 不顯示詳細信息 配合x 使用

w 啥都不能干 控制是否在目錄下創(chuàng)建 刪除 重命名必須和x配合使用

x 可進入到目錄可以查看文件內容

UMASK值


作用:取消對應的權限,影響創(chuàng)建文件和目錄的默認權限

對目錄: umask+default=777(dir)

對文件:666-umask:觀察結果,如果有奇數(shù),奇數(shù)位+1,偶數(shù)不變

三種權限 suid sgid sticky

suid


作用:給一個用戶繼承二進制程序所有者擁有的權限

例:ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

給file文件增加suid權限

chmod u+s file

chmod 4755 file              suid數(shù)字法表示為4

sgid


作用1:給一個用戶繼承二進制程序所有組擁有的權限

例:ll `which cat`

-rwxr-sr-x. 1 root root 48568 Mar 23  2017 /bin/cat

給file文件增加sgid權限

chmod g+s file

chmod 2755 file              sgid數(shù)字法表示為2

sticky


作用:作用于目錄上,此目錄的文件只能被所有者刪除

如:ll -d /tmp

drwxrwxrwt. 17 root root 4096 Apr  4 10:02 /tmp

給dir目錄添加sticky權限

chmod o+t dir

chmod 1777 dir                sticky數(shù)字法表示為1

ACL 訪問控制列表

添加ACL權限


setfacl -m u:wang:0 file        使wang賬戶對指定file文件無權限

setfacl -m u:mage:rw file      使mage賬戶對指定file文件有讀寫權限

setfacl -m g:g1:rw file        使g1組對指定file文件有讀寫權限

getfacl    file                查看指定file文件的ACL權限

刪除ACL權限


setfacl -x u:wang file      刪除wang賬戶對指定file文件的ACL權限

setfacl -x g:g1 file        刪除g1組對指定file文件的ACL權限

ACL權限下的mask


設置用戶對指定文件所能擁有的最大權限(限高作用)

setfacl -m mask::r file            使指定文件file所擁有的最大權限位讀r

setfacl -x mask::r file            取消指定文件file的最大權限限制mask

setfacl -b f1                      取消f1文件所有的ACL權限

備份和恢復ACL權限


getfacl -R /tmp/dir1>acl.txt              將dir1目錄下ACL權限備份

setfacl -R –set-file=acl.txt /tem/dir      恢復dir1目錄下ACL權限

文件權限常用命令


chown 設置文件所有者(普通用戶無法修改文件所有者)

chgrp 設置文件所屬組(普通用戶要想該所屬組,前提是文件所有者為自己,自己在所屬組中)

chmod 設置指定文件權限

chattr 給指定文件添加保護,避免root賬戶誤操作

  +i      鎖定文件,不能刪除,不能改名,不能更改內容

  -i      解鎖+i 

  -a      鎖定文件,不能刪除,不能改名,但可追加內容(追加重定向)

  -a      解鎖+a

  +A      指定文件讀時間atime不再更改

lsattr 查看指定文件是否有鎖定狀態(tài)

setfacl 設置文件ACL權限

  -m mask::r file          使指定文件file所擁有的最大權限位讀r

  -x mask::r file            取消指定文件file的最大權限限制mask

  -b f1                  取消f1文件所有的ACL權限

  -R –set-file=acl.txt /tem/dir  恢復dir1目錄下ACL權限

getfacl              查看文件ACL權限

第二十一章 crontab 定時任務

crontab 安裝:


yum  -y install crontabs

相關服務


service crond start  啟動服務

service crond stop    停止服務

service crond restart 重啟服務

service crond reload 重新載入配置

service crond status 查看crontad服務狀態(tài)

chkconfig crond --list 查看crontab服務是否已設置為開機啟動

chkconfig crond on 加入開機自動啟動

命令格式

crontab [-u user ] file

crontab [-u user ] [ -e | -l | -r ]

參數(shù)說明:


-u  user:用來設定某個用戶的crontab 服務

file  文件的名字 

-e    編輯crontab文件內容

-l    顯示crontab文件內容

-r    刪除定時任務配置

配置說明


*      *     *      *      *     命令

分   時   日   月    周

服務


郵件服務

systemctl stop postfix

root郵件的地址

/var/spool/mail/root

小文件的目錄

/var/spool/postfix/maildrop/

實例


*/1 * * * * date >> /root/date.txt

每分鐘執(zhí)行一次 date命令

30 21 * * *  /usr/local/etc/rc.d/httpd restart

每晚的21:30 重啟apache

45  4  1,10,22  * *  /usr/local/etc/rc.d/httpd restart

每月的1 10 22 號 4:45重啟apache

10 1 * * 6,0    /usr/local/etc/rc.d/httpd restart

每周六 周日的1:10 重啟apache

0,30 18-23 * * *  /usr/local/etc/rc.d/httpd restart

每天18:00至23:00 之間每隔30分重啟apache

* 23-7/1 * * *    /usr/local/etc/rc.d/httpd restart

晚上11點到早上7點之間 ,每隔一個小時重啟apache

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

相關閱讀更多精彩內容

  • 只希望用這種方式記錄自己的考研之路。 早上考研派復習政治考點14個,選擇題6個,錯兩個。 復習整理的閱讀詞匯三章,...
    喬木可休思否閱讀 350評論 0 0
  • 我們這一代生活在物質相對豐裕的年代,面對太多的選擇,我們往往會以短暫的、即時的感受作為判斷標準,例如游戲,刷朋友圈...
    神勇小輝閱讀 378評論 2 1
  • 之前看過一個帖子,兩個人因為一點事,就在帖子里罵的不可開交,甚至演變到現(xiàn)實中的動武,動武過程中,一個人被打骨折,一...
    賓賓日記閱讀 877評論 0 0
  • 1/沒錢 在選面膜上講起來真是滿懷心塞。做為一名文案狗,活到三十歲,太貴的面膜兩字:沒錢!沒錢!沒錢! 在淘寶網(wǎng)上...
    墨語三千閱讀 891評論 2 2

友情鏈接更多精彩內容