壓縮解壓縮
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的嵐皋網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
壓縮格式:gz bz2 xz zip z
壓縮算法,算法不同,壓縮比也不同
compress: filename.Z
uncompress:
不能壓縮文件夾,會(huì)將文件夾內(nèi)的文件單個(gè)壓縮
gzip: .gz
gzip filename 壓縮完成后刪除源文件
gzip -d 等于 gunzip
-#: 1-9 指定壓縮比 默認(rèn)為6
gunzip:
gunzip filename
zcat 臨時(shí)查看壓縮的文本文件不解壓
bzip2: .bz2
比gzip 有更大的壓縮比
使用格式相同
bzip2 filename
-d -# 都有
-k 可以保留源文件
bunzip2 :同理解壓
bzcat :
xz: .xz 同上
unxz 解壓
xzcat
xzdec 解壓
zip: zip 壓縮后的文件名 壓縮的路徑
可以壓縮文件夾,壓縮后不刪除源文件
archive:歸檔 歸檔本身不意味著壓縮
unzip :解壓
tar:歸檔工具
-c:創(chuàng)建歸檔
-f file.tar :操作的歸檔文件
-x :展開歸檔
--xattrs 歸檔同時(shí)保留其擴(kuò)展屬性信息
-t: 不展開歸檔查看內(nèi)部文件
-zxf:解壓歸檔 調(diào)用gzip
-zcf:壓縮歸檔 調(diào)用gzip
-jcf 調(diào)用bzip2
-jxf
-Jcf 調(diào)用xz
-Jxf
-z -j -J 在解壓時(shí)可以省略,壓縮時(shí)不可以
cpio:歸檔工具
read:
-p 給出提示
-t 超時(shí)時(shí)間
while 循環(huán):
適用于循環(huán)的次數(shù)未知的場(chǎng)景,要有退出條件
語(yǔ)法:
while 條件 ;do
運(yùn)行命令
done
使用顏色控制字體
echo -e \033[x;y;zm顯示文字\033[
x 字體
y 前景色
z 背景色
64,32
/lib
/lib32
IDE 133Mbps 并行
SATA 300M 600M 6G 串行
USB 3 480M串行
SCSI SMALL COMPUTER SYSTEM INTERFACE 320M 并行總結(jié)
SAS 2.5英寸 串行
RAID:
級(jí)別,僅代表磁盤組織方式不同,沒(méi)有上下之分
條帶:0
性能提升,讀寫
冗余能力沒(méi)有
空間利用 n
至少2塊
鏡像:1
寫性能下降,讀性能上升
有冗余能力
空間利用 n/2
至少2塊
效驗(yàn)碼:4 盤1,盤2,盤3 盤6,壞一塊(1-3)都可以用盤6來(lái)-去好的
輪流校驗(yàn)碼 :5 輪流校驗(yàn)碼存儲(chǔ)位置
讀寫都提升
有冗余能力
空間利用 (n-1)/n
至少3塊
1+0:先條帶再鏡像
至少4塊
0+1:先鏡像再條帶
至少4塊
JOBD:簡(jiǎn)單增加多塊硬盤
無(wú)性能提升
無(wú)冗余能力
空間利用n
至少2塊
MD multi dsiks 模擬一個(gè)RAID
邏輯RAID
/dev/md#
mdadm:任何塊設(shè)備做成RAID
模式化命令
創(chuàng)建模式
-C
專用選項(xiàng):
-l:級(jí)別
-n:設(shè)備個(gè)數(shù)
-a:yes/no 自動(dòng)創(chuàng)建設(shè)備文件
-c:指定數(shù)據(jù)塊chunk大小 默認(rèn)64KB
-x:指定空間盤個(gè)數(shù)
管理模式
--add,--remove,--fail
監(jiān)控模式
-F
增長(zhǎng)模式
-G
裝配模式
-A
-D --detail 查看RAID 的詳細(xì)信息
停止整列
-S --stop
將當(dāng)前RAID 信息保存至配置文件
mdadm -D --scan > /etc/mdadm.conf
以后裝配就用 mdadm -A /dev/md#
watch 周期性地執(zhí)行指定命令,并以全屏方式顯示結(jié)果
-n 指定周期長(zhǎng)度,默認(rèn)單位為秒,默認(rèn)2秒
watch -n '命令'
lsmod 列出內(nèi)核模塊
mdadm 用戶空間工具
MD:MULTI DEVICE 多設(shè)備
DM:device mapper 設(shè)備映射
邏輯設(shè)備
lvm2
快照
多路徑
vgcreate vgname 設(shè)備
-s : pe 的大小,默認(rèn)為4mb
lvcreate -n lv name -L 空間大小 vg name
擴(kuò)展邏輯卷
lvextend
-L 大小 邏輯卷
resize2fs
resize2fs2fs 邏輯卷 擴(kuò)展到大小
-p 與物理邊界一樣大小
縮減邏輯卷
resize2fs 邏輯卷 縮減到大小
不能在線縮減,先要卸載
確保縮減后的空間大小依然能存儲(chǔ)原有數(shù)據(jù)
在縮減之前應(yīng)先強(qiáng)直檢查文件,以確保文件系統(tǒng)一致性狀態(tài)
lvreduce -L 大小 邏輯卷
再掛載
快照卷
生命周期為整個(gè)數(shù)據(jù)時(shí)長(zhǎng),這段時(shí)間內(nèi),數(shù)據(jù)的增長(zhǎng)不能超出快照卷大小
快照卷只讀
跟原卷在同一卷組內(nèi)
lvcreate
-s 快照卷
-p r|w 權(quán)限
lvcreate -s -L 大小 -n 邏輯卷名 -p r /路徑
until = !while
until who | grep "hadoop" >> /dev/null ;do
sleep 5
done
echo "hadoop is logged in"
for ((變量賦值;變量范圍;變量變化)); do
循環(huán)操作
done
ping
-c 次數(shù)
-w 超時(shí)時(shí)間
awk 條件 {動(dòng)作}
df -h | awk '{print $1}' awk -F 分隔符 '{print $字段序號(hào)}'
$NF是最后一個(gè)字段 ,NF是字段個(gè)數(shù)
-F 后跟分隔符匹配
CSMA/CD carrier sense multi access colision detection
載波偵聽(tīng)多路訪問(wèn)沖突檢測(cè)
socket 套接字 ip與port 綁定
三次握手 四次斷開 tcp 有限狀態(tài)集
A 三次握手建立TCP連接 B
1.發(fā)送 SYN=1,SN=100
2.接受 SYN=1,ACK=1,AN=101,SN=300
3.發(fā)送 ACK=1,SN=101,AN=301
A 四次斷開TCP連接 B
1.發(fā)送 FIN=1,
2.
3.
4.CLOSED
主機(jī)接入網(wǎng)絡(luò)
ip
mask
gateway
hostname
DNS
route
dhcp:dynamie host configuration protocol
169.254.x.x 自動(dòng)地址
linux 網(wǎng)絡(luò)屬于內(nèi)核功能
lo:本地回環(huán)
eth{0-9}:以太網(wǎng)卡
ppp{0-9}:點(diǎn)對(duì)點(diǎn)
5.8 /etc/modprobe.conf
alias
6.0 /etc/udev/rules.d/70-persistent-net.rules
ifconfig
-a 顯示所有接口的配置信息
ifconfig eth{0-9} ip/mask up|down
配置立即生效,但重啟后失效
網(wǎng)絡(luò)服務(wù):
5.8/etc/init.d/network start|stop|restart|status
6 /etc/init.d/networkmanager 同上
網(wǎng)關(guān)
route
add 添加
-host 主機(jī)
-net 網(wǎng)絡(luò)
-net 0.0.0.0 默認(rèn)路由
route add -net 網(wǎng)絡(luò) gw 下一跳地址
route add -net default gw 下一條地址
del 刪除
同上
route del -net 0.0.0.0
route -n 以數(shù)字方式顯示主機(jī)信息
網(wǎng)絡(luò)配置文件
/etc/sysconfig/network
網(wǎng)卡配置文件
/etc/sysconfig/network-scripts/icfg-eth{0-9}
DEVICE=關(guān)聯(lián)的設(shè)備名稱,要與文件名的后半部保持一致
BOOTPROTO={static|none|dchp|bootp}:引導(dǎo)協(xié)議,
靜態(tài) 動(dòng)態(tài)
IPADDR IP地址
NETMASK 子網(wǎng)掩碼
GATEWAY 網(wǎng)關(guān)
ONBOOT 自動(dòng)啟用
HWADDR mac地址與硬件一致
USERCTL {YES|NO} 是否允許普通用戶控制接口
PEERDNS {YES|NO} 是否接受DHCP中DNS的配置信息
不會(huì)立即生效,保證永久有效
路由配置文件
/etc/sysconfig/network-scripts/route-eth{0-9}
添加格式
格式,1
DEST via NEXTHOP
格式,2
ADDRESS0=
NETMASK0=
GATEWAY0=
ADDRESS1=
NETMASK1=
GATEWAY1=
DNS服務(wù)器指定 最多3個(gè)
/etc/resolv.conf
nameserver ip
本地地址解析
/etc/hosts
主機(jī)IP 主機(jī)名稱 主機(jī)別名
配置主機(jī)名
hostname 名字
立即生效,重啟失效
/etc/sysconfig/network
HOSTNAME=
永久有效
使用setup 設(shè)置效果一樣,需要重啟
ifconfig 老舊命令
iproute2
ip
link:配置網(wǎng)卡屬性
ip -s link show 限時(shí)統(tǒng)計(jì)信息
ip link set 設(shè)備 狀態(tài)
addr:協(xié)議地址
ip addr add 地址 dev 設(shè)備
ip addr del 地址 dev 設(shè)備
ip addr show
route:路由
tc 流量控制
一個(gè)網(wǎng)卡多個(gè)地址
網(wǎng)絡(luò)設(shè)備可以別名
別名不能使用DHCP
ifconfig eth0:0
/etc/sysconfig/network-scripts/icfg-eth{0-9}:{0-9}
DEVICE=eth{0-9}{0-9}
程序組成
二進(jìn)制文件 /bin,/sbin
庫(kù) /lib
配置文件/etc
幫助文件/usr/share/man
/etc,/bin,/sbin,/lib
都是系統(tǒng)啟動(dòng)需要用到的目錄程序,不能單獨(dú)掛載額外分區(qū)
必須在根分區(qū)上
/usr/
/bin
/sbin
/lib
操作系統(tǒng)的核心功能
可以單獨(dú)分區(qū)
/usr/local
/bin
/sbin
/lib
/etc
/man
用戶使用的第三方軟件
/opt
早期第三方軟件安裝位置
/proc
/sys
不能單獨(dú)分區(qū),內(nèi)核自我管理
/dev
設(shè)備,也不能單獨(dú)分區(qū)
udev
/home 用戶數(shù)據(jù)目錄
推薦單獨(dú)分區(qū)
/root 管理員家目錄,么必要單獨(dú)分區(qū)
/var 有了他系統(tǒng)管理更加規(guī)范
日志信息,和運(yùn)行信息,推薦單獨(dú)分區(qū),日積月累越來(lái)越大
/boot :內(nèi)核 initrd {initramfs} 只要能被找到就行,推薦單獨(dú)分區(qū)
POST ---BIOS ----MBR (BOOTLOADER)--- 找到磁盤上的內(nèi)核 ---- 找根的位置
軟件包安裝器
打包成一個(gè)文件:二進(jìn)制文件,庫(kù)文件,配置文件,幫助文件
生成數(shù)據(jù)庫(kù):追蹤所安裝的每一個(gè)軟件
1,制作軟件包
2,安裝卸載升級(jí)查詢校驗(yàn)
redhat suse :rpm
redhat package manager
rpm is package manager
redhat和suse 不能混用
debian :dpt
依賴關(guān)系:
前端工具:yum,apt-get
后端工具:rpm,dpt
yum:yellowdog update modifier
rpm 命令:
rpm:
/var/lib/rpm
rpmbulid:
安裝,卸載,升級(jí),查詢,校驗(yàn),數(shù)據(jù)庫(kù)重建,驗(yàn)證數(shù)據(jù)包,
rpm命名:
包組成:
主包:
bind-版本
子包:
bind-libs
bind-utils
包名
包名格式:
名稱-版本-發(fā)行號(hào).架構(gòu).平臺(tái).rpm
bind-major.minor.release-release.arch.rpm
第一個(gè)release是發(fā)行號(hào),第二個(gè)release是rpm包制作者修訂用
主版本號(hào):重大改進(jìn)
次版本號(hào):某個(gè)子功能發(fā)生重大變化
發(fā)行號(hào):修改了部分bug,調(diào)整了一些功能
noarch 沒(méi)有針對(duì)版本
umame -a 查看內(nèi)核版本
rpm包:
二進(jìn)制格式:直接使用,多數(shù)使用
源碼格式:需要編譯
rpm :
1,安裝:
rpm -i 路徑/文件名
-h 已#顯示安裝進(jìn)讀,50個(gè)#,每個(gè)2%
-v 詳細(xì)過(guò)程
-vv 更詳細(xì)
rpm -ivh 常用
--nodeps:忽略依賴關(guān)系,可以安裝但是無(wú)法正常使用
--replacepkgs:重新安裝,替換原有安裝
--force:重裝,覆蓋,降級(jí) 強(qiáng)行安裝
--test 測(cè)試安裝
2,查詢:
rpm -q 包名 : 查詢指定包
-qa: 查詢所有已經(jīng)安裝的包
-qi: 查詢指定包的說(shuō)明信息
-ql:查詢指定包安裝后生成的文件列表
-qc:查詢指定包的配置文件
-qd:查詢指定包的安裝幫助文件
-qf 查詢指定文件是由那個(gè)rpm包安裝生成的
-q --scripts 查詢指定包中的腳本
如果某RPM未安裝,希望查詢
-qpi
-qpa
同上
3,升級(jí):
rpm -Uvh 如果有老版本的則升級(jí),否則安裝
-Fvh 如果有老版本的則升級(jí),否則退出
rpm -Uvh --oldpackage 包名 降級(jí)安裝包
4,卸載
rpm -e 包名
--nodeps
5,校驗(yàn)
rpm -V 包名
6,重建數(shù)據(jù)庫(kù)
rpm
--rebuliddb 重建數(shù)據(jù)庫(kù),一定會(huì)重建
--initdb 初始化數(shù)據(jù)庫(kù),沒(méi)有才建立,有就不建建立
7,校驗(yàn)來(lái)源合法性,及軟件完整性
ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-release
rpm -K 包名
dsa,gpg 驗(yàn)證來(lái)源合法性
sha1,md5 驗(yàn)證軟件包的完整性
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
導(dǎo)入redhat的秘鑰
HTMLHYPERTEXT MARK LANGUAGGE
XML EXTENDED MARK LANGUAGGE
XML,JSON 半結(jié)構(gòu)化數(shù)據(jù)
yum倉(cāng)庫(kù)中的元數(shù)據(jù)文件
primary.xml.gz
所有rpm包的列表:
依賴關(guān)系
每個(gè)rpm生成的文件列表
filelist.xml.gz
當(dāng)前倉(cāng)庫(kù)RPM包的所有文件列表
other.xml.gz
額外信息,rpm修改日志
repomd.xml
記錄以上上個(gè)文件的時(shí)間戳和校驗(yàn)和
comps 開頭的.xml
rpm包的分組信息
為yum定義repo /etc/yum.repos.d/ 以.repo結(jié)尾的文件
[標(biāo)示ID]
name= 名稱
baseurl= 倉(cāng)庫(kù)路徑
ftp://
http://
file:///
enable= 是否可用
gpgcheck= 檢查簽名完整性
gpgkey= 檢查的秘鑰位置
yum
list:列表
all 全部
available 可用
installed 已裝
updates 可用更新
clean:清理緩存
repolist:顯示repoe列表
install:
-y 自動(dòng)回復(fù)yes
--nogpgcheck 無(wú)檢查完整性
update:
升級(jí)到最新版本
update to:
升級(jí)到指定版本
remove|erase:
卸載
info :信息
provides:
查看指定文件或特性是那個(gè)yum安裝的
groupinstall:
grouplist
groupinfo
createrepo 手動(dòng)建立yum倉(cāng)庫(kù)時(shí)需要使用
在指定目錄中建立repodata
還需要復(fù)制 XML文件
rpm 安裝
二進(jìn)制格式
源程序---編譯----二進(jìn)制格式
有些特性是編譯選定的,如果編譯未選定此特性,將無(wú)法使用
rpm包的版本落后于源碼包,甚至落后很多
定制:手動(dòng)編譯安裝
編譯環(huán)境,開發(fā)環(huán)境
開發(fā)庫(kù),開發(fā)工具
linux :c
gun :c
C環(huán)境,c++,
gcc:編譯器
g++:
make:項(xiàng)目管理工具
makefile:定義了make (gcc,g++) 按何種次序去編譯源文件的程序
automake,創(chuàng)建---makefile.in
autoconf,創(chuàng)建---configure
以上兩者結(jié)合成makefile
make install
perl+java,python
編譯安裝三步驟
前提:準(zhǔn)備開發(fā)環(huán)境{編譯環(huán)境}
安裝 Development Tools 和 development libraries
先用tar 解壓二進(jìn)制程序包
cd
./configure (讓用戶選擇編譯特性,檢查編譯環(huán)境)
使用 configure --help 查看選項(xiàng)
使用 configure --prefix 指定安裝目錄
--sysconfdir 指定安裝的配置目錄
在安裝目錄中用 make 確認(rèn)安裝
再輸入 make install
1,修改PATH環(huán)境變量,以能夠識(shí)別次程序的二進(jìn)制文件路徑
1.修改/etc/profile
2.或者在/etc/profile.d 目錄中 建立以.SH為名稱后綴的文件
在里面定義export PATH=$PATH:/路徑
2,默認(rèn)情況下,系統(tǒng)搜索庫(kù)文件的路徑/lib,/usr/lib,要額外添加搜索路徑
在/etc/ld.so.conf.d/中創(chuàng)建以.conf為后綴命名的文件,而后把要增添的路徑直接寫入次文件
ldconfig:重新搜索庫(kù)文件
-v:顯示重新搜索的過(guò)程
3,頭文件(庫(kù)調(diào)用的參數(shù)標(biāo)準(zhǔn)相關(guān)信息):輸出給系統(tǒng),
默認(rèn):/usr/include
添加頭文件搜索路徑,使用鏈接進(jìn)行
/usr/local/tengine/include/ /usr/include/
第一種ln -s /usr/local/tengine/include/* /usr/include/
第二種ln -s /usr/local/tengine/include/ /usr/include/tengine
4,man文件:安裝在--prefix 指定目錄下額man目錄,/usr/share/man
1,man -M man文件的路徑
2,在/etc/man.config 中添加一條manpath
netstat :網(wǎng)絡(luò)狀態(tài)命令
-r 顯示路由表 -rn 數(shù)字顯示
-t 顯示tcp連接
-u 顯示udp連接
-l 監(jiān)聽(tīng)狀態(tài)的連接
-p 監(jiān)聽(tīng)指定套接字的進(jìn)程號(hào)與進(jìn)程名
source /etc/profile 重新載入配置文件
kill 進(jìn)程號(hào) 殺死進(jìn)程
while ,until,for
break :提前退出循環(huán)結(jié)束任務(wù)
continue: 提前退出當(dāng)前循環(huán),繼續(xù)循環(huán)
while 特殊用法
while: ;do
done
無(wú)限循環(huán)
while read line; do 循環(huán)讀取 文件每一行 存入line中
done < 輸入重定向文件
函數(shù),功能, function
代碼重用:
定義函數(shù) 2種方法
1. function 函數(shù)名 {
函數(shù)體
}
2. 函數(shù)名() {
函數(shù)體
|
`` 反引號(hào),應(yīng)用程序執(zhí)行結(jié)果
執(zhí)行結(jié)果狀態(tài),看命令的最后一條運(yùn)行結(jié)果
return # 0-255 定義函數(shù)狀態(tài)返回
接受參數(shù)的函數(shù)
函數(shù)名 參數(shù)1 參數(shù)2
$1 調(diào)用參數(shù)1
$2 調(diào)用參數(shù)2
進(jìn)程管理
CPU中 MMU 內(nèi)存管理單元 MEMORY MANAGEMENT UNIT
進(jìn)程切換,上下文環(huán)境切換
rss 常駐內(nèi)存,位于物理內(nèi)存不被交換出去的
vsz 虛擬內(nèi)存大小 ,棧,堆,庫(kù),初始和為初始化數(shù)據(jù),命令
thrend 線程 由進(jìn)程拆分的多個(gè)小的組成部分, 可以節(jié)省內(nèi)存的使用空間
進(jìn)程狀態(tài)
uninterruptible 不可中斷的睡眠
interruptible 可中斷的睡眠
init: 內(nèi)核之后的第一個(gè)進(jìn)程,其他均為其子進(jìn)程
優(yōu)先級(jí) 0-139 共140個(gè)
進(jìn)程越小越高級(jí)
100-139 :用戶控制
0-99: 內(nèi)核調(diào)整
高優(yōu)先級(jí)的優(yōu)勢(shì), 1,獲得更多的CPU運(yùn)行時(shí)間
2,獲得優(yōu)先的運(yùn)行時(shí)間
每個(gè)進(jìn)程都有個(gè)
nice值:友好的,優(yōu)雅的
范圍-20到19
對(duì)應(yīng) 100到139
nice值越小優(yōu)先級(jí)越高
默認(rèn)都是0
普通用戶僅能夠調(diào)大自己進(jìn)程的nice值
管理員可以隨意調(diào)整
PID:process id
init:所有進(jìn)程的父進(jìn)程 PID 為 1
進(jìn)程的相關(guān)屬性在目錄 /proc/中對(duì)應(yīng)的進(jìn)程號(hào)
ps:process status
BSD 風(fēng)格
sysv 風(fēng)格 -
a:所有和終端有關(guān)的進(jìn)程
u:
x:所有和終端無(wú)關(guān)的進(jìn)程
-e:所有進(jìn)程
-l:
-f:
ps -o 字段 顯示指定字段
進(jìn)程的分類:
跟終端相關(guān)的進(jìn)程
跟終端無(wú)關(guān)的進(jìn)程
進(jìn)程狀態(tài):
D:不可中斷的睡眠
R:運(yùn)行或就緒
S:可中斷的睡眠
T:停止的
Z:僵尸
<:高優(yōu)先級(jí)進(jìn)程
N:低優(yōu)先級(jí)
+:前臺(tái)進(jìn)程組中的進(jìn)程
l:多線程進(jìn)程
s:會(huì)話領(lǐng)導(dǎo)者進(jìn)程
pstree:顯示進(jìn)程樹
pgrep: grep風(fēng)格
-u 用戶
pidof:根據(jù)程序名查找ID號(hào)
top:
M:根據(jù)駐留內(nèi)存大小排序
P:根據(jù)CPU使用時(shí)間排序
T:根據(jù)累計(jì)時(shí)間排序
l:顯示
t:顯示
m:顯示內(nèi)存
c:顯示完整命令
k:殺死進(jìn)程
q:退出
top -d # 顯示延遲時(shí)長(zhǎng)
-b 翻屏顯示
-n # 指定屏幕數(shù)量顯示
進(jìn)程間通信 IPC (inter process commu)
共享內(nèi)存
信號(hào):
semaphore:旗語(yǔ)
kill -l 查看信號(hào)
1:SIGHUP :讓進(jìn)程不用重啟就可以重讀配置文件,并讓新的配置信息生效
2:SIGINT :ctrl + c ,中斷進(jìn)程
9:SIGKILL :殺死一個(gè)進(jìn)程 強(qiáng)行殺死
15:SIGTERM : 終止一個(gè)進(jìn)程 完成后事后殺死 kill 默認(rèn)信號(hào)
指定一個(gè)信號(hào):
信號(hào)號(hào)碼:kill -1
信號(hào)名稱:kill -SIGKILL
信號(hào)名稱簡(jiǎn)寫 : kill -KILL 去掉SIG就行
kill pid
killall commmand 殺死有多個(gè)進(jìn)程的命令
調(diào)整已經(jīng)啟動(dòng)進(jìn)程的nice值
renice nice值 PID renice 3 16522
調(diào)整準(zhǔn)備啟動(dòng)的nice值
nice -n nice值 command nice -n 8 top
前臺(tái)作業(yè):占據(jù)了命令提示符
后臺(tái)作業(yè):啟動(dòng)之后釋放命令提示符,剩余工資在后臺(tái)完成
前臺(tái)--后臺(tái):ctrl+z ,或者在命令啟動(dòng)后在后臺(tái)執(zhí)行,最后加&
jobs:查看所有的作業(yè),作業(yè)號(hào)不同于進(jìn)程號(hào)
bg :讓后臺(tái)停止的作業(yè)繼續(xù)運(yùn)行
bg %作業(yè)號(hào) 默認(rèn)為+
+:命令將操作的作業(yè)
-:命令將第二個(gè)操作的作業(yè)
fg:將后臺(tái)調(diào)往前臺(tái)
fg %作業(yè)號(hào)
終止作業(yè)用 kill %作業(yè)號(hào)
vmstat 系統(tǒng)狀態(tài)查看命令
vmstat 間隔 次數(shù) vmstat 1 5
uptime
/proc/meninfo 文件 內(nèi)存信息
post----bios(boot disk select )----mbr(bootloader 446k)-----kernel---initrd-----rootfs/sbin/init(/etc/inittab)
啟動(dòng)的服務(wù)不同:
運(yùn)行級(jí)別:0-6
0:halt
1:單用戶 single user mode 直接登錄管理員模式 1,S,s,single都可以
2:多用戶 multi usermode ,no NFS 不掛在
3:多用戶 multi usermode ,test 模式命令行
4:reserved 未定義,保留級(jí)別
5:多用戶 multi usermode ,圖形模式
6:reboot
redhat,suse
核心:動(dòng)態(tài)加載,內(nèi)核模塊
內(nèi)核:/lib/modules/內(nèi)核版本號(hào)命名的目錄
vmlinux-2.6.32
/lib/modules/2.6.32
內(nèi)核設(shè)計(jì)風(fēng)格:
單內(nèi)核:linux LWP 輕量級(jí)進(jìn)程
核心:ko kernel object
微內(nèi)核:windows,solaris 線程
chroot 虛根的目錄
ldd /bin/bash 查看二進(jìn)制文件的共享庫(kù)
tree
ramdisk---initrd
ramfs---initramfs
詳解啟動(dòng)過(guò)程:
bootloader
LILO: linux bootloader
grub:grand unified bootloader
stage1:MBR
stage1_5: 引導(dǎo)文件系統(tǒng)
stage2:/boot/grub
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=0 設(shè)置默認(rèn)啟動(dòng)的title編號(hào),從0開始
timeout=5 等待的超時(shí)時(shí)長(zhǎng)
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz 指定背景圖片
hiddenmenu 隱藏菜單
password 明文密碼
password --md5 加密密碼 (使用grub-md5-crypt 生成)
title Red Hat Enterprise Linux Server (2.6.18-308.el5) 內(nèi)核標(biāo)題,可以自由修改
root (hd0,0) 內(nèi)核文件所在的設(shè)備,,gurb中所有設(shè)備都是(hd#,@) #表示第幾個(gè)磁盤,@表示第幾個(gè)分區(qū)
kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/ rhgb quiet 內(nèi)核路徑和傳遞給內(nèi)核的參數(shù)
initrd /initrd-2.6.18-308.el5.imgramdisk 文件路徑
gimp 圖像編輯軟件
查看運(yùn)行級(jí)別
runlevel
who -r
查看內(nèi)核:
uname -r
uname -a
安裝修復(fù) grub
安裝 grub stage 1
方式1,
grub
root (hd0,0) 設(shè)置
setup (hd0,0)
quit
方法2,
grub-install --root-directory=/(boot所在的父母目錄) /device指定設(shè)備
grub 下啟動(dòng)系統(tǒng)
find 查找 內(nèi)核和initrd文件位置
root (hd0,0)
kernel
initrd
kernel 初始化過(guò)程
1.設(shè)備探測(cè)
2.驅(qū)動(dòng)初始化(可能從initrd中狀態(tài)驅(qū)動(dòng)模塊)
3.以只讀文件掛載文件系統(tǒng)
4.狀態(tài)第一個(gè)進(jìn)程init (pid:1)
/sbin/init (/etc/inittab)
upstart :ubuntu開發(fā) d bus events dirver
systemd :
id標(biāo)示符:那個(gè)運(yùn)行級(jí)別:動(dòng)作:運(yùn)行的進(jìn)程
si::sysinit:/etc/rc.d/rc.sysinit
動(dòng)作:
initdefault:設(shè)定默認(rèn)級(jí)別
sysinit:系統(tǒng)初始化
wait:等待切換至此級(jí)別
respawn:一旦程序終止,會(huì)重新重啟
/etc/rc.d/rc.sysinit 完成的任務(wù)
1.激活udev和selinux
2.根據(jù)/etc/syscti.conf 設(shè)定內(nèi)核參數(shù)
3.設(shè)定系統(tǒng)時(shí)鐘
4.裝載鍵盤映射
5.啟用交換分區(qū)
6.設(shè)置主機(jī)名
7.根文件系統(tǒng)檢測(cè),并以讀寫方式掛載
8.激活raid 和 lvm 設(shè)備
9.啟用磁盤配額
10.檢查并掛載其他文件系統(tǒng),/etc/fstab
11.清理過(guò)期的鎖和pid文件
l0:0:wait:/etc/rc.d/rc.sysinit
rc0.d
k*
stop
s*
start
/etc/rc.d/init.d etc/init.d
服務(wù)類腳本:
start
sysv : /etc/rc.d/init.d
start|stop|restart|status
reload|configtest
chkconfig
checkconfig: 第一組數(shù)字,啟動(dòng)級(jí)別. 第二組SS啟動(dòng)順序. 第三組KK關(guān)閉順序
當(dāng)chkconfig命令為腳本在rc#.d目錄中創(chuàng)建鏈接時(shí)
runlevel s表示創(chuàng)建S*開頭的文件
k表示創(chuàng)建K*開頭的文件
S后面的數(shù)字表示優(yōu)先級(jí)為SS
K后面的數(shù)字表示優(yōu)先級(jí)為KK
runlevel 是- 表示所有都是K開頭的鏈接
renlevel 可以省略,默認(rèn)為2345級(jí)別
description:用戶說(shuō)明此腳本的簡(jiǎn)單功能, \換行
chkconfig --list 查看所有獨(dú)立守護(hù)服務(wù)的設(shè)定,獨(dú)立守護(hù)進(jìn)程
--list 服務(wù)名 查看指定服務(wù)名
--add 服務(wù)名 添加到服務(wù)列表中
--del 服務(wù)名 刪除
--level 級(jí)別 服務(wù)名 on|off
chkconfig --list httpd
chkconfig --level 2345 httpd on
/etc/rc.d/rc.local 系統(tǒng)最后啟動(dòng)的腳本
可以把需要的命令寫入讓其運(yùn)行
/etc/inittab 任務(wù):
1.設(shè)定默認(rèn)運(yùn)行級(jí)別
2.運(yùn)行系統(tǒng)初始化腳本
3.運(yùn)行對(duì)應(yīng)的指定對(duì)應(yīng)級(jí)別下額目錄腳本
4.設(shè)定 ctrl+alt+del 的操作
5.定義ups電源
6.啟動(dòng)虛擬終端(2345)
7.啟動(dòng)圖形終端(5)
守護(hù)進(jìn)程額類型
獨(dú)立守護(hù)進(jìn)程
xinetd:超級(jí)守護(hù)進(jìn)程,代理人
瞬時(shí)守護(hù)進(jìn)程:不需要關(guān)聯(lián)至運(yùn)行級(jí)別
大商場(chǎng)和專賣店
核心 :/boot/vm開頭
內(nèi)核模塊:ko /lib/modules/version/
內(nèi)核設(shè)計(jì):
單內(nèi)核
模塊化設(shè)計(jì)
微內(nèi)核
裝載模塊:
insmod
modprobe
用戶監(jiān)控和訪問(wèn)內(nèi)核的方式
/proc /sys
偽文件系統(tǒng)
/proc/sys:此目錄中文件很多是可讀寫的
/sys :某些也可以寫
設(shè)定內(nèi)核參數(shù)的方法
echo 數(shù)值 > 重定向 /proc/sys/文件
sysctl -w kernel.hostname=
能立即生效,不能永久有效
永久有效,但不能立即生效,/etc/sysctl.conf
使用 sysctl -p 使內(nèi)核在修改后生效
sysctl -a 顯示所有內(nèi)核參數(shù)選項(xiàng)
內(nèi)核模塊管理
lsmod 列出內(nèi)核模塊
modprobe 模塊名 裝載模塊
modprobe -r 模塊名 卸載模塊名
modinfo 模塊名 查看模塊具體信息
insmod 模塊路徑 裝載模塊
rmmod 模塊名 卸載模塊
depmod 模塊路徑 設(shè)置模塊的目錄
內(nèi)核中的功能除了核心功能之外,在編譯時(shí),大多數(shù)功能都有三種選擇
1,不使用功能
2,編譯成內(nèi)核模塊
3,編譯進(jìn)內(nèi)核
如何手動(dòng)編譯內(nèi)核
make gconfig:ghome 桌面環(huán)境使用,需要安裝圖形開發(fā)庫(kù) yum grouplist 安裝
make kconfig:kde 桌面使用
make menuconfig 文本方式
make
make modules_install
make install
screen命令
screen -ls 列出已經(jīng)建立的會(huì)話
screen 新建屏幕
screen -r ID 可以還原屏幕
ctrl+a,d 拆除屏幕
exit 退出
二次編譯時(shí)清理,清理前,如果需要,請(qǐng)備份配置文件.config
make clean
make mrproper
mkinitrd initrd文件路徑 內(nèi)核版本號(hào)
mkinitrd /boot/initrd-`uname -r`.img `umane -r`
file=/etc/init.d/acpid
echo ${file##*/} 從左向右最后一次匹配 / 刪除
acpid
echo ${file#*.} 從左向右第一次匹配 . 刪除
d/acpid
echo ${file##*/*/}
acpid
echo ${file%.*} 從右向左 第一次匹配 . 刪除
/etc/init
echo ${file%%/*} 從右向左 最后一次匹配 / 刪除
空
系統(tǒng)啟動(dòng)流程
post---bios(boot device)---bootloader(mbr)---
kernel(initrd|initramfs)---init(/etc/inittab|)-----rootfs/sbin/init
/etc/inittab
設(shè)置默認(rèn)運(yùn)行級(jí)別
系統(tǒng)初始化 /etc/rc.d/rc.sysinit
運(yùn)行指定級(jí)別的腳本
/etc/rc.d/init.d
/etc/rc.d/rc#.d
k
s
00-99:運(yùn)行次數(shù)
啟動(dòng)虛擬終端
啟動(dòng)圖形終端
/etc/rc.d/rc.sysinit
檢測(cè)并以讀寫方式掛載根文件系統(tǒng)
設(shè)定主機(jī)名
檢測(cè)并掛載fstab中的文件系統(tǒng)
啟動(dòng)SWAP分區(qū)
初始化外圍硬件的設(shè)備驅(qū)動(dòng)
根據(jù)/etc/sysctl.conf 設(shè)定內(nèi)核參數(shù)
激活udv和selinux
激活udev和selinux
清理過(guò)期的鎖和pid文件
狀態(tài)鍵映射
RELE 6
UPSTART --init
/etc/inittab
/etc/init/*.conf
內(nèi)核初始化
硬件探測(cè)
裝載驅(qū)動(dòng)
掛載根文件系統(tǒng)
啟動(dòng)用戶空間的第一進(jìn)程init
1,關(guān)機(jī)和重啟
shuntdown
halt
reboot
poweroff
2,主機(jī)名
3,運(yùn)行對(duì)應(yīng)的服務(wù)腳本
4,啟動(dòng)終端
5,運(yùn)行用戶
6,定義單用戶級(jí)別
7,狀態(tài)網(wǎng)卡驅(qū)動(dòng)
8,提供一個(gè)WEB服務(wù)器
busybox
kernel
制定安裝
自動(dòng)化安裝
定制引導(dǎo)盤
mount -n 掛載時(shí)不更新/etc/mtab文件
cat /proc/mounts 可以查看當(dāng)前系統(tǒng)掛載的fs
mingetty 創(chuàng)建終端登錄 運(yùn)行后會(huì)調(diào)用 /bin/longin 登錄提示符
腳本編程
變量中字符的長(zhǎng)度,$(#變量名)
終端提示信息
/etc/issue 文件的內(nèi)容
設(shè)定內(nèi)核參數(shù)
/etc/sysctl.conf
sysctl -p
用戶
PAM
/etc/pan.d/*
繞過(guò)PAM:
/bin/login:
login:驗(yàn)證
nsswitch NETWORK SERVICE SWITCH
名稱解析開關(guān)
框架:
庫(kù):libnss_file.so,
配置文件:/etc/nsswitch.conf
確定了去×××用戶密碼
/etc/passwd /etc/shandow
/root/.bash_profile 中的環(huán)境變量
PS1= '[ \u @ \h \W]\$'
單用戶模式
exec init S
內(nèi)核編譯
busybox
kernel+rootfs
kernel+initrd(busybox)+rootfs(busybox)
查看本機(jī)硬件信息
1. cat /proc/cpuinfo
2. lsusb
3. lspci
4. hal-device
內(nèi)核配置
make menuconfig
make gconfig
make kconfig
make config
報(bào)錯(cuò)為.config 文件
make
make modules install
make install
模塊安裝位置,/lib/modules/內(nèi)核版本號(hào)/
部分編譯
1,只編譯某子目錄下的相關(guān)代碼:
make dir/
make arch/
make drivers/net/
2,只編譯部分模塊
make M=drivers/net/
3,只編譯某一模塊
make /drivers/net/pcnet32.ko
4,將編譯完成的結(jié)果放置別的目錄
make O=/tmp/kernel
如何編譯busybox:
交叉編譯
make arch=平臺(tái)格式
$ {變量:-對(duì)應(yīng)值} 如果變量為空或者未定義,則變量展開為"對(duì)應(yīng)值",否則,展開為變量的值
$ {變量:+對(duì)應(yīng)值} 如果
文章題目:Linux學(xué)習(xí)筆記二
標(biāo)題來(lái)源:http://sd-ha.com/article12/jgipdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、App開發(fā)、定制開發(fā)、網(wǎng)站營(yíng)銷、網(wǎng)站策劃、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)