Linux基礎02:磁碟操作,檔案許可權、檔案及資料夾操作、網路服務
1.Linux磁碟與U盤操作
1.1 顯示系統的磁碟空間用量
##du命令也是檢視使用空間的,但是與df命令不同的是Linux du命令是對檔案和目錄磁碟使用的空間的檢視
du -sh ##查目錄使用大小(-s表示總結)
## du -sh /bin
##df命令用於顯示磁碟分割槽上的可使用的磁碟空間。預設顯示單位為KB。可以利用該命令來獲取硬碟被佔用了多少空間,目前還剩下多少空間等資訊。
df -h ##檢查linux伺服器的檔案系統的磁碟空間佔用情況
##mkfs命令用於在裝置上(通常為硬碟)建立Linux檔案系統。mkfs本身並不執行建立檔案系統的工作,而是去呼叫相關的程式來執行。
mkfs.ext4 /dev/sda1 ##格式化硬碟分割槽
##fdisk命令用於觀察硬碟實體使用情況,也可對硬碟分割槽。
fdisk -l ##檢視整個硬碟的資訊
fdisk /dev/sda ##磁碟分割槽
1.2 掛載
##命令格式:mount [-t vfstype] [-o options] device dir
其中:
#1.-t vfstype 指定檔案系統的型別,通常不必指定。mount 會自動選擇正確的型別。常用型別有:
光碟或光碟映象:iso9660
DOS fat16檔案系統:msdos
Windows 9x fat32檔案系統:vfat
Windows NT ntfs檔案系統:ntfs
Mount Windows檔案網路共享:smbfs
UNIX( LINUX) 檔案網路共享:nfs
#2.-o options 主要用來描述裝置或檔案的掛接方式。常用的引數有:
loop:用來把一個檔案當成硬碟分割槽掛接上系統
ro:採用只讀方式掛接裝置
rw:採用讀寫方式掛接裝置
iocharset:指定訪問檔案系統所用字符集
#3.device 要掛接(mount)的裝置。
#4.dir裝置在系統上的掛接點(mount point)。
##將映象檔案掛載在/mnt/dvd下
mkdir /mnt/dvd #在根目錄下的mnt目錄下建立目錄dvd
mount -t iso9660 -o loop /dev/cdrom /mnt/dvd ##掛載
umount /mnt/dvd ##解除安裝
1.3 檔案系統修復
##fsck命令被用於檢查並且試圖修復檔案系統中的錯誤。當檔案系統發生錯誤,可用fsck指令嘗試加以修復
fsck -y /dev/sda1 ##(修復的可以是分割槽可以是目錄,最好在單使用者模式下使用)
##linux檔案格式
ext4 ext3 ext2 vfat(fat32)
##windows檔案格式
ntfs fat32 exfat
2.Linux賬號與組操作
2.1 賬戶
超級賬戶 root uid = 0
普通賬戶 uid > = 500
系統賬戶 uid = 1 ~ 499
/etc/passwd //儲存賬戶的資訊
![圖片14 (2)](圖片14 (2).png)
/etc/shadow //儲存賬戶密碼資訊
![圖片15 (2)](圖片15 (2).png)
2.2 新增,刪除,修改使用者 useradd,userdel,usermod
useradd 用於Linux中建立的新的系統使用者。useradd可用來建立使用者帳號。帳號建好之後,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是儲存在/etc/passwd
文字檔案中。所有使用者必須放在組中,建立使用者時,如不指定組,會預設建立與使用者名稱相同的組
useradd(選項)(引數)
useradd user 新增使用者user;
useradd -g user user1 建立使用者user1指定基本組為user 使用 cat /etc/passwd 檢視
-G<群組>:指定使用者所屬的附加群組;
useradd -G user user2 建立使用者user2指定附加組為user2 使用cat /etc/group檢視組情況
-u<uid>:指定使用者id。
useradd -u 666 user3 建立使用者user3指定使用者ID為666 使用 cat /etc/passwd 檢視
userdel命令用於刪除給定的使用者,以及與使用者相關的檔案。若不加選項,則僅刪除使用者帳號,而不刪除相關檔案。
useradel(選項)(引數)
-f:強制刪除使用者,即使使用者當前已登入;
-r:刪除使用者的同時,刪除與使用者相關的所有檔案。userdel -r user 刪除使用者user,並且刪除/home/user
usermod命令用於修改使用者的基本資訊。usermod命令不允許你改變正在線上的使用者帳號名稱。當usermod命令用來改變user id,必須確認這名user沒在電腦上執行任何程式。
usermod(選項)(引數)
-g<群組>:修改使用者所屬的群組;
-G<群組>;修改使用者所屬的附加群組;
-l<帳號名稱>:修改使用者帳號名稱;
-L:鎖定使用者密碼,使密碼無效;
-u<uid>:修改使用者ID;
-U:解除密碼鎖定。
2.3 passwd命令
用於設定使用者的認證資訊,包括使用者密碼、密碼過期時間等。系統管理者則能用它管理系統使用者的密碼。只有管理者可以指定使用者名稱稱,一般使用者只能變更自己的密碼。
passwd(選項)(引數)
引數即需要設定密碼的使用者名稱。
-d:刪除密碼,僅有系統管理者才能使用;
-l:鎖住密碼;
-u:解開已上鎖的帳號。
2.4 :groupadd
groupadd命令用於建立一個新的工作組,新工作組的資訊將被新增到系統檔案中。
groupadd(選項)(引數)
-g:指定新建工作組的id;
groupadd manager ##建立組manager
groupadd manager1 ##建立組manager1
groupadd manager1 ##建立組manager2
cat /etc/group ##檢視組資訊
cat /etc/gshadow ##檢視組密碼資訊
![圖片16 (2)](圖片16 (2).png)
2.5 groupmod命令
更改群組識別碼或名稱。需要更改群組的識別碼或名稱時,可用groupmod指令來完成這項工作。
groupmod(選項)(引數)
-g<群組識別碼>:設定欲使用的群組識別碼;
groupmod -g 888 manager
-n<新群組名稱>:設定欲使用的群組名稱。
group -o manager1 manager
2.6 groupdel
groupdel命令用於刪除指定的工作組,本命令要修改的系統檔案包括/ect/group和/ect/gshadow。若該群組中仍包括某些使用者,則必須先刪除這些使用者後,方能刪除群組。
groupdel(引數) 引數即要刪除的組名
groupdel manager
2.7 gpasswd
gpasswd命令是Linux下工作組檔案/etc/group
和/etc/gshadow
管理工具。
gpasswd(選項)(引數)
-a:新增使用者到組;
gpasswd -a user1 manager
顯示Adding user user1 to group manager
-d:從組刪除使用者;
gpasswd -d user1 manager
顯示Removing user user1 from group manager
2.8 id指令
id命令可以顯示真實有效的使用者ID(UID)和組ID(GID)。UID 是對一個使用者的單一身份標識。組ID(GID)則對應多個UID。id命令已經預設預裝在大多數Linux系統中。
id [-gGnru][--help][--version][使用者名稱稱]
-g或--group 顯示使用者所屬群組的ID。
id -g user1
-G或--groups 顯示使用者所屬附加群組的ID。
id -G user1
-n或--name 顯示使用者,所屬群組或附加群組的名稱。
id -name user1
-u或--user 顯示使用者ID。
id -u user1
2.9 更改密碼
更改密碼方式1
##修改使用者user2密碼(root使用者許可權)
passwd user2
New password:*******
Re-enter new password:*******
更改密碼方式2
##不通過互動資訊,直接改使用者密碼(root使用者許可權)
echo "root" | passwd --stdin root
2.10 切換使用者
su命令用於切換當前使用者身份到其他使用者身份,變更時須輸入所要變更的使用者帳號與密碼。
su +使用者名稱
su user3 #切換使用者為user3
2.11 切換使用者許可權使用
- sudo命令:使用某調命令的時候,臨時取得超級使用者的許可權,使用完畢之後,回到自己的許可權
![](圖片22 (2).png)
![](圖片23 (2).png)
![](圖片24 (2).png)
![](圖片25 (2).png)
2.11. 顯示當前登入使用者帳戶
whoami #顯示當前使用者
who #顯示當前線上使用者
last #最後登入是誰
last -n #最後登入的列表
2.12 檢視系統檔案判斷新增使用者組新增使用者操作是否正確
##檢視使用者資訊
cat /etc/passwd
##檢視使用者組的資訊
cat /etc/group
3.Linux下檔案許可權介紹
3.1 檢視當前位置及路徑切換
pwd 檢視當前位置
cd 切換檔案目錄
cd ~ #回到家目錄
cd - #回退到上一次所在位置
cd ../ #回到上一級目錄
cd ./ #當前目錄
cd #返回到當前使用者的家目錄
3.2 顯示當前目錄的檔案列表
ls -al /etc ##檢視根目錄下etc檔案下的所有檔案和目錄,包括隱藏檔案
3.3 遞迴顯示/目錄的檔案列表
ls -R /etc
3.4 顯示檔案或資料夾詳細資訊
許可權:讀取\寫入\可執行
歸屬關係:所有者\所屬組\其他使用者
-|rw-|---|---. 1 root root 1771 4月28 2015 anaconda-ks.cfg
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
①:檔案型別
- 檔案
d 目錄
l 連結
②:所有者許可權(u)
r 讀 4
w 寫 2
x 執行 1
③:所屬組許可權(g)
r 讀 4
w 寫 2
x 執行 1
④:其他使用者許可權(o)
r 讀 4
w 寫 2
x 執行 1
⑤:所有者
⑥:所屬組
⑦:檔案大小
⑧:最後修改時間
⑨:檔名
3.5 設定檔案所有者擁有對檔案讀寫執行許可權
chmod 777 /data0/my.cnf ##擁有所有許可權
chmod -x /data0/my.cnf ##刪除執行許可權
chmod -R 777 /data0 ##遞迴改許可權
chmod u g o +-rwx /1.txt ##使用者,同組,其他人
chown -R lucy:lucy /data0 ##修改所有者及組
4.Linux檔案資料夾操作
4.1 建立資料夾和檔案 (指定目錄和不指定目錄的區別)
mkdir /tmp/test01 ##建立空資料夾
mkdir -p /data1/hadoop/hdfs/name ##建立多級資料夾
touch /tmp/test01/file.txt ##建立空檔案
vi file.log ##建立空檔案並進入編輯模式
echo > file.txt ##建立file.txt並輸入空到該檔案中
4.2 複製檔案
cp /tmp/file.txt /opt
4.3 複製目錄
cp -r /tmp/test01 /opt
4.4 移動,剪下,重新命名
mv /opt/test01 /tmp ##移動目錄
mv /opt/file1.txt /tmp/file1.txt ##移動檔案
mv /opt/file1.txt /tmp/file2.txt ##移動檔案並重命名
mv /opt/test01 /tmp/test02 ##移動目錄並重命名
rename aoo aoo1 aoo? ##批量命名
##第一個引數:被替換掉的字串
##第二個引數:替換成的字串
##第三個引數:匹配要替換的檔案模式
##字母的替換
rename AA aa * ##把檔名中的AA替換成aa
##修改檔案的字尾
rename .html .php * ##把.html 字尾的改成 .php字尾
##批量刪除字尾
rename .txt '' * ##把所有以.txt結尾的檔名的.txt刪掉
4.5 刪除
rm ##刪除檔案
rm -r ##刪除目錄(遞迴刪除)
rm -f ##強制刪除
rm –rf folder ##常用命令 不可恢復
4.6 檔案內容檢視
cat -n ##檢視內容時顯示行號
cat /etc/redhat-release ##不顯示行號
cat -n /etc/passwd ##檢視內容時顯示行號
4.7 目錄檔案顯示多行可上下翻查
less /etc/passwd
4.8 顯示檔案的頭10行或尾10行
tail ##預設檢視檔案尾10行
head ##預設檢視檔案頭10行
-n 數字 ##檢視指定頭幾行
tail /etc/passwd
head /etc/passwd
tail -2 /etc/passwd ##檢視檔案尾2行
head -3 /etc/passwd ##檢視檔案頭2行
head -12 /etc/passwd | tail -5 ##查出前12行交給後面處理,即檢視前面命令查出內容的的後5行
tail -f /home/passwd ##監控檔案(監控檔案id)
tail -F /home/passwd ####監控檔案(監控檔名)
4.9 重定向 > >>
## > 先清空檔案內容,後寫入新的內容
ls -l /root > /tmp/file1.txt
## >> 追加新的內容,舊的內容不會消除
ls -l /root >> /tmp/file1.txt
4.10 螢幕列印 echo
echo "No Hello World..." ##列印到螢幕
echo “hello word” >/data0/my.cnf ##列印到檔案
echo “hello word” >> /data0/my.cnf ##列印追加到檔案
4.11 文字編輯器 VIM
vim file
:q ##退出
:w ##儲存
:wq ##儲存退出
:q! ##強制退出
:wq! ##強制儲存退出
vi/vim是Unix/Linux中最常用的文字編輯器,並且功能十分強大。但是它只有命令沒有介面。
![圖片1 (2)](圖片1 (2).png)
![](圖片2 (2).png)
![](圖片3 (2).png)
![](圖片4 (2).png)
![](圖片5 (2).png)
- 4.11.6 後臺掛起任務,後臺執行任務,調出後臺任務
ctrl + z #後臺掛起
jobs #檢視後臺掛起任務
fg jobid #顯示某個後臺掛起的任務
ping www.baidu.com >> 1.txt
按ctrl + z 使任務後臺掛起
5.12 gzip與gunzip
gzip命令用來壓縮檔案。gzip是個使用廣泛的壓縮程式,檔案經它壓縮過後,其名稱後面會多處“.gz”副檔名。gzip是在Linux系統中經常使用的一個對檔案進行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的、較少使用的檔案以節省磁碟空間,還可以和tar命令一起構成Linux作業系統中比較流行的壓縮檔案格式。
#gzip /home/data/1.txt
#gunzip /home/data/*.gz
5.13 bzip2與bunzip2
bzip2命令可以用來壓縮檔案,檔案經它壓縮後會另外產生具有“.bz2”副檔名的壓縮檔案。
bunzip2命令用於解壓縮由bzip2命令壓縮的“.bz2”壓縮包。
#gzip /home/data/1.txt
#gunzip /home/data/*.gz
5.14 打包 tar原理
-z ##壓縮或解壓縮
-c ##打包
-x ##解包
-f ##必須要
-C ##指定解包位置
-v ##輸出資訊
5.15 打包tar案例(tar命令平常就代替了gz命令)
##將一個檔案打包
tar -cvf folder.tar file1.txt
##將多個檔案打成一個包
tar -cvf folder.tar file1.txt file2.txt
tar –cvf file.tar *.jpg ##(常用方法)
##解包到當前目錄
tar -xvf folder.tar ##(常用方法)
##解包到指定目錄
tar -xvf folder.tar -C /home/sss
##將多個檔案打包並壓縮
tar -zcvf file.tar.gz folder1 floder2
##將檔案解包並解壓縮
tar -zxvf file.tar.gz ##(常用方法)
##使用tar備份指定目錄/data0/內容包括子目錄中內容備份至 /data3/data0.tar.gz
tar -zcvf /data3/data0.tartar.gz /data0
##恢復tar 檔案中的內容/data3/data0.tar.gz 至 /data2
tar -zxvf /data3/data0.tar.gz -C /data2
5.16 查詢命令所在位置
##查詢cmd命令所在路徑
which cmd
## which命令用於查詢並顯示給定命令的絕對路徑,環境變數PATH中儲存了查詢命令時需要遍歷的目錄。which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
which reboot
##whereis 查詢路徑中包含該字串。一般用於查詢軟體安裝位置.whereis命令用來定位指令的二進位制程式、原始碼檔案和man手冊頁等相關檔案的路徑。
whereis mysql
##locate 查詢檔案按所在,檔案查詢-效率很快(用的是資料庫)locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫/var/lib/mlocate/mlocate.db,這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。
locate httpd.conf
##find 檔案查詢-效率很慢 find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。
find / -name httpd.conf 檔名字是該字串的
find / -name *ss*
find / -size 4k ???查詢大於多少 小於多少
5. Linux網路與安全級別操作
5.1 修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
##網絡卡名稱
DEVICE=eth0
##網路型別為:Ethernet
TYPE=Ethernet
##唯一性
UUID=d06a4eee-dd5c-45e5-afbc-38a8a8440bd9
##開機啟動
ONBOOT=yes
##network mamager的引數 ,是否可以由NNetwork Manager託管
NM_CONTROLLED=yes
##設定為none禁止DHCP,設定為static啟用靜態IP地址,設定為dhcp開啟DHCP服務
BOOTPROTO=none
##mac地址
HWADDR=00:0C:29:74:E7:3E
##ip地址
IPADDR=192.168.10.11
##子網掩碼24位
PREFIX=24
##閘道器
GATEWAY=192.168.10.254
##dns 域名解析 第一個dns伺服器
DNS1=192.168.10.254
##就是default route,是否把這個eth設定為預設路由
DEFROUTE=yes
##如果ipv4配置失敗禁用裝置
IPV4_FAILURE_FATAL=yes
##禁止IPV6
IPV6INIT=no
##這個就是個網路連線的名字
NAME="System eth0"
5.2主機名配置檔案
##永久修改主機名(需要重啟伺服器)
vim /etc/sysconfig/network
HOSTNAME=teacher.tarena.com
##臨時修改主機名,使用hostname命令+空格+新主機名
hostname teacher.tarena.com
5.3 主機與IP地址對映檔案
##解析檔案
vim /etc/hosts
192.168.91.111 hadoop01
5.4 常見服務埠
web tcp 80
telnet tcp 23
ssh tcp 22
ftp tcp 20/21
smtp tcp 25
pop3 tcp 110
imap tcp 143
dns tcp/udp 53
可以參考/etc/services
5.5 關閉防火牆
##關閉防火牆
service iptables stop
##設定開機不啟動
chkconfig iptables off
##檢視防火牆狀態
service iptables status