目錄層次結構linux
Linux系統使用樹型目錄結構,在整個系統中只存在一個根目錄(文件系統)apache
Linux系統中老是將文件系統掛載到樹型目錄結構中的某個目錄節點中使用bash
根目錄 /服務器
根目錄分爲一下目錄:網絡
/bin /sbin /home /boot /dev /proc /var /temp /usr /etcoracle
(1)/ : 根目錄less
(2)/bin :存放啓動時所須要的普通程序編輯器
(3)/boot : 存放內核及啓動所須要的文件oop
(4)/dev :存放設備相關的文件ui
(5)/etc :存放系統的配置文件
(6)/home:存放用戶文件的主目錄,用戶數據( cd ~ 可進入本身的主目錄)
(7)/lib :存放啓動時所須要的庫文件
(8)/mnt :存放臨時的映射文件,一般是一些用來安裝其餘設備的子目錄
(9)/proc :這是一個虛擬的文件系統,存放當前系統的狀態(有關進程和系統信息)
(10)/root: 超級用戶主目錄
(11)/sbin: 存放啓動時所須要的系統管理程序
(12)/tmp :存放啓動時產生的臨時文件
(13)/usr : 包含通常不須要修改的應用程序,命令程序文件,程序庫,手冊
(14)/var :存放系統產生的常常變化的文件
查看當前目錄:pwd
切換目錄:cd
文件
新建:
刪除:
rm (刪除文件)
修改:
mv(移動並更名)
查看:
ls (查看目錄下有沒有這個文件)
查看文件裏面的內容
cat /etc/inittab (直接查看到最後一頁)(-n 參數能夠顯示行號,-A 顯示行結束符)
more /etc/initab (一次顯示一頁,回車鍵換行,空格鍵換頁)
less /etc/initab(一次顯示一頁,回車鍵換行,空格鍵換頁,支持翻頁鍵)
ls –al 以詳細列表形式查看全部文件及文件夾
tac /etc/inittab (從尾部向頭部讀,專門用於讀取日誌文件)
head –n 20 /etc/inittab 查看文件頭20行
tail -n 20 /etc/inittab 查看文件尾20行
tail –f /var/log/message 實時查看文件最後10的內容
其它:
cp(複製)
文件夾
新建:
mkdir
刪除:
rm -r (刪除文件夾)
修改:
mv(移動並更名)
查找:
ls (查看目錄下有沒有這個文件夾)
其它:
cp -r (複製)
mkdir -p 3/2/1/ 創建多層文件夾
mkdir 1 2 3 創建多個文件夾
ls -F|grep / 只查看文件夾ls -aF|grep /|awk 'BEGIN{FS="/"} {print $1}'
ls -F|grep -v / 只查看文件
mv –f 不出現提示,直接overwrite
rm –f 不出現提示,直接刪除
\cp 2/1.txt 3/1.txt 不提示直接overwirte
\cp -r /1/* 2 將1文件夾內全部內容複製到2目錄內,不提示直接overwirte
b -
塊設備文件。
d -
目錄。
c -
字符設備文件。
p -
管道文件。
l -
符號連接文件。
f -
普通文件。
scp 主要用於網絡之間的複製
示例:
scp newFile 192.168.1.156:/root
將本地目錄下newFile 文件複製到192.168.1.156主機的/root目錄下。
scp 192.168.1.156:/root/my.txt /root
將192.168.1.156主機的/root目錄下的my.txt複製到本機的/root目錄下。
scp 192.168.1.156:/root/test1.txt 192.168.l.153:/root
將192.168.1.156主機的/root目錄下的test1.txt複製到192.168.l.153主機/root目錄下。
find / -name inittab
查找/目錄下及子目全部inittab 文件或文件夾
find / -name "ini*"
查找/目錄及子目錄全部含有ini的文件或文件夾
find . -name "[A-Z]*" -print
想要的當前目錄及子目錄中查找文件名以一個大寫字母開頭的文件,
drwxr-xr-x /root
表示/root 目錄建立者有讀(4)寫(2)執行(1)的權限
同組的用戶讀和執行的權限
其它用戶讀和執行的權限
chmod g+x 1.txt 同組中的用戶加上可執行的權限
chmod 456 1.txt
chmod -R 777 temp_dir/
chown - R oracle:admin temp_dir 改變目錄和子目錄的屬主爲oracle和屬組爲admin
chgrp - R admin temp_dir 改變目錄和子目錄的屬組爲admin
VI編輯器有三種模式:
1:命令模式
2:文本編輯模式
3:末行模式
Vi t1.txt 進入的是命令模式。
命令模式-------(輸入i)--------進入文本編輯模式
文本編輯模式------(按ESC鍵)---------命令模式
命令模式-------(:)--------進入末行模式
末行模式------(按ESC鍵)---------命令模式
命令模式 (定位,複製,粘貼,刪除)
定位:
14G 跳轉到14行。
G 跳轉到最後行。
^跳轉到行首。
$跳轉到行尾
e跳轉到當前字符串尾
w跳轉到下一個字符串前
/字符串 查找到指定字符串
複製:
yy 複製當前光標所在的那一行。
y^ 複製當前光標到到行首。
y$ 複製當前光標到到行尾。
粘貼
p 粘貼
刪除
dd 刪除當前光標所在的行。
文本編輯模式(文本的輸入)
末行模式(保存,退出,替換)
w保存
q退出
! 強制
r 讀文件
設置行號
set nu設置行號
set nonu取消行號
替換
%s/被替換的內容/替換後的內容/g (表示所有替換)
%s/被替換的內容/替換後的內容 (每行第一個匹配所有替換)
17s/被替換的內容/替換後的內容/g (17行所有替換)
進階語句:
vi FileName 打開文件 FileName,並將光標置於第一行首。
vi +n FileName 打開文件 FileName,並將光標置於第 n 行首。
vi + FileName 打開文件 FileName,並將光標置於最後一行。
vi + /pattern File 打開文件 File,並將光標置於其中第一個
:n1,n2 co n3 將 n1 行到 n2 行之間的內容拷貝到第 n3 行下。
:n1,n2 m m3 將 n1 行到 n2 行之間的內容移至第 n3 行下。
:n1,n2 d 將 n1 行到 n2 行之間的內容刪除。
用戶管理命令
adduser 添加用戶帳號
passwd 設置(更改)用戶口令
userdel -r 刪除帳戶用戶(及宿主目錄)
usermod 設置用戶屬性
用戶帳戶管理實例
創建用戶賬號
# adduser st01
設置用戶口令
# passwd st01
設置用戶賬號屬性
鎖定用戶賬號禁止登陸
# usermod -L st01
刪除用戶賬號
# userdel -r st01
用戶賬號相關文件和目錄
用戶賬號信息保存在passwd文件中
/etc/passwd
用戶的加密口令保存在shadow文件中
/etc/shadow
用戶的宿主目錄是home目錄中與用戶名稱相同的目錄
/home/teacher
用戶的初始配置文件來在skel目錄(配置模版)
/etc/skel
用戶賬號信息保存在passwd文件中
用戶口令信息保存在shadow文件中
passwd和shadow文件保存在/etc目錄中
用戶組管理命令及文件
groupadd 添加指定名稱的用戶組帳戶
groupdel 刪除指定名稱的用戶組帳戶
/etc/group/ 保存用戶組帳戶信息
用戶組帳號管理實例
添加用戶組
# groupadd class1
在創建用戶時指定用戶組
# adduser -g class1 zelin
更改用戶的組賬號
# usermod -g class1 zelin
刪除用戶組
# groupdel class1
安裝有兩種方式
1:rpm安裝
2:源碼安裝
1:rpm -ivh firefox-3.0.12-1.el5_3.i386.rpm
安裝
2:rpm -e firefox
卸載
3:rpm –ql firefox
可查看安裝後全部文件
4:
rpm –q firefox
rpm –qa|grep firefox (推薦)
查找是否安裝
5:rpm -U firefox-3.0.12-1.el5_3.i386.rpm
更新
6:rpm -qf /bin/mount
查詢文件/bin/mount 由哪一個RPM包安裝
7:rpm -qi vsftpd
查詢軟件安裝包的信息
8:rpm –qc vsftpd
查詢軟件安裝包的配置文件列表
src.rpm包的安裝方法
將src.rpm包轉換成rpm包再進行安裝
1:rpmbuild --rebuild vsftpd-2.0.1-5.src.rpm (rpmbuild命令通常沒有安裝)
生成RPM包
2:cd /usr/src/redhat/RPMS/i386 切換到目錄(建議使用find命令查找)
3:rpm –ivh vsftpd-2.0.1-5.rpm
(三步曲)
./configure
make
make install
當用戶打開PC
的電源,BIOS開機自檢,按BIOS中設置的啓動設備(一般是硬盤)啓動,接着啓動設備上安裝的引導程序lilo或grub開始引導
Linux,Linux首先進行內核的引導,接下來執行init程序,init程序調用了rc.sysinit和rc等程序,rc.sysinit和rc
當完成系統初始化和運行服務的任務後,返回init;init啓動了mingetty後,打開了終端供用戶登陸系統,用戶登陸成功後進入了Shell,這
樣就完成了從開機到登陸的整個啓動過程。
0:關機
1:單用戶文本模式
2:多用戶文本模式,但無NFS網絡支持
3:多用戶文本模式
4:保留,暫未使用
5:多用戶圖形化模式,(默認)
6:重啓
3:查看當前運行狀態 runlevel
切換運行狀態 init 6 重啓
永久改變開機後運行狀態 修改/etc/inittab
id:3:initdefault:
紅色表示開機後運行級別
4:服務
服務分爲獨立服務和非獨立服務
chkconfig --list
列出全部服務在全部運行級別下的啓動狀態。
chkconfig --list wdaemon
列出wdaemon服務在全部運行級別下的啓動狀態。
chkconfig --list|grep wdaemon
列出wdaemon服務在全部運行級別下的啓動狀態。
獨立服務
chkconfig --level 23 nfs on
修改nfs服務在運行級別爲23時爲啓動狀態,不改變其它運行級別的啓動狀態。
非獨立服務
chkconfig rmcp on
修改在rmcp服務在全部運行級別下爲開啓的狀態,必須xinetd也是開啓狀態
改變服務狀態
service 服務名 start/stop/restart
進程的操做
查看全部進程:ps –ef
實時查看進程(CPU,MEM):top
刪除:kiil -9 PID
刪除全部run.sh進程:killall run.sh
crontab –e 在裏面添加咱們的的定時任務
crontab –l 查看定時任務
第一段寫分鐘,第二段小時,第三段天數,
第四段月,第五段星期 第六段命令。*表明每
* * * * * 帶路徑的命令
表示每分都執行
15 * * * * 帶路徑的命令
表示第小時的第15分執行
15 2 * * * 帶路徑的命令
表示天天2點時的15分執行
*/20 2 * * * 帶路徑的命令
表示天天2點時的每隔20分執行
*/20 2,4,6 * * * 帶路徑的命令
表示天天2,4,6點時的每隔20分執行
root用戶的定時任務文件爲
/var/spool/cron/root
eth0表明第一塊網卡(Ethernet)。
eth1表明第二塊網卡(Ethernet)。
Loop表明本地環回網卡。(Local Loopback)
Ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised auto-negotiation: No
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Link detected: yes
表示查看第一塊網卡的硬件信息。最後一行Link detected: 顯示了鏈接是否鏈接。
ethtool -i eth0
driver: vmxnet
version: 2.0.1.1
firmware-version: N/A
bus-info: 0000:02:00.0
表示查看網卡的驅動,firmware等信息
ifconfig 查看已鏈接網卡的信息
ifconfig –a 查看全部網卡的信息
ifup eth0開啓網卡
ifdown eth0關閉網卡
4:配置IP信息
臨時生效
ifconfig eth0 192.168.1.199 netmask 255.255.255.0
永久生效
vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改IP配置信息
DEVICE=eth0 指定設備名
BOOTPROTO=static 指定用表態static還動態dhcp IP,
HWADDR=00:0C:29:52:8F:B1 MAC地址
ONBOOT=yes YES仍是NO決定了網卡是否隨便系統啓動
IPADDR=192.168.1.189 Ip地址
NETMASK=255.255.255.0 子網掩碼
GATEWAY=192.168.1.1 網關
重起服務使配置生效
service network restart
5:配置路由信息
5.1:查看路由信息
route
優先級,靜態> 動態> 默認
5. 2:添加路由
route add –net 172.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
5.3:DNS
/etc/resolv.conf
nameserver 192.168.1.1 指定DNS服務器
A永久性修改
hostname你要的主機名
將 /etc/sysconfig/network
HOSTNAME=修改成你要的主機名
修改/etc/hosts
127.0.0.1 修改成你要的主機名
B臨時性修改
hostname主機名
a:掛載
mount /dev/hdc /mnt
b:卸載
umount /dev/hdc 卸載最後掛載
umount /mnt 卸載指定目錄掛載
su - root
必定要加中畫線
cd ~
切換到宿主目錄。
cd ../../
返回上二層目錄
Clear 清屏
Watch -n 8 ls
每隔8秒執行一次ls
Which shutdown
返回一個命令的路徑
Who
查看登陸用戶
Who I am
查看當前用戶
sed –n ‘10p’ /etc/passwd
將/etc/passwd 第十行打印出來
sed -n '/root/p' /etc/passwd
將/etc/passwd行中匹配字符串root打印出來
sed -n '/^root$/p' /etc/passwd
將/etc/passwd行只有root打印出來
sed 增強
sed s替換
sed ‘s/要替換的內容/替換後的內容/g’ /etc/passwd
並不必定用/表示分隔,如sed 's!/home/admin!/home/my!g' path.txt
sed '1s/root/root___root/2' /etc/passwd
替換第一行中的第二個匹配的內容
定位(行號定位,匹配定位)
sed '1s/root/root___root/2' /etc/passwd
s前面用1表明行號定位
cat -n /etc/passwd|sed '/root/s/root/root----------root/g'
s前面經過匹配的方法定位
cat -n /etc/passwd|sed '/^root$/s/root/root----------root/g'
s前面經過匹配的方法定位,且匹配的那行只有root
刪除某行
sed ‘1d’ /etc/passwd
刪除第一行
cat -n /etc/passwd | sed '4,5d'
刪除第四第五
sed ‘/root/d’ /etc/passwd
刪除匹配root的行
前面插入一行
sed ‘1i this is my interting row’
後面插入一行
sed ‘1a this is my interting row’
改變第5行
sed ‘5c this is my interting row’
awk –F: ‘{print $3}’ /etc/passwd
以:爲分隔打印出第三列
awk -F: '$1=="zjf" {print $3}' /etc/passwd
以:爲分隔,且第一列爲zjf時打印出第三列
awk -F: '$1 ~ /f/ {print $1,$3}' /etc/passwd
以:爲分隔,且第一列匹配f時打印出第一,三列
awk -F: '/f/ {print $1,$3}' /etc/passwd
以:爲分隔,且行中匹配f時打印出第一,三列
cat /etc/passwd|awk -F: '$5=="’$變量名’" {print $1,$5}'
當第5列等於變量值時,打印/etc/passwd/第一列和第五列
cat /etc/passwd|awk -F: '$5=="MySQL Server" {print $1,$5}'
當第5列等於字符串MySQL Server時,打印/etc/passwd/第一列和第五列
cat /etc/passwd|awk -F: '$5~/MySQL/ {print $1,$5}'
當第5列匹配字符串MySQL時,打印/etc/passwd/第一列和第五列
行首刪除空格
cat sort1.txt|sed 's/^[[:space:]]*//g'>sort_temp.txt
行尾刪除空格
cat sort1.txt|sed 's/[[:space:]]*$//g'>sort_temp.txt
刪除行首行尾的全部空格及行間的空行,
cat test.txt|sed 's/^[[:space:]]*//g'|sed 's/[[:space:]]*$//g'|sed '/^$/d'
unix2dos 文件名 將UNIX格式文本轉化爲DOS文本
dos2unix 文件名 將DOS文本轉化爲UNIX文本
創建歸檔
對文件和目錄進行歸檔
# tar -cf mydir.tar newDir
將newDir 目錄歸檔爲mydir.tar
# tar -xf mydir.tar
將歸檔mydir.tar恢復爲原內容
# tar –cf myfile.tar *.txt
將當前目錄下全部後綴爲txt文本打包爲myfile.tar
# tar -xf myfile.tar
將歸檔myfile.tar恢復爲原內容
壓縮並歸檔加-z參數
對文件和目錄進行壓縮歸檔
$ tar -czf myfiles.tar.gz files/
tar:命令名;czf:命令選項:t表示查看歸檔,
z表示歸檔文件是壓縮格式,f用於指定歸檔文件名myfiles.tar.gz:
命令參數,歸檔文件名;files/:命令參數,須要進行歸檔的文件或目錄名
查看歸檔中的文件列表
查看歸檔文件中的目錄列表
$ tar -tf myfiles.tar
查看壓縮歸檔文件中的目錄列表
$ tar -tzf myfiles.tar.gz
tar:命令名; tzf:命令選項:t表示查看歸檔,z表示歸檔文件是壓縮格式,f用於指定歸檔文件名myfiles.
tar:命令參數,須要查看的歸檔文件名
tar –rf sh.tar my.txt
將my.txt 增長到sh.tar包中
tar –delete –f sh.tar my.txt
將my.txt 從sh.tar中去除
$ tar -xzf myfiles.tar.gz -C restore/
恢復歸檔文件到指定目錄
tar:命令名;xzf:命令選項:x表示回覆歸檔,z表示歸檔是壓縮格式,f用於指定歸檔文件名
myfiles.tar.gz:命令參數,歸檔文件名; -C:命令參數-C指定歸檔恢復的目標目錄
restore:命令參數歸檔恢復的目錄名。
grep str1 查找含有str1對應的行
grep –v str1 查找除含有str1的行的全部行
grep –e str1 –e str2 查找含有str1 或str2的全部行
sort -t ":" -k 2 -n -r numbet.txt
以:爲分隔取第二列,按數字大小排序(-r 表示降序)。
10:uniq unique(惟一的)
uniq -d 顯示重複的行
uniq –c 顯示重複行的次數
uniq 顯示的行不重複
連接分爲:軟連接,硬連接
軟連接:至關因而快捷方式。
ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 eth0-link
硬連接 :至關於複本,一個改變同時改變。刪除任意一個不影響其它。
ln /etc/sysconfig/network-scripts/ifcfg-eth0 eth0-link-hard
~/.bash _history 記錄了用戶執行的全部命令
~/.bash_profile 記錄了用戶的環境和啓動程序
~/.bashrc 記錄了用戶的fun和別名
~/.bash_logout 用戶logout時執行的腳本
/etc/bashrc 記錄了系統的fun和別名
/etc/profile 記錄了系統的環境和啓動程序
取別的樣例
alias ws=’ /usr/local/apache2/bin/apachectl start’
13:查看文件或文件夾使用大小
du –h –s 文件夾或文件
-h 根據文件或文件夾大小變化計量單位
-s 彙總求和
14:修改配置文件後生效命令
方法1:
. ~/.bashrc
方法2:
source ~/.bashrc
經過這兩種方法不須要從新啓動bash環境