Linux運維工程師學習:Linux系統基本知識

一、 Linux基本概念

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操作系統。[1]

二、 學習LINUX用戶管理和文件結構部分

2.1 /etc/passwd與/etc/group

  • /etc/passwd,查看用戶目錄
    在這裏插入圖片描述
    root:(賬號名稱):x(:賬號密碼):0(:賬號UID):0(:賬號GID):root(:用戶說明):/root(:用戶家目錄):/bin/bash(:shell解析)
    1、賬號名稱:和用戶UID對應,這是用戶登錄時使用的賬號名稱,在系統中是唯一的,不能重複。
    2、賬號密碼:早期的Unix系統中,該字段是存放賬號密碼的,由於安全原因,後來把這個密碼字段內容移動到/etc/shadow中,這裏可以看到一個字母表示該用戶密碼在/etc/shadow中保護
    3、賬戶UID:賬號UID一般由一個整數表示的,範圍是0~65535。
    4、賬戶GID:賬號GID一般也是由一個整數表示的,範圍是0~65535,當添加賬戶時,默認情況下會同時建立一個與用戶同名且UID和GID相同的組。
    5、用戶說明:這個字段是對這個賬號二隊描述說明。
    6、用戶家目錄:用戶登錄後首先進入的目錄,一般爲(/home/用戶名)這樣的目錄
    7、shell解析器:當前用戶登錄後所使用的shell,在centos/rhel等linux中,默認的shell爲bash,就是在這裏設置的。如果不希望用戶登錄系統,可以用個usermod或者手工修改passwd配置,將該字段改爲/sbin/nologin即可。如果仔細看passwd文件,會發現大部分內置系統虛擬賬號的這個字段都是/sbin/nologin,表示禁止登錄系統,這是出於安全考慮的。(echo $SHELL及cat /etc/shells)
    在這裏插入圖片描述
  • /etc/group,查看組目錄
    在這裏插入圖片描述
    root:(組名稱):x(:組密碼,與用戶賬號密碼一致):0(:賬號GID)

2.2 建立用戶組的意義及在Oracle及服務器中的意義

通過建立用戶組,或者控制新建用戶所在的用戶組,可以控制用戶訪問系統的權限。
所以,Oracle的用戶組的作用在與通過創建組,授予相應的權限,已實現組別權限管控的目的。

2.3 使用useradd ,userdel ,groupadd ,groupdel 指令

  • useradd
    sudo useradd -s /bin/bash -g 所屬的組 -d 用戶家目錄 -m 目錄,便捷更快
    s:指定新用戶登錄時shell類型
    g:指定所屬組,該組必須存在
    d:用戶家目錄
    m:用戶家目錄不存在,自動創建該目錄
    在這裏插入圖片描述
  • userdel
    sudo userdel -r 用戶名,刪除得比較乾淨
    -r的作用是把用戶的主目錄一起刪除
  • groupadd
    sudo groupadd 用戶組
    添加用戶組
  • groupdel
    sudo groupdel用戶組
    刪除用戶組

2.4 用戶登錄過程中使用到的配置文件

用戶登錄時相關的bash配置文件
1.全局配置文件

  • /etc/profile
    環境變量配置文件,在這裏修改的內容是對所有用戶起作用的
  • /etc/profile.d/*.sh
    在/etc/profile.d 目錄中存放的是一些應用程序所需的啓動腳本,其中包括了顏色、語言、less、vim及which等命令的一些附加設置。
  • /etc/bashrc
    在 bash shell 打開時運行,修改該文件配置的環境變量將會影響所有用戶使用的bash shell

2.個人配置文件

  • ~/.bsah_profile
    每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次,默認情況下,設置一些環境變量,執行用戶的.bashrc文件。
  • ~/.bashrc
    該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該文件被讀取.

3.配置文件加載過程

  • 用戶登錄時加載bash配置文件的過程 登錄式shell加載配置文件過程
    /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
  • 非登錄式shell加載配置文件過程
    ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

2.5 profile文件的作用及使用profile文件定製用戶賬號

1.profile文件的作用在於修改系統環境變量
2.使用profile文件定製用戶賬號,/etc/profile是一個全局配置文件,所有用戶登錄都會使用該文件構建用戶環境。這個文件中設置了用戶的環境變量、搜索路徑等信息。[2]

[root@localhost ~]# cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
#設置環境搜索變量PATH函數
pathmunge () {
        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
           if [ "$2" = "after" ] ; then
              PATH=$PATH:$1
           else
              PATH=$1:$PATH
           fi
        fi
}
#設置變量EUID、UID的值
# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then 
        EUID=`id -u`
        UID=`id -ru`
fi
#如果當前登錄的是root用戶,則爲root用戶添加相應的環境變量
# Path manipulation
if [ "$EUID" = "0" ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
fi
#設置資源限制
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
#爲用戶設置環境變量USER、LOGNAME、MAIL
if [ -x /usr/bin/id ]; then
        USER="`id -un`"
        LOGNAME=$USER
        MAIL="/var/spool/mail/$USER"
fi
#設置主機名、命令歷史長度變量
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
#環境變量INPUTRC
#該變量主要用於加載快捷鍵設置
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi
#設置全局變量
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
#載入別名設置
#運行profile.d目錄中所有以.sh結尾的腳本
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done
#清除使用過的變量和函數
unset i
unset pathmunge
#以下爲後來自己添加到內容

2.6 當前使用進程的id

  • ps -ef|grep 進程名
    ps -ef 是顯示所有進程
    UID:進程擁有者
    PID:進程ID
    PPID:上級父程序的ID
    C: CPU 使用的資源百分比
    STIME: 系統啓動時間
    TTY:登入者的終端機位置
    TIME:使用掉的 CPU 時間
    CMD:所下達的指令名稱 [3]
    在這裏插入圖片描述
    在這裏插入圖片描述

2.7 常用指令

命令 說明
history 查看操作歷史
clear 清除終端信息
pwd 查看當前目錄
which 查看命令的目錄
man man 查看手冊,九個章節,分別爲1.可執行行程序或shell命令;2.系統調用(內核提供的函數);3.庫調用(程序庫中提供的函數);4.特殊文件(通常位於/dev);5.文件格式和規範(如/etc/passwd);6.遊戲;7.雜項;8.系統管理命令;9.內核例程
alias 查看命令別名,設置,例:alias pag='ps aux
echo 在顯示器上顯示數據,普通數據:echo 字符串,顯示環境變量:echo $PATH,顯示上一次程序退出值:echo $?( $:取值,?:最近一次程序退出時的返回值)
poweroff 關機
reboot 重啓
shutdown 關機,-t:秒,設定在切換至不同的runlevle之前,警告和刪除兩信號之間的延遲時間;-k:僅送出警告信息,但不關機;-r:shutdown之後重新開機;-h:shutdown命令之後關機;-n:不經過init,由shutdown指令本身做關機動作;-f:重新開機時,跳過fsck命令,不檢查檔案系統;-F:重新開機時,強迫做fsck檢查;-c:將已經正在shutdown的動作取消

三、 熟悉LINUX日誌文件

3.1 常用的日誌文件的所在位置與功能

以下介紹的是20個位於/var/log/ 目錄之下的日誌文件。其中一些只有特定版本採用,如dpkg.log只能在基於Debian的系統中看到。[4]

  • /var/log/messages — 包括整體系統信息,其中也包含系統啓動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在/var/log/messages日誌中。
  • /var/log/dmesg — 包含內核緩衝信息(kernel ring buffer)。在系統啓動時,會在屏幕上顯示許多與硬件有關的信息。可以用dmesg查看它們。
  • /var/log/auth.log — 包含系統授權信息,包括用戶登錄和使用的權限機制等。
  • /var/log/boot.log — 包含系統啓動時的日誌。
  • /var/log/daemon.log — 包含各種系統後臺守護進程日誌信息。
  • /var/log/dpkg.log – 包括安裝或dpkg命令清除軟件包的日誌。
  • /var/log/kern.log – 包含內核產生的日誌,有助於在定製內核時解決問題。
  • /var/log/lastlog — 記錄所有用戶的最近信息。這不是一個ASCII文件,因此需要用lastlog命令查看內容。
  • /var/log/maillog /var/log/mail.log — 包含來着系統運行電子郵件服務器的日誌信息。例如,sendmail日誌信息就全部送到這個文件中。
  • /var/log/user.log — 記錄所有等級用戶信息的日誌。
  • /var/log/Xorg.x.log — 來自X的日誌信息。
  • /var/log/alternatives.log – 更新替代信息都記錄在這個文件中。
  • /var/log/btmp – 記錄所有失敗登錄信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
  • /var/log/cups — 涉及所有打印信息的日誌。
  • /var/log/anaconda.log — 在安裝Linux時,所有安裝信息都儲存在這個文件中。
  • /var/log/yum.log — 包含使用yum安裝的軟件包信息。
  • /var/log/cron — 每當cron進程開始一個工作時,就會將相關信息記錄在這個文件中。
  • /var/log/secure — 包含驗證和授權方面信息。例如,sshd會將所有信息記錄(其中包括失敗登錄)在這裏。
  • /var/log/wtmp或/var/log/utmp — 包含登錄信息。使用wtmp可以找出誰正在登陸進入系統,誰使用命令顯示這個文件或信息等。
  • /var/log/faillog – 包含用戶登錄失敗信息。此外,錯誤登錄命令也會記錄在本文件中。

除了上述Log文件以外, /var/log還基於系統的具體應用包含以下一些子目錄:

  • /var/log/httpd/或/var/log/apache2 — 包含服務器access_log和error_log信息。
  • /var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
  • /var/log/mail/ – 這個子目錄包含郵件服務器的額外日誌。
  • /var/log/prelink/ — 包含.so文件被prelink修改的信息。
  • /var/log/audit/ — 包含被 Linux audit daemon儲存的信息。
  • /var/log/samba/ – 包含由samba存儲的信息。
  • /var/log/sa/ — 包含每日由sysstat軟件包收集的sar文件。
  • /var/log/sssd/ – 用於守護進程安全服務

3.2 查看LOG文件的內容

查看文件內容:

  • cat fileName:將文件內容一次性輸出到終端,如果文件太長,無法在終端全部顯示
  • more fileName:文件內容分頁顯示到終端,只能一直向下瀏覽,不能退回,enter下一行,backspace下一頁,ctrl+c或q退出
  • less fileName:文件內容分頁顯示到終端,可以自由上下瀏覽,enter下一行,backspace下一頁,ctrl+c或q退出,ctrl+p或↑滾動到上一行,ctrl+n或↓滾動到下一行
  • head -x fileName:x爲行,從文件頭開始查看前x行的內容,如果沒有指定行數,默認顯示前10行內容
  • tail -x fileName:x爲行,從文件尾開始查看後x行的內容,如果沒有指定行數,默認顯示後10行內容

3.3 查找與清理日誌文件

刪除的日誌文件被進程鎖定,磁盤沒有釋放,可以kill 掉進程,或重啓系統,但是這樣應用就沒了.
最好的辦法不是刪除日誌文件,而且清空它,不會影響應用.
1.不知道文件在哪裏,查找並清空
find / -name nohup.out -exec cp /dev/null {} ;

2.知道文件在哪裏直接清空
[root@localhost ~]# echo " " >/目錄/日誌文件全名

四、 熟練使用VI工具

請查看這裏:Linux中vim的使用

五、 瞭解cron job

5.1 什麼是CRON作業

Cron是一個實用程序,用於在特定的時間自動執行重複任務,即設置定時任務。在Linux中,常用 cron 服務器來完成這項工作。

5.2 CRONFILE中各字段的含義

在這裏插入圖片描述
crontab文件有五個字段 – 每個字段用星號表示 – 以確定某個任務集重複執行的日期和時間。

  • Minute – 運行命令的分鐘,範圍從0到59
  • Hour – 命令將在什麼時間運行,範圍從0到23
  • Day of the month – 命令運行的月份的某一天,範圍從1到31
  • Month – 指定命令運行的月份,範圍從1到12
  • Day of the week – 希望命令運行的星期幾,範圍從0到7

除此之外,您還需要在每個crontab文件中使用正確的字符。

  • Asterisk (*) – 定義所有調度參數。
  • Comma (,) – 保持單個命令的兩個或更多執行時間。
  • Hyphen (-) – 確定設置單個命令的多個執行時間的時間範圍。
  • Slash (/) – 用於在特定範圍內創建預定的時間間隔。
  • Last (L) – 用於確定給定月份中一週的最後一天的特定目的,例如,3L表示最後一個星期三。
  • Weekday (W) – 確定給定時間的最近工作日,例如,1W表示如果第1個是星期六,則命令將在星期一(第3個)運行。
  • Hash (#) – 用於確定星期幾,後跟1到5之間的數字。例如,1#2表示第二個星期一
  • Question mark (?) – 留空。

5.3 定義CRON 作業

基本上,crontab文件由兩部分組成:調度計時器和命令,這是命令的編寫方式:

* * * * * /bin/sh backup.sh               #意味着它將每分鐘運行一次備份。

30 18 * * * rm /home/sydtesting/tmp/*     #表示它每天下午6:30 從/home /sydtesting/tmp中刪除tmp文件。

5.4 控制CRON權限

系統管理員可以使用/etc/cron.deny和/etc/cron.allow文件控制哪些用戶可以訪問crontab命令。這些文件包含一個用戶名列表,每行一個用戶名。
默認情況下,只有/etc/cron.deny 文件存在且爲空,這意味着所有用戶都可以使用crontab命令。如果要拒絕對特定用戶訪問crontab命令,將用戶名添加到此文件中。

cron.allow\cron.deny /etc/cron.deny存在 /etc/cron.deny不存在
/etc/cron.allow存在 只有/etc/cron.allow中列出的用戶才能運行crontab -e;忽略/etc/cron.deny中的內容 只有/etc/cron.allow中列出的用戶才能運行crontab -e
/etc/cron.allow不存在 /etc/cron.deny中列出的所有用戶都不能使用crontab -e 只有root用戶能夠運行crontab -e

優先級:/etc/cron.allow > /etc/cron.deny > root

5.5 查看CRON作業進行情況

crontab文件一般位於/etc/下,這裏面存放系統運行的的調度程序。

[root@localhost cron]# more /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

5.6 管理已計劃了的CRON作業

1.調整
vi /etc/crontab或crontab -e,修改cron作業,不限於添加,修改,刪除,取消,取消的話,在任務前添加#註釋
2.LOG管理
查看 /var/log/cron.log這個文件就可以

[root@localhost ~]# cd /var/log/
[root@localhost log]# less cron
Sep 22 04:22:01 localhost crond[32556]: (root) CMD (run-parts /etc/cron.weekly)
Sep 22 04:22:01 localhost anacron[32560]: Updated timestamp for job `cron.weekly' to 2013-09-22
Sep 22 05:01:01 localhost crond[22768]: (root) CMD (run-parts /etc/cron.hourly)
Sep 22 06:01:01 localhost crond[25522]: (root) CMD (run-parts /etc/cron.hourly)
Sep 22 07:01:01 localhost crond[28255]: (root) CMD (run-parts /etc/cron.hourly)
Sep 22 08:01:01 localhost crond[30982]: (root) CMD (run-parts /etc/cron.hourly)

5.7 相關指令

  • crontab -e
    編輯當前用戶的crontab文件
  • crontab -u username -e
    編輯指定用戶的crontab文件,使用前需要sudo su切換管理員
  • crontab -l
    查看當前用戶的crontab文件列表
  • crontab -u username -l
    查看指定用戶的crontab文件列表,使用前需要sudo su切換管理員
  • crontab -r
    刪除當前的crontab文件
  • crontab -i
    刪除當前的crontab文件之前詢問

六、 瞭解Swap交換區

6.1 什麼是Swap交換區

linux的SWAP分區就是LINUX下的虛擬內存分區,它的作用是在物理內存使用完之後,將磁盤空間(也就是SWAP分區)虛擬成內存來使用,它和Windows系統的交換文件作用類似,但是它是一段連續的磁盤空間,並且對用戶不可見。
需要注意的是,雖然這個SWAP分區能夠作爲"虛擬"的內存,但它的速度比物理內存可是慢多了,因此如果需要更快的速度的話,並不能寄厚望於SWAP,最好的辦法仍然是加大物理內存,SWAP分區只是臨時的解決辦法。

6.2 查看和臨控交換區信息

以下用一個添加swap分區的例子來說明。[5]
1.查看當前swap
swapon -s
在這裏插入圖片描述
可以看到,當前已有一個swap分區,大小爲2097148,即2G
2.創建一個空文件,用於設定swap分區
dd if=/dev/zeror of=/swapfile bs=1024 count=1048576 //文件大小1GB
3.將文件用作swap
mkswap /swapfile
4.開啓swap文件
swapon /swapfile
5.再次查看當前swap
swapon -s
6.查看文件swapfile的UUID
blkid /swapfile
7.配置swap文件爲永久生效
修改/etc/fstab,添加新行,注意修改爲目前的UUID

UUID=261773a6-7217-4c5a-8245-d030eba56d13 swap          swap    defaults        0 0

8.關閉swap
swapoff /swapfile,關閉指定swap
swapoff -a,關閉所有swap
swapon -a,啓動所有swap
可以通過先禁用,再啓動的方式,來擦除swap中已有的數據

6.3 簡單評估系統所需交換區的大小

物理內存的1.5或2倍。
目前Red Hat(紅帽官方)推薦交換分區的大小應當與系統物理內存的大小保持線性比例關係。
在小於2GB物理內存的系統中,交換分區大小應該設置爲內存大小的兩倍;
如果內存大小多於2GB,交換分區大小應該是物理內存大小加上2GB;
原則上,由於交換分區讀寫速度比真正內存區慢的多,因此在實際應用中如果不是特別需要應該設置的越小越好。

6.4 swap其他知識

  1. vm.swappiness與swap
    vm.swappiness表示系統使用swap的可能性,取值爲[0,100],值越大,可能性越高。值爲0時,不是禁用swap,而是說盡可能的少swap out/in。從linux內核版本2.6.32-303.el6(對應到Centos release 6.4)開始,添加了一個patch,對swappiness爲0的含義進行了更爲嚴格的約束。在新的內核版本里,swappiness爲0的話,swap交換的可能性更是大大降低了。這樣的一個壞處就是增大了OOM的可能性,所以建議此時將swappiness稍設大一點。
#cat /proc/sys/vm/swappiness    //查看參數值,默認爲60
#sysctl vm.swappiness=10	//設置參數爲10.如要設置永久有效,需添加行vm.swappiness=10到/etc/sysctl.conf,否則系統重啓後設置失效。

2.swap和tmpfs
tmpfs是一個基於內存的虛擬文件系統,本質上和ext4是一類概念,只不過tmpfs基於內存,ext4基於磁盤。tmpfs其實基於虛擬內存(物理內存+swap),如此來說,swap和tmpfs還真有點關係了,即tmpfs這個文件系統,可將其管理的文件存儲在swap中。
tmpfs的主要用途是提供比磁盤快的文件訪問速度。例如:有些應用將頻繁訪問的小文件,放在tmpfs掛載的目錄下,文件訪問其實是直接的內存訪問,速度提升非常明顯。默認情況下,tmpfs只使用物理內存,並且容量爲物理內存的一半。

七、 瞭解系統啓動過程

7.1 LUNIX系統啓動的整個過程

系統啓動分爲以下幾個過程:[6]
1.加電自檢
power on system test,自檢主要是檢測一下硬件設備是否存在並能正常工作,簡單來說加電過程就是給CMOS通電,然後啓動其上的BIOS程序,BIOS程序會根據CMOS上面的一些配置信息去讀取其他的硬件設備信息並檢測是否存在並能正常運行,之後進行硬件設備的初始化。
2.選擇啓動程序,加載MBR
在硬件設備初始化後,BIOS會列出一些可以啓動的裝置順序,啓動管理程序來處理核心文件的加載問題,啓動管理程序就是Boot Loader,它是一個程序,所以也依賴於一個硬件之上,所以這個硬件就爲硬盤,準確的說爲第一個可以啓動的硬盤的第一個扇區內,就是我們之前談到的MBR(Master Boot Record,主引導紀錄)當中。Boot Loader有兩個主要功能,第一是去識別、加載操作系統的核心文件,並提交到內存中運行,進而來啓動對應的操作系統,另一個主要的功能就是提供菜單信息,並將啓動管理功能轉交給其它的加載程序。(Windows操作系統不具備將啓動管理功能轉交給其他的加載程序的功能,所以要同時裝linux系統和windos操作系統時一定要先裝windows操作系統,最後安裝Linux系統,通過Linux系統提供的Boot Loader菜單列表可以選擇啓動Windows操作系統的Boot Loader信息,也就是將啓動管理功能的控制權轉交給Windows系統分區的第一個扇區當中的Loader程序,然後完成 Windows的啓動。)
3.加載系統內核Kernel,執行系統初始化信息
在Boot Loader開始讀取操作系統內核文件後,內核文件解壓縮後裝在到內存當中,然後根據內核提供的功能開始測試與加載各個設備,內核文件通常放在/boot目錄當中,並且是一個以VMlinuz開頭的文件,所以這裏我們遇到了一個問題,雞與蛋的問題(內核程序沒有加載到磁盤,就沒有辦法讀取系統上的內核文件,如果先去加載磁盤,就必須有磁盤的驅動程序),所以爲了解決這個維妮塔,我們採用一種叫做虛擬文件系統來解決這個問題,虛擬文件系統也放在/boot目錄下,是一個以initrd開頭的文件,這個文件可以通過Boot Loader程序將其加載到內存當中,這個文件會被解壓縮並且在內存中模擬一個根文件系統,Boot Loader可以加載kernel與initrd,然後再內存中讓initrd解壓縮解壓縮成根目錄,然後內核可以再這個虛擬的根文件系統之上加載合適的驅動程序,來加載硬盤等設備,之後釋放虛擬的根文件系統,並且以制度方式掛載磁盤上真實的根文件系統,之後開始正常的啓動過程。
4.啓動用戶空間第一個執行程序init
init的配置文件中centos6中採用Upstart的方式,其特點時守護進程間的通信依賴於D-Bus進行,在該文件中有一個非常重要的配置項目,就是默認的系統啓動級別。
5.用戶登陸系統
用戶輸入登錄密碼,登錄系統

7.2 系統的各種運行級別及作用功能

系統的七個運行級別

運行級別 含義
0 關機
1 單用戶模式,可以想象爲Windows的安全模式,主要用於系統修復
2 多用戶模式,不完全的命令行模式,不含NFS服務
3 完全多用戶模式,完全的命令函模式,就是標準字符界面
4 系統保留,系統未使用,保留一般不用
5 圖形模式
6 重啓

7.3 設定在各個運行級別中運行的程序與腳本

Linux下(以RedHat爲範本)添加開機開機自動啓動腳本有兩種方式:[7]
1.方法一

  • 使用 /etc/rc.d/rc.local,查看自動啓動腳本
    vi /etc/rc.d/rc.local
  • 授予 /etc/rc.d/rc.local 文件執行權限
    chmod +x /etc/rc.d/rc.local
  • 在文件文件底部添加腳本
  • 重啓服務器,查看腳本是否啓動

注意:/etc/rc.d/rc.local腳本執行,在/etc/profile之前,若/etc/rc.d/rc.local用到/etc/profile的環境變量,Shell無法執行成功
2.方法二

  • 編輯服務腳本 xxxx(腳本名)
    增加內容(要在服務腳本中實現POSIX規範中的函數:start() stop()等),命令:vim /etc/init.d/xxxx
  • 給腳本增加可執行權限
    命令:chmod a+x /etc/init.d/xxxx
  • 註冊xxxx服務名
    命令:chkconfig --add xxxx
    配置系統啓動時該腳本默認啓動,命令:chkconfig xxxx on   
    配置系統啓動時該腳本默認關閉,命令:chkconfig xxxx off
  • 列出當前的服務和他們的配置
    命令:chkconfig --list
  • 重啓服務器,查看腳本是否啓動
    在這裏插入圖片描述

7.4 改變當前系統的運行級別

  • runlevel
    查看當前系統的運行級別
  • init runlevel
    改變當前系統的運行級別,切換模式
    在這裏插入圖片描述

7.5 /etc/inittab文件的作用

進入/etc/inittab,可以查看系統的默認運行級別,即開機默認啓動模式
設置默認啓動,以下例子設置默認啓動模式爲圖形化模式
id:5:initdefault:
在這裏插入圖片描述

八、 學習Linux基礎網絡管理常用指令

  • ifconfig
    查看配置網絡
    ifdown 網卡設備名
    關閉網卡
    ifup 網卡設備名
    啓用網卡
    在這裏插入圖片描述
  • netstat
    -t 列出TCP協議端口
    -u 列出UDP協議端口
    -n 不適用域名與服務名,而是用ip地址和端口號
    -l 僅列出在監聽端口
    -a 所有的連接
    -r 路由表
    常用的組合:
    -an 所有的連接和端口
    -tuln 查看正在監聽TCP(t)和UDP(u)的端口
    -rn 查看網關 route -n
    在這裏插入圖片描述
  • nslookup
    查看域名對應的ip和DNS
    在這裏插入圖片描述
  • ping ip
    判斷域名或ip的網絡狀況,ctrl+c結束
    在這裏插入圖片描述
  • traceroute
    traceroute ip(域名)
    路由跟蹤命令
    -n 使用ip,速度更快
    -q 每次發送的數據包數量,默認是3
    -m 設置跳數,默認是30
    win中使用tracert命令達到相同的效果
    在這裏插入圖片描述
  • tcpdump
    抓包工具
    -i 指定網卡
    -nn 鍵給數據包中的域名與服務轉爲ip和端口
    -X 以十六進制和ASCII嗎顯示數據包內容
    port 指定監聽的端口
    在這裏插入圖片描述

參考

以上爲個人整理總結的知識,如有遺漏或錯誤歡迎留言指出、點評,如要引用,請聯繫通知,未經允許謝絕轉載。
[1]: https://baike.baidu.com/item/linux/27050?fr=aladdin
[2]: https://www.cnblogs.com/nufangrensheng/p/3478393.html
[3]:https://www.cnblogs.com/hanmk/p/10554359.html
[4]:https://www.cnblogs.com/52py/p/10950300.html
[5]:https://blog.csdn.net/c77_cn/article/details/45745635
[6]:https://blog.51cto.com/13866901/2164166
[7]:https://www.cnblogs.com/h–d/p/9998788.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章