1.開機自檢 BIOS
2.MBR引導
3.GRUB菜單
4.加載內核
5.運行init進程
6.從/etc/inittab讀取運行級別
7.根據/etc/rc.sysinit 初始化系統(設置主機名 設置ip)
8.根據運行級別啓動對應的軟件(開機自啓動軟件)
9.運行mingetty顯示登陸界面mysql
一、大寫linux
二、在系統大部分地方均可以使用,含義相同nginx
三、常見的環境變量正則表達式
LANG PATH PS1sql
路徑-存放的是Linux命令的位置/路徑shell
[root@luffy_boy-001 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# 用冒號分割 [root@luffy_boy-001 ~]# echo $LANG en_US.UTF-8
一、輸入命令express
二、在PATH裏面 進行查找apache
三、找到了就運行,找不到就提示:command not foundvim
如何過濾出已知當前目錄下oldboy中的全部一級目錄(提示:不包含oldboy目錄下面目錄的子目錄及隱藏目錄,即只能是第一級目錄)?安全
##建立環境 mkdir /oldboy -p cd /oldboy mkdir ext/oldboy test xiaodong xiaofan xingfujie -p touch jeacen oldboy wodi.gz yingsui.gz
##方法1-tree yum install tree -y [root@oldboyedu43-lnb oldboy]# tree -Ld 1 . ├── ext ├── test ├── xiaodong ├── xiaofan └── xingfujie 5 directories ##方法2-find [root@oldboyedu43-lnb oldboy]# find -maxdepth 1 -type d 把-maxdepth放在前面,不然會有警告信息 . ./xingfujie ./test ./xiaodong ./xiaofan ./ext [root@oldboyedu43-lnb oldboy]# find -maxdepth 1 -type d -name "." . [root@oldboyedu43-lnb oldboy]# find -maxdepth 1 -type d ! -name "." ./xingfujie ./test ./xiaodong ./xiaofan ./ext ##方法3-grep [root@oldboyedu43-lnb oldboy]# ls -l |grep "以d開頭的行" [root@oldboyedu43-lnb oldboy]# ls -l |grep "^d" drwxr-xr-x 3 root root 4096 Dec 15 00:26 ext drwxr-xr-x. 2 root root 4096 Dec 11 21:22 test drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaodong drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaofan drwxr-xr-x 2 root root 4096 Dec 15 00:26 xingfujie ^ 高級貨色(三劍客使用) 正則表達式 以.....開頭的行 ##方法4-awk [root@oldboyedu43-lnb oldboy]# ls -l |awk '第2列大於1' awk: 第2列大於1 awk: ^ invalid char '奠in expression [root@oldboyedu43-lnb oldboy]# ls -l |awk '$2>1' total 32 drwxr-xr-x 3 root root 4096 Dec 15 00:26 ext drwxr-xr-x. 2 root root 4096 Dec 11 21:22 test drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaodong drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaofan drwxr-xr-x 2 root root 4096 Dec 15 00:26 xingfujie 這種方法實際上是不許確的,瞭解一下 ##方法5-ls [root@oldboyedu43-lnb oldboy]# ls -F|grep "/" ext/ test/ xiaodong/ xiaofan/ xingfujie/ [root@oldboyedu43-lnb oldboy]# #-F 給不通類型的文件 加上不通的標記/尾巴 ##方法6-ls ls -ld */
## 查看某個軟件包裏面有什麼 [root@luffy_boy-001 oldboy]# rpm -ql tree /usr/bin/tree /usr/share/doc/tree-1.5.3 /usr/share/doc/tree-1.5.3/LICENSE /usr/share/doc/tree-1.5.3/README /usr/share/man/man1/tree.1.gz
查看某個軟件是否安裝
rpm -qa |grep tree
如何快速的回到 上一次所在的位置/目錄
cd - 快速回到上一次的位置。- 至關於 環境變量
cd - #cd $OLDPWD cd - #如何快速的回到 上一次所在的位置 cd . #當前目錄 複製/移動 cd .. #進入當前目錄的上級目錄 cd ~ #進入當前目錄的家目錄 回老家 cd #進入當前目錄的家目錄 回老家
一個目錄中有不少文件(ls查-看時好多屏),想最快速度查看到最近更新的文件。如何看?
[root@luffy_boy-001 etc]# ls -lrt
t 按時間排序
r 逆序
調試系統服務時,但願能實時查看系統日誌/var/log/messages 的更新,如何作?
#一、從新打開一個窗口 [root@luffy_boy-001 etc]# tail -f /var/log/messages
tailf ==== tail -f 同樣的
三劍客sed、grep、awk都能過濾,可是在過濾方面仍是grep的比較快一些
sed跟擅長替換,修改文本內容
awk擅長取行,取列
打印配置文件nginx.conf的內容的行號以及內容,該如何作?
打造環境
echo stu{01..10} |xargs -n1 >nginx.conf
###方法1 [root@oldboyedu-39-nb oldboy]# cat -n nginx.conf 1 stu1 2 stu2 3 stu3 4 stu4 5 stu5 ###方法2 vi /vim :set nu #顯示行號 :set nonu #取消顯示行號 ###方法3 grep [root@oldboyedu-39-nb oldboy]# grep -n "." nginx.conf 1:stu1 2:stu2 3:stu3 4:stu4 5:stu5 ####. 正則表達式裏面的 表示任意一個字符 ###方法4 sed [root@oldboyedu-39-nb oldboy]# sed '=' nginx.conf |xargs -n2 1 stu1 2 stu2 3 stu3 4 stu4 5 stu5 ###方法5 awk [root@oldboyedu-39-nb oldboy]# awk '顯示行號' nginx.conf awk: 顯示行號 awk: ^ invalid char '?in expression [root@oldboyedu-39-nb oldboy]# awk '{print NR}' nginx.conf 1 2 3 4 5 [root@oldboyedu-39-nb oldboy]# awk '{print NR,$0}' nginx.conf 1 stu1 2 stu2 3 stu3 4 stu4 5 stu5 ###方法6 [root@oldboyedu-39-nb oldboy]# nl nginx.conf 1 stu1 2 stu2 3 stu3 4 stu4 5 stu5
已知apache/nginx服務的訪問日誌按天記錄在服務器本地目錄/app/logs下,因爲磁盤空間緊張,如今要求只能保留最近7天訪問日誌!請問如何解決? 請給出解決辦法或配置或處理命令。(提示:能夠從apache服務配置上着手,也能夠從生成出來的日誌上着手。)
# 建立環境 mkdir -p /app/logs cd /app/logs for time in {01..20};do date -s "201705$time"; touch access_www_$(date +%F).log ;done date -s "20170520" 修改系統時間
# 前第七天 [root@luffy_boy-001 logs]# find -type f -name '*.log' -mtime 7 ./access_www_2017-05-13.log # 7天以前 [root@luffy_boy-001 logs]# find -type f -name '*.log' -mtime +7 ./access_www_2017-05-11.log ./access_www_2017-05-12.log ./access_www_2017-05-10.log ./access_www_2017-05-08.log ./access_www_2017-05-09.log ./access_www_2017-05-01.log ./access_www_2017-05-02.log ./access_www_2017-05-03.log ./access_www_2017-05-06.log ./access_www_2017-05-07.log ./access_www_2017-05-05.log ./access_www_2017-05-04.log # 最近7天 [root@luffy_boy-001 logs]# find -type f -name '*.log' -mtime -7 ./access_www_2017-05-18.log ./access_www_2017-05-15.log ./access_www_2017-05-20.log ./access_www_2017-05-16.log ./access_www_2017-05-19.log ./access_www_2017-05-17.log ./access_www_2017-05-14.log
找出/app/logs下面以.log結尾的而且修改時間是7天以前的文件並刪除(ls -l) find /app/logs/ -type f -name "*.log" -mtime +7 #find /app/logs/ -type f -name "*.log" -mtime +7|xargs ls -l #ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7) #find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \; 經過系統軟件對日誌進行切割。 補充find命令相關題目: 查找/oldboy 下全部以log 結尾的大於1M 的文件複製到/tmp [root@oldboyedu43-lnb logs]# cat /etc/services /etc/services > 1m.log [root@oldboyedu43-lnb logs]# ls -lh 1m.log -rw-r--r-- 1 root root 1.3M Dec 12 00:14 1m.log find /oldboy -type f -name "*.log" -size +1M -size +1M -size +100k find /oldboy -type f -name "*.log" mkdir -p /tmp/a /tmp/b /tmp/c /tmp/d 方法1 find+$() #cp 次處是find命令的結果 /tmp/a/ cp $(find /app/logs/ -type f -name "*.log") /tmp/a/ 方法2 find + -exec find /app/logs/ -type f -name "*.log" -exec cp {} /tmp/b/ \; 方法3 find + |xargs find /app/logs/ -type f -name "*.log" |xargs cp -t /tmp/c
裝完系統後,但願讓網絡文件共享服務NFS(iptables),僅在3級別上開機自啓動,應該怎麼作?
[root@luffy_boy-001 logs]# chkconfig |grep ipt iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@luffy_boy-001 logs]# chkconfig --level 3 iptables off [root@luffy_boy-001 logs]# chkconfig |grep ipt iptables 0:off 1:off 2:on 3:off 4:on 5:on 6:off [root@luffy_boy-001 logs]# chkconfig --level 35 iptables off [root@luffy_boy-001 logs]# chkconfig |grep ipt iptables 0:off 1:off 2:on 3:off 4:on 5:off 6:off
/etc/目錄是linux系統默認的配置文件以及服務啓動命令的目錄
a、請用tar打包/etc整個目錄(打包以及壓縮)
b、請把a點命令的壓縮包,解壓到/tmp 指定目錄下(最好用tar命令實現)
c、請用tar打包/etc整個目錄(打包及壓縮,但須要排除/etc/services文件)
tar - 建立查看解壓 壓縮包
####建立一個壓縮包 #tar zcvf /tmp/etc.tar.gz /etc/ #z----壓縮工具---gzip 最經常使用一種 壓縮以後咱們通常給 壓縮包命名位 xxxx.tar.gz #c----建立-------create #v----顯示壓縮/解壓過程 #f----file------指定壓縮包的名字 ###查看壓縮包裏面的內容 tar ztf /tmp/etc.tar.gz #t---list------列表 顯示 ###解壓----解壓到當前目錄 # cd /tmp/ # pwd /tmp # tar zxvf /tmp/etc.tar.gz #x-----extract 解壓
提示的是什麼?:
[root@luffy_boy-001 etc]# tar zcf /etc/haha.tar.gz /etc/ tar: Removing leading `/' from member names tar: Removing leading `/' from hard link targets tar: /etc: file changed as we read it ###問題:"建立壓縮包"的時候會提示 tar: Removing leading `/' from member names tar:把每一個文件開頭的/刪除掉了。 /etc/hosts ------> etc/hosts tar命令提示你:我在建立壓縮包的時候 把壓縮包中的文件 絕對路徑----->相對路徑 tar: Removing leading `/' from hard link targets 打包的時候使用相對路徑,就不會出現提示了 ###小結:核心 爲了安全----tar命令 把你使用的絕對路徑----變化爲-----相對路徑
b和c的答案:
b.請用tar打包/etc整個目錄(打包及壓縮,但須要排除/etc/services文件)。 [root@oldboyedu-39-nb /]# tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude=services ###排除全部文件名叫services的文件 tar: Removing leading `/' from member names tar: Removing leading `/' from hard link targets [root@oldboyedu-39-nb /]# tar tf /tmp/etc-pai.tar.gz |grep services etc/init/readahead-disable-services.conf [root@oldboyedu-39-nb /]# tar tf /tmp/etc.tar.gz |grep services etc/services etc/init/readahead-disable-services.conf ##排除---精確版本 加上位置 [root@oldboyedu-39-nb /]# tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude=etc/services tar: Removing leading `/' from member names tar: Removing leading `/' from hard link targets [root@oldboyedu-39-nb /]# tar tf /tmp/etc-pai.tar.gz |grep services etc/sysconfig/services etc/init/readahead-disable-services.conf #把你要排除的名單寫到一個文件中 /tmp/paichu.txt(瞭解) #tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude-from=/tmp/paichu.txt c.請把a點命令的壓縮包,解壓到/tmp指定目錄下(最好只用tar命令實現)。 tar xf /tmp/etc-pai.tar.gz -C /opt 把/etc/hosts /etc/sysconfig/network /etc/sysconfig/i18n /etc/init.d/ 打包壓縮 /tmp/conf.tar.gz 解壓到/opt目錄 [root@oldboyedu-39-nb /]# tar zcf /tmp/conf.tar.gz /etc/hosts /etc/sysconfig/network /etc/sysconfig/i18n /etc/init.d/ tar: Removing leading `/' from member names [root@oldboyedu-39-nb /]# tar tf /tmp/conf.tar.gz etc/hosts etc/sysconfig/network etc/sysconfig/i18n etc/init.d [root@oldboyedu-39-nb /]# tar xf /tmp/conf.tar.gz -C /opt/ [root@oldboyedu-39-nb /]# ls /opt/ etc rh
小結:
#1.建立壓縮包 tar zcf /tmp/oldboy.tar.gz /oldboy #2.查看壓縮包中的內容 tar tf /tmp/oldboy.tar.gz #3.解壓---解壓到當前目錄 tar xf /tmp/oldboy.tar.gz tar xf /tmp/oldboy.tar.gz -C /opt #4.建立壓縮包的時候 排除 tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude=etc/services
tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude-from=/tmp/paichu.txt
已知以下命令及結果:
mkdir -p /oldboy
echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt
a.如今須要從文件中過濾出「oldboy」和「31333741」字符串,請給出命令.
b.若是須要從文件中過濾出「oldboy,31333741」字符串,請再給出命令.
a.如今須要從文件中過濾出「oldboy」和「31333741」字符串,請給出命令. 方法1-sed-sed [root@oldboyedu01-nb oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is##g' oldboy 31333741
方法2-sed/tr+awk [root@oldboyedu01-nb oldboy]# sed 's#,# #g' oldboy.txt |awk '{print $3,$6}' oldboy 31333741 [root@oldboyedu01-nb oldboy]# tr "," " " <oldboy.txt |awk '{print $3,$6}' oldboy 31333741 方法3-awk指定多個分隔符號 [root@oldboyedu01-nb oldboy]# cat oldboy.txt I am oldboy,myqq is 31333741 [root@oldboyedu01-nb oldboy]# awk -F "," '{print $1}' oldboy.txt I am oldboy [root@oldboyedu01-nb oldboy]# awk -F "[, ]" '{print $3,$6}' oldboy.txt oldboy 31333741 -F "[, ]" 表示以逗號或者空格做爲菜刀 分隔符 b.若是須要從文件中過濾出「oldboy,31333741」字符串,請再給出命令. [root@oldboyedu01-nb oldboy]# awk -F "[, ]" '{print $3,$6}' oldboy.txt oldboy 31333741 [root@oldboyedu01-nb oldboy]# awk -F "[, ]" '{print $3","$6}' oldboy.txt oldboy,31333741 [root@oldboyedu01-nb oldboy]# awk -F "[, ]" '{print $3"$1"$6}' oldboy.txt oldboy$131333741 [root@oldboyedu01-nb oldboy]# awk -F "[, ]" '{print $3" $1 "$6}' oldboy.txt oldboy $1 31333741 小結: 1.tr命令 2.awk指定分隔符 指定多個分隔符
awk分割列的方式
能夠統計文件有多少行,有多少單詞,多大等
如何查看/etc/services文件的有多少行?
[root@oldboyedu01-nb oldboy]# wc -l /etc/services 10774 /etc/services
屌絲去洗浴中心之路
3.
1)查看22端口是否開啓 telnet
2)sshd遠程鏈接進程是否在運行******
ps -ef
[root@oldboyedu01-nb oldboy]# ps -ef |grep "sshd" root 1509 1 0 17:51 ? 00:00:00 /usr/sbin/sshd root 1669 1509 0 17:51 ? 00:00:00 sshd: root@pts/0 root 1795 1509 0 18:17 ? 00:00:00 sshd: root@pts/1 root 1813 1671 0 18:17 pts/0 00:00:00 grep sshd [root@oldboyedu01-nb oldboy]# ps -ef |grep "/sshd" root 1509 1 0 17:51 ? 00:00:00 /usr/sbin/sshd root 1817 1671 0 18:19 pts/0 00:00:00 grep /sshd [root@oldboyedu01-nb oldboy]# ps -ef |grep "/sshd"|wc -l 獲得數字 2
過濾出/etc/services 文件包含3306或1521兩數字所在的行的內容。
[root@oldboyedu01-nb oldboy]# egrep "3306|1521" /etc/services mysql 3306/tcp # MySQL mysql 3306/udp # MySQL ncube-lm 1521/tcp # nCube License Manager ncube-lm 1521/udp # nCube License Manager [root@oldboyedu01-nb oldboy]# #egrep === grep -E 支持高級正則(公雞裏的戰鬥機)
單引號 所見即所得 吃啥吐啥 [root@oldboyedu01-nb oldboy]# echo 'hello lls $LANG $(hostname) `pwd`' hello lls $LANG $(hostname) `pwd` 雙引號 裏面的特殊符號會被解析 [root@oldboyedu01-nb oldboy]# echo "hello lls $LANG $(hostname) `pwd`" hello lls en_US.UTF-8 oldboyedu01-nb /oldboy