linux基礎

Linux基礎

第一章:基礎操做

1 瞭解linux目錄結構

目錄層次結構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 :存放系統產生的常常變化的文件

 

2 文件及文件夾的基本操做

查看當前目錄:pwd

切換目錄:cd

文件

新建:

  1. 新建空文件:touch
  2. 利用重定向新建文件>:

刪除:

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 (複製)

 

3 增強內容:

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編輯器

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安裝

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

 

 

2源碼安裝

(三步曲)

./configure

make

make install

 

 

 

第五章:系統管理

1  linux系統啓動過程

當用戶打開PC

的電源,BIOS開機自檢,按BIOS中設置的啓動設備(一般是硬盤)啓動,接着啓動設備上安裝的引導程序lilo或grub開始引導

Linux,Linux首先進行內核的引導,接下來執行init程序,init程序調用了rc.sysinit和rc等程序,rc.sysinit和rc

 
   


當完成系統初始化和運行服務的任務後,返回init;init啓動了mingetty後,打開了終端供用戶登陸系統,用戶登陸成功後進入了Shell,這

樣就完成了從開機到登陸的整個啓動過程。

 

 

2 系統運行級別

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

第七章:網絡

1 網卡的命名

eth0表明第一塊網卡(Ethernet)。

eth1表明第二塊網卡(Ethernet)。

Loop表明本地環回網卡。(Local Loopback)

 

2 查看網卡的鏈接狀態

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等信息

 

 

3 查看網卡信息

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服務器

 

第八章:經常使用操做

1:修改系統時間

  1. date –s  「20110504 19:15:00」
  2. clock –systohc  將系統時間寫入到硬件中。

 

2:修改主機名

A永久性修改

hostname你要的主機名

將 /etc/sysconfig/network

HOSTNAME=修改成你要的主機名

修改/etc/hosts

127.0.0.1    修改成你要的主機名

B臨時性修改

hostname主機名

 

3:光驅的使用

a:掛載

mount /dev/hdc /mnt

b:卸載

umount  /dev/hdc  卸載最後掛載

umount  /mnt     卸載指定目錄掛載

 


4:切換用戶

su - root

必定要加中畫線

cd ~

切換到宿主目錄。

cd ../../

返回上二層目錄

Clear 清屏

Watch  -n 8 ls

每隔8秒執行一次ls

Which shutdown

返回一個命令的路徑

Who

查看登陸用戶

Who I am

查看當前用戶

 

5.sed awk基本用法

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'

6.文本格式轉換

unix2dos 文件名 將UNIX格式文本轉化爲DOS文本

dos2unix 文件名 將DOS文本轉化爲UNIX文本

 

 

7.tar命令

創建歸檔

       對文件和目錄進行歸檔

       # 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:命令參數歸檔恢復的目錄名。

 

 

 

 

8:grep 使用

grep str1  查找含有str1對應的行

grep –v str1  查找除含有str1的行的全部行

grep –e str1 –e str2 查找含有str1 或str2的全部行

 

9:sort排序

sort -t ":" -k 2 -n -r numbet.txt

以:爲分隔取第二列,按數字大小排序(-r 表示降序)。

 

10:uniq     unique(惟一的)

 uniq -d 顯示重複的行

 uniq –c 顯示重複行的次數

 uniq    顯示的行不重複

 

 

11:連接

連接分爲:軟連接,硬連接

軟連接:至關因而快捷方式。

ln -s  /etc/sysconfig/network-scripts/ifcfg-eth0  eth0-link

硬連接 :至關於複本,一個改變同時改變。刪除任意一個不影響其它。

ln  /etc/sysconfig/network-scripts/ifcfg-eth0  eth0-link-hard

 

12 :幾個重要的文件

~/.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環境

相關文章
相關標籤/搜索