日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

《求职》第四部分 - 操作系统篇 - Linux基础

發(fā)布時間:2024/3/13 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《求职》第四部分 - 操作系统篇 - Linux基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

常用命令

  • 編輯相關(guān)
    • awk:awk是一個強(qiáng)大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報(bào)告時,顯得尤為強(qiáng)大。簡單來說awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行各種分析處理。

      • NF:字段總數(shù)
      • NR:第幾行數(shù)據(jù)
      • FS:分隔字符
    • sed

      • -n
      • -i 直接修改
      • 4a:在第四行后添加
      • 4i:在第四行前插入
      • 1,5c sting:用sting替換1到5行的內(nèi)容
      • s/要被替換的字符串/新的字符串/g
    • sort

      • -t
      • -nr sort |uniq -c |sort -nr
    • tr

      • -d:刪除
      • [a-z] [A Z]:替換
  • 查看負(fù)載相關(guān)
    • top
      • load average cpu
        里面的幾個數(shù)字代表什么意思,怎么衡量,為什么
        • load average 50 算高還是低?怎么計(jì)算的?
        • 系統(tǒng)在1,5,15分鐘的平均工作負(fù)載,進(jìn)程隊(duì)列中的平均進(jìn)程數(shù)量。
        • 一般不能大于系統(tǒng)邏輯CPU的個數(shù)
        • /proc/loadavg
      • 關(guān)鍵參數(shù)
        • Task:僵尸進(jìn)程的數(shù)量
        • CPU:%wa IOwait
        • Mem:
        • Swap:要盡可能的少用
    • uptime
    • free:讀取自文件:/proc/meminfo
      • buffer存放要寫回到磁盤的數(shù)據(jù)
      • cache存放從磁盤上讀出的數(shù)據(jù)
      • -buffers/cache,表示一個應(yīng)用程序認(rèn)為系統(tǒng)被用掉多少內(nèi)存;被程序?qū)崒?shí)在在占用的內(nèi)存
      • +buffers/cache,表示一個應(yīng)用程序認(rèn)為系統(tǒng)還有多少內(nèi)存;可用的內(nèi)存數(shù)。
    • vmstat:動態(tài)的了解系統(tǒng)資源運(yùn)行
      • -d:磁盤
      • r:等待運(yùn)行的進(jìn)程數(shù),r<5表示狀態(tài)好
      • b:處于非中斷睡眠狀態(tài)的進(jìn)程數(shù),b≈0表示狀態(tài)好
      • id:CPU閑置時間
      • 如果r經(jīng)常大于3或4,且id經(jīng)常小于50,表示CPU負(fù)荷很重
    • ps
      • aux
      • -l
    • lsof:列出被進(jìn)程所打開的文件名
    • pwd
      • 首先獲取當(dāng)前目錄的i節(jié)點(diǎn)編號,但是并不能知道當(dāng)前目錄的名稱,我們切換到其的父目錄,在里面尋找當(dāng)前i節(jié)點(diǎn)編號對應(yīng)的文件名即可。終止條件是".“和”…"指向同一個i節(jié)點(diǎn),我們可以以此判斷是否發(fā)到達(dá)了根目錄
    • pgrep
  • 查找
    • grep
      • -n
      • -v
      • -A
      • -B
    • find
      • 時間:
        • 4:4天前的那一天
        • +4:大于等于5天之前
        • -4:小于等于4天之內(nèi)
      • -exec 命令 { } ;
  • 磁盤
    • du
      • -sh /
      • du -cks * | sort -rn | head -n 10
      • 評估目錄所占容量,通過將指定文件系統(tǒng)中所有的目錄、符號鏈接和文件使用的塊數(shù)累加得到該文件系統(tǒng)使用的總塊數(shù)
      • du命令是用戶級的程序,它不考慮Meta
        Data,而df命令則查看文件系統(tǒng)的磁盤分配圖并考慮Meta Data。
      • du以文件名、目錄名為依據(jù)計(jì)算空間使用的,而df是以硬盤塊使用情況來計(jì)算空間使用的。
      • -sm 以M為單位列出文件容量
    • df
      • 列出所有文件系統(tǒng)的整體磁盤使用量,通過讀取塊位圖獲取
      • dumpe2fs
  • 網(wǎng)絡(luò)配置命令
    • netstat
      • -tlnp
    • ss
    • ping
    • traceroute
    • tcpdump
      • tcpdump ip host
      • tcpdump tcp port 25 and host 210.27.48.1
    • nslookup
    • dig
    • nmap
      • tcp端口掃描:-sT、-sP
      • TCP SYN端口掃描:-sS
        • nmap -sS 192.168.137.10 -255 -p 20,21,53-110,30000 --v
      • UDP端口掃描:-sU
      • TCP ACK掃描:-sA

系統(tǒng)調(diào)優(yōu)參數(shù)

  • /etc/sysctl.conf
    這個文件有沒有改過?列舉一些常見的kernel參數(shù)和作用。
    • time_wait相關(guān)
      • net.ipv4.tcp_tw_reuse =
        1:是否允許新的TCP連接重新應(yīng)用處于time_wait狀態(tài)的socket
      • net.ipv4.tcp_tw_recycle = 1:加速time_wait socket回收
      • net.ipv4.tcp_max_tw_buckets:time_wait套接字的最大數(shù)量,把time_wait所占用內(nèi)存控制在一定范圍
    • syn攻擊相關(guān)
      • net.inet.tcp.syncookies =
        1:開啟syncookies功能,防止dos攻擊,syn攻擊
      • net.ipv4.tcp_synack_retries =
        2:內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量
      • net.ipv4.tcp_syn_retries =
        2:新連接,內(nèi)核放棄連接之前發(fā)送SYN包的數(shù)量
      • net.ipv4.tcp_max_syn_backlog = 65536:表示SYN隊(duì)列的長度
    • 緩沖區(qū)
      • net.core.rmem_default:接收套接字緩沖區(qū)大小缺省值
      • net.core.wmem_default:發(fā)送套接字緩沖區(qū)大小缺省值
      • net.core.rmem_max:最大TCP接收緩沖區(qū)大小
      • net.core.wmem_max:最大TCP發(fā)送緩沖區(qū)大小
    • kern.ipc.somaxconn :并發(fā)連接數(shù)
    • net.core.netdev_max_backlog = 32768:進(jìn)入包的最大設(shè)備隊(duì)列

常見服務(wù)占用端口

  • 80 8080 443
  • 20 21 22 23 25 53
  • 135(RPC)137(NetBIOS/UDP) 138(UDP) 139 (samba)
  • 161 SNMP
  • 1080 Socket代理
  • 3306 11211 8080 jboss tomcat 50170

文件系統(tǒng)

  • (ext4)性能 安全性

  • 啟動扇區(qū) 塊組 超級塊 inode表格 block 塊對照表(Bitmap) inode對照表

    • 超級塊
      • 記錄整個文件系統(tǒng)的整體信息,包括inode(記錄文件的權(quán)限與屬性)與block(記錄數(shù)據(jù))總量、使用量、剩余量
    • inode表格 = inode + 存儲block號碼的block (ls -l命令)
    • inode本身不記錄文件名,文件名的記錄在目錄的block中
    • 創(chuàng)建新的目錄時,新目錄的鏈接數(shù)是2(產(chǎn)生了/.),上層目錄的鏈接數(shù)會增加1(產(chǎn)生了/…)
  • 讀寫文件會遇到的問題

    • 文件數(shù)據(jù)離散:文件很大、經(jīng)常變動、無法寫在連續(xù)的塊中、機(jī)械臂移動大、
      • 復(fù)制出來、格式化、復(fù)制回去
    • 創(chuàng)建文件流程
      • 查詢目錄權(quán)限
      • 在日志記錄塊中記錄準(zhǔn)備寫入的信息
      • 查詢inode bitmap,向inode中寫入權(quán)限和屬性
      • 查詢block bitmap,向block寫入數(shù)據(jù)
      • 更新inode指向block
      • 更新inode bitmap和block bitmap 的狀態(tài),更新superblock內(nèi)容
      • 在日志記錄塊中完成文件記錄
    • 讀文件失敗
      • 塊數(shù)據(jù)損壞
      • inode損壞:記錄數(shù)據(jù)塊號碼的塊損壞
    • 寫文件失敗
      • 文件描述符不夠
      • 存儲空間不夠了(塊不夠、inode不夠)
  • hdfs的一個block多大,為什么128M?

    • 不能遠(yuǎn)小于128M:減少硬盤尋道時間、減少Namenode內(nèi)存消耗
    • 不能遠(yuǎn)大于128M:
      • Map崩潰問題 (數(shù)據(jù)塊大,重新加載時間長)
      • 預(yù)設(shè)時間間隔問題(從數(shù)據(jù)塊的角度大概估算,數(shù)據(jù)塊越大,時間越長)
      • 問題分解問題:數(shù)據(jù)量大小和問題解決的復(fù)雜度成線性關(guān)系
      • 約束map輸出:map之后的數(shù)據(jù)需要排序后再執(zhí)行reduce,大文件不利于歸并排序的思想
  • ext4文件系統(tǒng)的block多大?

    • 4k
    • HDFS的塊比磁盤塊大,其目的是為了最小化尋址開銷
  • 索引式文件系統(tǒng):ext

  • 非索引式文件系統(tǒng):FAT 碎片整理

  • cp/mv/rm的區(qū)別(實(shí)現(xiàn))

    • cp
      • -a(pdr:連同文件屬性一起、鏈接文件屬性、遞歸)
      • -u(新才復(fù)制)
      • -l -s (復(fù)制為鏈接)
      • -d
        復(fù)制鏈接文件時,默認(rèn)復(fù)制的是源文件,除非加-d參數(shù),才會復(fù)制鏈接文件
    • 當(dāng)目標(biāo)文件存在時,cp
      命令并不是先刪除已經(jīng)存在的目標(biāo)文件,而是將原目標(biāo)文件內(nèi)容清空后再寫入。
    • mv
      的主要功能就是檢查初始文件和目標(biāo)文件是否存在及是否有訪問權(quán)限,之后執(zhí)行
      rename 系統(tǒng)調(diào)用,因而,當(dāng)目標(biāo)文件存在時,mv 的行為由 rename()
      系統(tǒng)調(diào)用決定,即類似于刪除文件后再重建一個同名文件。
    • 刪除文件名是指在原目錄下不再含有此文件名,并不一定刪除磁盤上文件的內(nèi)容。只有在文件的鏈接數(shù)為1,并且沒有進(jìn)程打開此文件的時候,unlink()
      才會真正刪除文件內(nèi)容。
  • 軟硬連接(inode這塊,ln / ln -s)

    • 硬鏈接:一個inode節(jié)點(diǎn)對用不同的文件名,
      • 不創(chuàng)建新的inode,每增加一個硬鏈接,inode節(jié)點(diǎn)鏈接數(shù)加一
      • rm
        硬鏈接:刪除的只是文件名,對應(yīng)的數(shù)據(jù)塊只有在inode節(jié)點(diǎn)鏈接數(shù)減少為0的時候才會被系統(tǒng)回收。
      • 不能對目錄創(chuàng)建硬鏈接,因?yàn)槲募到y(tǒng)不能存在鏈接環(huán),否則會導(dǎo)致文件便利操作的混亂(du,pwd等命令的運(yùn)作原理就是基于文件硬鏈接)
      • 不能跨文件系統(tǒng)
      • 不能對不存在的文件創(chuàng)建硬鏈接
    • 軟鏈接:如果目標(biāo)路徑名較短則直接保存在inode中,如果較長則分配一個block存儲
      • 創(chuàng)建新的inode,指向的數(shù)據(jù)塊存放著源文件的路徑
      • 刪除源文件,軟鏈接失效
      • 可以對目錄 創(chuàng)建軟連接,遍歷操作會忽略目錄的軟鏈接
      • 可以跨文件系統(tǒng)
      • 可以對不存在的文件創(chuàng)建軟鏈接

開機(jī)啟動過程

  • Mbr 與gpt的區(qū)別
  • BIOS、CMOS、MBR、Boot
    Loader、Grub2、Kernel、/sbin/init、/etc/init/*.conf、/ect/inittab、/etc/rc.d/rc.sysinit、/etc/rc.d/rc.$runleave
  • 雙系統(tǒng)
    • 多重引導(dǎo):MBR、各分區(qū)的啟動扇區(qū)boot sector

Shell常用腳本

  • 從日志文件里面篩選出符合要求的ip或者其他信息
    • cat logname | sort | uniq -c | sort -nr | head -n 10
  • 正則表達(dá)式匹配IP地址
    • [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1-3}\.{1,3}
    • ^((25[0-5]|2[0-4]\d|[1]{1}\d{1}\d{1}|[1-9]{1}\d{1}|\d{1})( ∣ ( ? ! . |(?!\\. (?!.)\.)){4}$
    • ((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))
  • 20G大小的文件,內(nèi)容都是IP,有重復(fù)的,如何找出這里面的top N ?
    • 分表、哈希
  • 統(tǒng)計(jì)nginx日志出現(xiàn)次數(shù)最多的ip
    • awk ‘{print $1}’ urllogfile | sort | uniq -c | sort -nr -k1
      | head -n 10
  • 查看Web服務(wù)器(Nginx Apache)的并發(fā)請求數(shù)及其TCP連接狀態(tài)
    • netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print
      a, S[a]}’

Swap

  • swap分區(qū)是怎么設(shè)置的?
    • 使用物理分區(qū)構(gòu)建swap:fdisk分區(qū)(改分區(qū)類型ID)、mkswap格式化、swapon啟動、free查看、
    • 使用文件構(gòu)建swap:dd、mkswap、swapon、free
  • 為什么要有swap分區(qū),工作原理是什么?為什么云服務(wù)器上的swap沒有開啟?
    • 內(nèi)存不足時,將內(nèi)存中暫時不使用的程序與數(shù)據(jù)放置到swap中
    • 服務(wù)器休眠時,運(yùn)行中的程序狀態(tài)會被記錄到swap
    • 某些程序運(yùn)行時會利用swap的特性

Iptables

  • filter
    • INPUT
    • OUTPUT
    • FORWARD
  • nat
    • PREROUTING
    • OUTPUT
    • POSTROUTING
  • mangle
    • PREROUTING
    • INPUT
    • FORWERD
    • POSTROUTING
    • OUTPUT
  • 語法
    • iptables [-t 表名] <-A|I|D|R>鏈名 -i|o網(wǎng)卡名稱 -p
      協(xié)議類型 -s源IP --sport 源端口號 -d 目標(biāo)IP地址 --dport
      目標(biāo)端口號 <-j 動作>
    • iptables -P INPUT DROP
    • iptables -A INPUT -m state --state NEW -j DROP
    • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    • iptables -A INPUT -p tcp -dport 445 -j ACCEPT
    • iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
    • 只允許某個IP上網(wǎng)

Shell操作

  • find /data -type f -name “*.txt” | xargs sed -i ‘s/oldgirl/oldboy/g’

  • mkdir -p /data/oldboy && echo

  • 算術(shù)運(yùn)算

    • $[]
    • $(())
    • $(expr a + b) 或者 expr a \* b :注意運(yùn)算符兩邊要空格,且乘法符號要轉(zhuǎn)義
  • 查看http的并發(fā)請求數(shù)與其TCP連接狀態(tài)

    • netstat -tan | awk ‘/^tcp>/{split($5,ip,"😊;count[ip[1]]++}END{for(i in count) print i,count[i]}’
  • awk ‘{print $1}’ /var/log/nginx/access.log | sort | uniq -c | sort -nr -k1 | head -n 10

  • cat /dev/urandom | head -1 | md5sum | haed -c 5

  • watch -n 1 “/sbin/ifconfig eth0 | grep bytes”

  • find /opt -size +15k -exec mv {} /tmp/ ;

  • sed和awk

    • 如果文件是格式化的,即由分隔符分為多個域的,優(yōu)先使用awk
    • awk適合按列(域)操作,sed適合按行操作
    • awk適合對文件的抽取整理,sed適合對文件的編輯。
  • 寫一個腳本,該腳本能對標(biāo)準(zhǔn)的apache日志進(jìn)行分析并統(tǒng)計(jì)出總的訪問次數(shù)和每個訪問ip的訪問次數(shù),按訪問次數(shù)列出前5名?

  • 顯示/test下所有目錄

    • ls -d */
    • find . -type d -maxdepth 1
    • ls -F | grep ‘/$’
    • ls -l | grep ‘^d’ | awk ‘{print $9}’
  • 將文件/etc/a 下中除了 b文件外的所有文件壓縮打包放到/home/a下,名字為a.tar.gz

    • tar -exclude /etc/a/b -Pcvfz /home/a/a.tar.gz /etc/a
  • 如何查看某進(jìn)程打開的所有文件

    • lsof -p `ps -ef | grep crond | awk ‘{print $2}’`
  • 獲取網(wǎng)卡eth0的80端口的數(shù)據(jù)包信息,找出訪問最高的

    • tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F “.” ‘{print $1"."$2"."$3"."$4"."}’|sort|uniq -c|sort -nr|head -5
  • 查看/var/log目錄下的文件數(shù)

    • ls /var/log -1R | grep “-” | wc -l
  • 查看Linux系統(tǒng)每個IP的連接數(shù)

    • netstat -n | awk ‘/^tcp/{print $5}’ | awk -F":" ’{print $1}’ | sort | uniq -c | sort -rn
  • 用iptables控制來自192.168.1.2主機(jī)的80端口請求

    • iptables -A INPUT -p tcp -s 192.168.1.2 -dport 80 -j ACCEPT
  • Linux如何掛載Windows下的共享目錄

    • mount .cifs //IP地址/server /mnt/server -o user=username,password=123
  • 生成32位隨機(jī)密碼

    • cat /dev/urandom | head -1 | md5sum | head -c 32
  • 密碼加密

    • echo abc | openssl md5
    • echo abc | openssl base64
    • echo abc | openssl sha
  • ps aux 中的VSZ代表什么意思,RSS代表什么意思?

    • VSZ:虛擬內(nèi)存集,進(jìn)程占用的虛擬內(nèi)存空間
    • RSS:物理內(nèi)存集,進(jìn)程占用的實(shí)際物理內(nèi)存空間
  • 修改內(nèi)核參數(shù)

    • vi /etc/sysctl.conf
    • sysctl -p
  • 取0-39隨機(jī)數(shù)

    • expr $[RANDOM%39] + 1 # 注意操作符兩邊的空格
  • 限制apache每秒新建連接數(shù)為1,峰值為3

    • iptables -A INPUT -d 172.16.100.1 -p tcp -dport 80 -m limit -limit 1/second -j ACCEPT
  • 怎么把腳本添加到系統(tǒng)服務(wù)里,即用service來調(diào)用?

    • 腳本里添加
      • #!/bin/bsh
      • # chkconfig: 345 85 15
      • # description: httpd
    • chkconfig httpd -add
    • service start httpd
  • 按修改時間排序顯示目錄中的文件

    • ls -lrt /etc
  • 打印文件的權(quán)限值

    • stat -c %a /etc/inittab
  • 查看 ARP 緩存記錄的命令是?

    • “arp –a”
  • 軟件工具的原則

    • 一次做好一件事
    • 處理文本行,不要處理二進(jìn)制數(shù)據(jù)
    • 使用正則表達(dá)式
    • 默認(rèn)使用標(biāo)準(zhǔn)輸入、輸出
    • 避免喋喋不休
    • 輸出格式必須與可接受的輸出格式一致
    • 讓工具去做困難的部分
    • 構(gòu)建特定工具前,先想想
  • 獲取密碼

    • printf “Enter new password:”
    • stty -echo
    • read pass < /dev/tty
    • printf “Enter again:”
    • read pass2 < /dev/tty
    • stty echo
  • 在程序中執(zhí)行跟蹤:

    • set -x:打開跟蹤功能
    • set +x:關(guān)閉跟蹤功能
  • 為/home/qiuye目錄結(jié)構(gòu)建立一份副本在/home/qy下

    • find /home/qiuye -type -d -print | sed ‘s;/home/qiuye/;/home/qy/;’ | sed ‘s/^/mkdir /’ | sh -x
  • sed ‘s/Tony/Camus/2’:只替換第二次匹配到的

  • 單詞頻率過濾器

    • tr -cs A-Za-z’ ‘\n’ | tr A-Z a-z | sort | uniq -c | sort -k1,1nr -k2 | head 25
  • tcpdump tcp port 80 -s 0 -w net_stat.pcap

歡迎訪問我的網(wǎng)站:

BruceOu的嗶哩嗶哩
BruceOu的主頁
BruceOu的博客
CSDN博客

接收更多精彩文章及資源推送,請訂閱我的微信公眾號:

總結(jié)

以上是生活随笔為你收集整理的《求职》第四部分 - 操作系统篇 - Linux基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。