內核的引導(BIOS? OS Read /boot 內核文件) - 運行init(所有進程的父進程? /etc/inittab? window服務 Linux守護進程Daemon,不同的應用場景不同運行級別)
-? 系統初始化(激活交換分區/檢查磁盤/加載硬件模塊以及其他需要優先執行的任務 /etc/init.d) - 建立終端? - 用戶登錄系統? ? (命令行登錄 ssh登錄 圖形界面登錄)
關機流程:
sysnc > shutdown > reboot > halt
內存數據同步到硬盤 > 關機 > 重啟 > 關閉系統
bin:Binary 常用的命令瀏覽
boot:啟動linux的核心文件
dev:linux外部設備 linux訪問設備與訪問文件方式相同
etc:所有的系統管理所需配置文件和子目錄
home:每個用戶都有一個自己的目錄,以用戶的賬戶命名
lib:基本的動態鏈接共享庫,Windows DLL
mnt:臨時掛載別的文件系統
opt:額外安裝軟件目錄 oracle數據庫
proc:系統內存的映射,訪問該目錄獲取系統信息,該目錄內容存在于內存中
root:系統管理員的用戶主目錄
sbin:super user 系統管理程序
selinux:安全機制? windows的防火墻 存放selinux的相關文件的
srv:服務啟動后需要提取的數據
sys:新的文件系統sysfs? sysfs文件系統,針對進程信息的proc文件系統,針對設備的devfs的文件系統以及針對偽終端的devpts文件系統
tmp:臨時文件
usr:user software resource 用戶很多應用程序和文件都在此目錄下,類似windows下的program files
usr/bin:系統用戶使用的應用程序
usr/sbin:超級用戶使用的比較高級管理程序和系統守護程序
usr/src:內核源代碼默認的放置目錄
var:習慣性修改的目錄放在此 如日志目錄
文件基本屬性:
多用戶系統,不同用戶不同地位不同權限
d 目錄 - 文件? l 鏈接文檔 b 接口設備 c 串行端口(鍵盤鼠標)
rwx? read write? execute? 文件類型-文件所有者 權限-所有者的同組用戶 權限-其他用戶 權限
chgrp 更改文件屬組? -R 遞歸更改
chown 更改文件屬性 更改文件屬組 -R 遞歸更改
chmod 更改文件9個屬性? 4+2+1 4+2+1 4+2+1? user group? other
絕對路徑 /
相對路徑 ../
ls
-a 全部文件? 隱藏文件
-d 列出目錄本身,不是列出目錄內的文件數據
-l 長數據串列出
cd? change directory
cd ~ 回到自己的home目錄
pwd print working dirctory
mkdir
-m? 配置文件的權限 不許要默認權限
-p 將所需要的目錄遞回創建
rmdir 刪除空目錄? rm可以刪除非空目錄
-p 將關聯目錄遞回創建(上一級空目錄)
cp? 拷貝文件和目錄
-a? -pdr
-p 文件屬性一起復制,備份常用
-d 若來源檔為link,則復制連接檔屬性而非文件本身 常用
-r 遞歸持續復制 目錄的復制? 常用
-f? force? 強制目標文件存在但無法開啟 移除后再嘗試一次
rm? 可刪除非空目錄
-r? 遞歸刪除
-f? force 忽略不存在的文件,不會出現告警信息
-i 互動模式 詢問使用者動作
mv 移動文件與目錄? 或 修改文件名稱
-f? force? 目標文件已經存在,不詢問直接覆蓋
-i 目標文件存在,詢問
Linux文件內容查看
cat 第一行開始顯示文件內容? -b 行號,空白行無行號? ? -n? 行號,空白行也有行號? -V 列出看不出來的特殊字符
tac 最后一行開始顯示 tac-cat
nl? 顯示的時候 輸出行號 -b 行號指定方式 a 列空行 t 不列空行? -n 行號表示方法
more? 一頁一頁的顯示文件內容 空白建space-下翻頁;Enter 下翻行;/字串? 下尋字串; :f 檔名及當前顯示的行數;q 離開;b 回翻頁
less? 與more類似,可以往前翻頁 【PageDown】下翻頁 【PageUp】上翻頁; /字串? 下尋字串; ?字串? 上尋字串; n 重復前一個搜尋;N 反向重復前一個搜尋; q? 離開
head 默認只看頭10行? -n
tail 默認只看尾巴10行 -n
Linux用戶和用戶組管理
用戶帳號的添加/刪除/修改
用戶口令的管理
用戶組的管理
useradd -d 指定主目錄 -m ; -c comment;-g 用戶組 ; -G? 附加組 /etc/passwd /etc/shadow? /etc/group? userconf 用戶帳號同一管理
userdel 用戶帳號刪除
usermod? 帳號修改
passwd 用戶口令管理? 用戶帳號剛創建時沒有口令。被系統鎖定,無法使用,指定口令后才有用。 -l 鎖定口令,禁用帳號 -u 口令解鎖 -d 帳號無口令
groupadd? 用戶組添加
groupdel? 用戶組刪除
groupmod? 用戶組修改
/etc/passwd 用戶的基本屬性,每個用戶在文件中有一個對應的記錄行
用戶標識號 0-65535? 0是超級用戶root的標識號,1-99由系統保留 作為管理帳號? 普通用戶標識號 100 - 500
偽用戶 psuedo users 這類用戶在文件中也占用一條記錄,但是不能登錄,登錄shell為空,為方便系統管理而存在,滿足相應的系統進程對文件屬主的要求。
偽用戶含義: bin 擁有可執行的用戶命令文件? sys擁有系統文件? adm 擁有賬戶文件? uucp? UUCP使用? nobody NFS使用
/etc/shadow 保存加密后的口令字 超級用戶才擁有該文件讀權限,其記錄行與/etc/passwd 一一對應
登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
/etc/group? 每個用戶都有所屬組 一組可以多用戶,一用戶可以多組
添加批量用戶
Linux磁盤管理:
df:列出文件系統的整體磁盤使用量
du:檢查磁盤空間使用量
fdisk:用于磁盤分區
磁盤格式化:磁盤分隔完畢后進行文件系統的格式化,mkfs? make filesystem? ? -t? ext3? ext2? vfat
fsck? file system check
mount 磁盤掛載 umount 卸載
vi
一般模式 編輯模式? 指令列命令模式? [Esc]
yy p dd x
i a o r
:w :w!? :q? :q!? :wq? ZZ? :!Command? :set nu? :set nonu
yum 軟件包管理器
yum? check-update \ update \ install packagename \ update packagename \ remove packagename \
清除緩存命令: clean packages; clean headers
Linux命令大全-文件管理
熟悉的:
cat chgrp chmod chown less more mv rm touch cp scp
非常重要的:
find
不熟悉的:
chattr cksum cmp diff diffstat file find git gitview indent cut ln locate lsattr mattrib
mc mdel mdir mktemp mmove mread mren mtools mtoolstest od paste patch rcp slocate split
tee tmpwatch umask which whereis mcopy mshowfat rhmask awk
linux命令大全:文檔編輯
熟悉的:
重要的:
grep fold ex look sed sort uniq wc
不熟悉的:
col colrm? comm? csplit ed? egrep ex fgrep fmt fold grep ispell
jed joe join mtype pico rgrep sed spell tr expr uniq wc
磁盤管理:m- MS-DOS 目錄
熟悉的:
cd du mkdir pwd mount rmdir stat tree umount ls
重要的:
cd du mkdir pwd mount rmdir stat tree umount ls
不熟悉的:
df dirs edquota eject mcd mdeltree mdu mlabel mmd
mrd mzip quota mmount rmt quotacheck quotaoff Indir repquota quotaon
磁盤維護:
熟悉的:
mkfs
重要的:
mkfs sync
不熟悉的:
badblocks cfdisk dd e2fsck ext2ed fsck fsck.minix fsconf fdformat hdparm mformat mkbootdisk
mkdosfs mke2fs mkfs.ext2 mkfs.msdos mkinitrd mkisofs mkswap mpartition swapon symlinks sync
mbadblocks mkfs.minix fsck.ext2 fdisk loseup mkfs sfdisk swapoff
網絡通訊:
熟悉的:
telnet
重要的:
telnet netconfig nc httpd ifconfig mesg dnsconf wall netstat ping talk traceroute tty netconf write tcpdump
不熟悉的:
apachectl arpwatch dip getty mingetty uux uulog uustat ppp-off netconfig? nc
httpd ifconfig minicom mesg dnsconf wall netstat ping pppstats samba setserial
talk traceroute tty newaliases uuname netconf write statserial efax pppsetup
tcpdump ytalk cu smbd testparm smbclient shapecfg
系統管理:
熟悉的:
重要的:
adduser useradd date exit finger sleep groupdel groupmod halt kill
last login logname logout ps nice procinfo top pstree reboot screen
shutdown sudo userconf userdel usermod vlock who whoami whois
newgrp su skill w id free
不熟悉的:
adduser chfn useradd date exit finger fwhios sleep suspend
groupdel groupmod halt kill last lastb login logname logout
ps nice procinfo top pstree reboot rlogin rsh sliplogin screen
shutdown rwho sudo gitps swatch tload logrotate unname chsh
userconf userdel usermod vlock who whoami whois newgrp renice
su skill w id free
系統設定:
熟悉的:
重要的:
reset clear alias clock crontab declare? enable
eval export grpconv rpm insmod set ntsysv
mouseconfig passwd resize modinfo time
setup setenv setconsole timeconfig ulimit? chkconfig
不熟悉的:
reset clear alias discolors aumix bind chroot clock
crontab declare depmod dmesg enable eval export pwunconv
grpconv rpm insmod minfo set modprobe ntsysv mouseconfig
passwd pwconv rdate resize rmmod grpunconv modinfo time
setup sndconfig setenv setconsole timeconfig ulimit unset
chkconfig apmd hwclock mkkickstart fbset unalias
備份壓縮:
熟悉的:
重要的:
gunzip compress cpio dump gzexe gzip restore tar unzip zip zipinfo
不熟悉的:
ar bunzip2 bzip2 bzip2recover gunzip unarj compress cpio
dump uuencode gzexe gzip lha restore tar uudecode unzip
zip zipinfo
設備管理:
setleds loadkeys rdev dumpkeys
文件傳輸:lp - line print
熟悉的:
重要的:
ftp tftp ncftp
不熟悉的:
lprm lpr lpq lpd? bye ftp uuto uupick uucp uucico tftp ncftp ftpshut ftpwho ftpcount
man
info
x --help
1. 最關鍵的命令
man
echo
2. 目錄文件操作命令
ls: 查看目錄下的文件信息或文件信息
dir:
pwd: 打印當前路徑
cd:改變路徑
mkdir:創建路徑
rmdir:刪除路徑
cp:拷貝文件或目錄
mv:移動文件或目錄,或改名
rm: 刪除文件或目錄
tree:輸出該目錄下的文件目錄樹
3. 查看文件內容
cat:
more:
less:
head:
tail:
wc:統計文件的字符數、單詞數和行數等信息
4. 用戶管理
useradd:添加用戶
groupadd:
userdel: 刪除用戶
groupdel
passwd: 為用戶設置密碼
usermod: 更改用戶設置
su:用戶切換
finger root:查看某用戶資料
finger:查看所有用戶資料
last:最近一個月用戶登錄情況
id:打印用戶的UID和GID
users:
groups:
who:列出活躍用戶
whoami:
who am i:
w:
/etc/default/useradd:添加用戶時候的默認設置文件
/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile
5. 命令歷史
history
!!:執行最近一次命令
6. 創建連接
ln a b:為a創建硬連接(hard link)b
ln -s a b: 為a創建符號鏈接(symbolic link)b
7. 進程管理
top 查看后體進程,監控系統性能
top -d 2:每2秒刷新一次
top -d 2 -p 3690 查看某個PID
top -b -n 2 > /tmp/top.txt 將top的信息刷新兩次的結果輸出到/tmp/top.txt
ps 查看進程近況
free -m 查看系統內存使用情況
uptime:系統開機時間
8. 文件比較命令
diff
cmp
9. 關機和重啟
shutdown [-t 秒數] [-rkhncf] 時間 [警告信息]
shutdown -h now 立即關機,相當于halt
shutdown -r now 立即重啟,相當于reboot
dmesg | more 查看開機信息
clear 清屏
10. 網絡命令
ifconfig 顯示或查看網絡設備
/etc/init.d/network restart:重啟網絡服務(網卡)
網絡IP的配置文件是:/etc/sysconfig/network-script/ifcfg-eth0
ifdown eth0 關閉網卡
ifup eth0 開啟網卡
route -n 查看路由表
routeadd -net 192.168.2.1 netmask 255.255.255.0 dev eth0
netstat: 查看網絡連接狀況
traceroute
hostname:顯示主機名
hostname -i:顯示當前主機名的IP
11. 系統集成管理菜單
setup:系統服務管理命令
ntsysv;設置系統服務
12. RPM軟件包管理
rpm -ivh xxx.rpm 安裝rpm包
rpm -qa --last | less 根據安裝日期顯示已經安裝的包
rpm -qa |grep mysql -i 查詢系統是否安裝mysql包(-i,忽略大小寫)
rpm -e 刪除安裝的軟件包
rpm -e mysql* --nodpes
強制刪除相關的軟件包
rpm --test 測試安裝
rpm -qi 查詢mysql包的說明資料
rpm -qpl xxx.rpm 查看rpm包內含的內容.
rpm -qc[d] 設定檔與說明檔
rpm -Uvh 升級安裝
rpmbuild --bb SPECS/xxx.spec 重新裝將xxx.spec編譯成rpm包.
rpmbuild --rebuild packagename.src.rpm 重新把.src.rpm編譯成rpm包.
13. 實時通訊
write:給指定用戶發信
write username
talk:
wall: 給所有人發信
14. 文件所有權或權限管理
chown:改變文件屬主
chgrp:改變文件的屬組
chmod:改變文件的讀寫、執行權限
umask:改變系統下文件、目錄的默認權限
15. 管道(pipe)
管道:將前一個命令的輸出作為另一個命令的輸入
ls -la | more
16. 重定向
將一個命令的輸出寫入一個文件或者文件句柄
ls -la > filecontents.txt
17. 查找文件
locate:
find:
which:
whereis:
18. 源程序的編譯過程
./configure檢查系統信息
./configure --help | more 給出configure的幫助信息
make clean 清除之前留下的文件
make 編譯
make install 安裝
安裝時多查看README/INSTALL文件的說明
19. 文件壓縮命令
*.Z compress程序壓縮的文件
*.bz2 bzip2程序壓縮的文件
*.gz gzip程序壓縮的文件
*.tar tar程序打包的文件,并沒有壓縮過
*.tar.gz tar程序打包的文件,并經過gzip的壓縮處理
compress filename filename.Z 壓縮文件
compress -d filename.Z 解壓文件
gzip filename filename.gz 壓縮文件
gzip -d filename.gz 解壓文件
zcat filename.gz 查看壓縮文件
bzip2 -z filename 壓縮文件
bzip2 -d filename.bz2 解壓文件
bzcat filename.bz2 查看壓縮文件內容
tar -cvf filename.tar directory_name 文件歸檔
tar xvf filename.tar 把文件包解開
tar xzvf filename.tar.gz 解壓并解包
tar xjvf filename.tar.bz2 解壓并解包
tar ztvf filename.tar.gz 查看tar內容
20. 通配符(wildcard character)
?:表示該位置可以是任意單個字符
*:表示該位置可以是若干個任意字符
[charset]:可替代charset中的任意單個字符
例如
[Cc]h可以分別表示Ch和ch
[a-z]可以代替任意單個小寫字母,[a-zA-Z]表示任意字母
rm a*.out表示刪除所有以a開頭的,擴展名為.out的文件
ls img-[1-5].jpg表示img1.jpg, img2.jpg, img3.jpg, img4.jpg, img5.jpg
21. Linux目錄架構
/ 根目錄
/bin 常用命令存放的目錄,binary file
/boot 存放系統啟動時必須讀取的文件,包括內核在內
/boot/grub/menu.lst GRUB設置
/boot/vmlinuz 內核
/boot/initrd 內核解壓所需要的RAM Disk
/dev 系統周邊設備
/etc 系統相關配置文件和子目錄,包括網絡配置文件、文件系統、X系統配置文件、設備配置信息、用戶信息等
/etc/DIR_COLORS 設定顏色
/etc/hostname 設定節點名稱
/etc/networking 只有yes表明網絡存在
/etc/host.conf 文件說明用戶的系統如何查詢節點名稱
/etc/hosts 設定機器IP與名稱的對應表
/etc/hosts.allow 設置允許使用inetd的機器列表
/etc/hosts.deny 設置不允許使用inetd的機器列表
/etc/hosts.equiv 設置不用密碼訪問的客戶機名稱
/etc/inetd.conf 設定系統網絡守護進程inetd的配置
/etc/gateways 設定路由器的配置
/etc/protocols 設定系統支持的協議
/etc/named.conf 系統作為DNS服務器的配置文件
/etc/sysconfig/network/scripts/ifcfg-eth0 設置IP/MAC等信息
/etc/resolv.conf 設置DNS
/etc/X11 X Window的配置文件
/etc/fstab 記錄開機要加載的文件系統
/etc/inittab 設定系統啟動時init進程要進入什么樣的runlevel
/etc/issue記錄用戶登錄前顯示的信息
/etc/group設定用戶的組名和相關信息
/etc/passwd 設定用戶帳號信息
/etc/shadow 用戶密碼信息
/etc/sudoers 可以sudo命令的配置文件
/etc/securetty 設定root用戶可以登錄的終端
/etc/login.defs 設定所有用戶登錄時的缺省配置
/etc/exports 設定NFS系統
/etc/init.d/ 存放預設的自動啟動進程的啟動腳本
/etc/xinetd.d/ 存放super daemon管理的各項服務的設置文件
/etc/modprobe.conf 內核模塊額外參數設置
/etc/syslog.conf 系統日志設置文件
/home 普通用戶家目錄
/lib或/lib64 系統會用到的函數庫,系統動態鏈接共享庫
/lib/modules kernel相關模塊
/var/lib/rpm rpm包安裝處
/lost+found 系統不正常錯誤發生時,會將一些遺失的片段置于該目錄下
/mnt 外部設備的掛載點
/media 與/mnt相類
/opt 主機額外安裝的軟件
/proc 虛擬目錄,內存的映射,存儲系統信息
/proc/version 內核版本
/proc/sys/kernel 系統內核功能
/root 系統管理員的家目錄
/sbin 系統管理員才能執行的系統管理指令
/srv 一些服務啟動后,這些服務所需的文件目錄
/tmp 一般用戶或正在執行的程序存放臨時文件的地方
/usr 最大的目錄,存放應用程序和文件
/usr/X11R6 X-window目錄
/usr/src Linux源代碼
/usr/include 系統頭文件
/usr/openwin 存放SUN的OpenWin
/usr/share/man 在線使用手冊
/usr/bin 用戶執行的binary file目錄
/usr/local/bin 用戶執行的binary file目錄
/usr/lib 系統使用的函數庫
/usr/local/lib 系統使用的函數庫
/usr/sbin 系統管理員才能執行的指令
/usr/local/sbin 系統管理員才能執行的指令
/var 日志文件等
/var/log/secure 記錄登錄系統存取文件的信息
/var/log/wtmp 記錄登錄用戶的信息
/var/log/messages 系統發生的錯誤信息
/var/log/boot.log 記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉信息
/var/log/maillog 記錄郵件存取或往來的用戶記錄
/var/log/cron 記錄crontab服務的內容
/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log 不同的網絡服務信息
22. runlevel的級別
0:系統停機狀態
1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登錄
2:多用戶狀態(沒有NFS)
3:完全的多用戶狀態(有NFS),登錄后進入控制臺命令行模式
4:系統未使用,保留
5:X11控制臺,登錄后進入GUI模式
6:系統正常關閉并重新啟動,默認運行級別不能為6,否則不能正常啟動
23. BASH常用變量
$HISTFILE: 用于存儲歷史命令的文件
$HISTSIZE:歷史命令列表的大小
$HOME:當前用戶的家目錄
$OLDPWD:前一個目錄
$PATH:bash尋找可執行文件的搜索路徑
$PS1:命令行的一級提示符
$PS2:命令行的二級提示符
$PWD:當前工作目錄
$SECONDS:當前shell開始后所經過的時間長度,單位為秒