前面的話
本文將詳細介紹Linux常見操作
基本概念
Linux嚴格區分大小寫,所有內容以文件形式保存,包括硬件
Linux沒有擴展名的概念,不靠擴展名來區分文件類型。但有一些約定俗成的擴展名
壓縮包: .gz .bz2 .tar.bz2 .tgz
二進制軟件包:.rpm
網頁文件: .html .php
腳本文件: .sh
配置文件: .conf
[注意]windows下的程序不能直接在linux中安裝和運行
Linux字符界面的優勢如下:
1、占用的系統資源更少
2、減少了出錯、被攻擊的可能性
【分區類型】
主分區:最多只能有4個
擴展分區:最多只能有1個,主分區加擴展分區最多有4個,不能寫入數據,只能包含邏輯分區
【硬件設置文件名】
硬件 設置文件名 IDE硬盤 /dev/hd[a-d] SCSI/SATA/USB硬盤 /dev/sd[a-p] 光驅 /dev/cdrom 或/dev/hdc 軟盤 /dev/fd[0-1] 打印機(25針) /dev/1p[0-2] 打印機(USB) /dev/usb/1p[0-15] 鼠標 /dev/mouse
【掛載】
必須分區 / (根分區) swap分區 (交換分區,內存2倍,不超過2GB) 推薦分區 /boot (啟動分區,200MB)
顯示
【起始標識】
[root@bogon ~]#
root表示當前登錄用戶為管理員
bogon表示主機名
~表示當前所在目錄
#是管理員的提示符
$是普通用戶的提示符
【命令格式】
當有多個選項時,可以寫在一起
選項包括簡化選項與完整選擇如-a 等于 --all
命令 [選項] [參數]
[注意]個別命令使用不遵循此格式
文件
【文件類型】
Linux包括以下7種文件類型,以文件位第一位來表示文件類型
- 文件
d 目錄
l 軟鏈接文件

除了上面這3種,還有塊設備文件、字符設備文件、套接字文件和管道文件。這4種文件都是linux系統中的特殊文件
【文件身份】
文件位共有10位組成,除了第1位表示文件類型外,后9位每3位為一組,表示文件的所有者、所屬組和其他人
【文件權限】
r讀
w寫
x執行
下面這個例子中,表示這是一個文件,所有者有讀寫權限,而所屬組和其他人只有讀權限

一般地,用戶在自己主目錄下擁有寫權限,主目錄之外只有讀權限。如果一定在要不具有寫權限的目錄下操作文件,如新建文件。則可以使用sudo命令,變身管理員,然后輸入管理員的密碼來執行這個操作
sudo touch aaa
【文件信息】
上面的例子中,兩個root之后,分別代碼文件大小、文件最后一次修改時間及文件名稱
[注意]linux中文件名以.開頭的文件是隱藏文件
【修改文件權限】
比如,將a.txt文件的權限變更為讀寫權限
chmod 666 a.txt

實際中使用 chmod 命令最多的一種情形可能是給自己寫的腳本加一個執行權限
chmod +x a.sh
【常用一級目錄作用】
/ 根目錄 /bin 存放系統命令 /sbin 存放只有管理員才能執行的系統命令 /usr 系統資源保存目錄,包含了一般不需要修改的應用程序,命令程序文件、程序庫、手冊和其它文檔 /usr/bin 存放系統命令 /usr/sbin 存放只有管理員才能執行的系統命令
/boot 存放內核以及啟動所需的文件等 /dev 存放設備文件 /etc 存放系統的配置文件
/lib 存放函數庫
/home 用戶文件的主目錄,用戶數據存放在此目錄中
/root 管理員的主目錄
/mnt 空目錄,存放臨時的映射文件系統,常把軟驅和光驅掛裝在這里的floppy和cdrom子目錄下
/media 空目錄,存放臨時的映射文件系統,老式linux無該目錄
/misc 空目錄,存放臨時的映射文件系統,老式linux無該目錄 /proc 不能直接操作,存放存儲進程和系統信息
/sys 不能直接操作,存放存儲進程和系統信息
/tmp 存放臨時文件的目錄
/var 包含系統產生的經常變化的文件
關機
關機
【shutdown】
shutdown [選項] 時間 選項: -c: 取消前一個關機命令 -h: 關機 -r: 重啟
shutdown -h now 立刻關機
【其他關機命令】
halt poweroff init 0
【其他重啟命令】
reboot init 6
【運行級別】
系統運行級別包括以下7個
0 關機 1 單用戶,安全模式 2 不完全多用戶,不含nfs服務 3 完全多用戶 4 未分配 5 圖形界面 6 重啟
cat /etc/inittab #修改系統默認運行級別 id:3:initdefault: runlevel #查詢系統運行級別
登錄
【查看登錄用戶信息】


【退出登錄】
logout
【who】


【查詢當前登錄和過去登錄的用戶信息】


【查看所有用戶的最后一次登錄時間】

shell
shell是一個命令行解釋器,它為用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可以用shell來啟動、掛起、停止甚至是編寫一些程序
shell還是一個功能非常強大的編程語言,易編寫,易調試,靈活性較強。shell是解釋執行的腳本語言,在shell中可以直接調用linux系統命令

【語法類型】
Bourne Shell: 主文件名為 sh
語法類型:sh、ksh、Bash、psh、zsh
C Shell : 主要在BSD版的Unix系統中使用
語法類型: csh、 tcsh
【查看當前系統的SHELL類型】

【編輯腳本】
vi hellp.sh

【退出腳本】
在vim中編輯好之后,按esc鍵,回到一般模式,再輸入“:wq”,回車執行
【腳本執行】
1、賦予執行權限,直接運行
chmod 755 hello.sh ./hello.sh
2、或者,可以通過bash調用執行腳本
bash hello.sh

VIM
VIM是linux系統中的編輯器,類似于windows系統中的記事本
【操作模式】
vim編輯器有三種模式:
1、命令模式(等待用戶輸入命令)
2、輸入模式(等待用戶向文本中輸入內容)
3、底行模式(可以輸入一些指令)
vim abc.sh 打開或創建并打開abc.sh文件
i
進入vim之后,vim進入命令模式,這時敲擊i鍵,可以把命令模式切換到輸入模式,這時就可以輸入內容了
ESC
在輸入完成之后 ,敲擊ESC鍵,可以把輸入模式切換到底行模式,輸入:wq即可保存退出
【命令格式】
vim + abc.sh 打開文件后將光標定位到文件的最后一行
vim +3 abc.sh 打開文件后將光標定位到文件的第三行
vim +/123 abc.sh 打開文件后將光標定位到123第一次出現的那行,進入文件后,可以按n鍵使光標在多個123中切換
【常用指令】
1、底行模式
:w 保存 :q 退出 :! 強制執行 :ls 列出當前編輯器中打開的所有文件 :n 切換到下一個文件 :N 切換到上一個文件 :15 光標快速定位到15行 /xxx 從光標位置開始向后搜索第一次出現xxx的行 ?xxx 從光標位置開始向前搜索第一次出現xxx的行
2、命令模式
h 光標左移 j 光標下移 k 光標上移 l 光標右移 Ctrl+f 向下翻頁(front) Ctrl+b 向上翻頁(back) ctrl+d 向下翻半頁(down) Ctrl+u 向上翻半頁(up) dd 刪除光標所在行 o 在光標所在行的下方插入一行并切換到輸入模式 yy 復制光標所在的行 p 在光標所在行的下方粘貼 P 在光標所在行的上方粘貼
輸入輸出

【輸出重定向】


【輸入重定向】
wc [選項] [文件名] 選項: -c 統計字節數 -w 統計單詞數 -l 統計行數
命令<文件把文件作為命令的輸入
命令<<標識符把標識符之間的內容作為命令的輸入
進程管理
Linux 系統上有一個命令ps用來報告系統當前的進程狀態
$ ps aux
上面指令可以查看系統當前所有進程
$ kill 1234
上面指令可以強制關閉進程號為1234的進程
$ bg
上面指令讓程序變成后臺執行
$ fg
上面指令讓程序回到前臺
磁盤管理
【df】查看磁盤分區使用狀況
-I 僅顯示本地磁盤(默認) -a 顯示所有文件系統的磁盤使用情況 -h 以1024進制計算最合適的單位顯示磁盤容量 -H 以1000進制計算最合適的單位顯示磁盤容量(新購買的U盤實際容量小于標識容量,是因為工業生產使用1000進制,而不是1024進制) -T 顯示磁盤分區類型 -t 顯示指定類型文件系統的磁盤分區 -x 不顯示指定類型文件系統的磁盤分區

【du】統計磁盤上的文件大小
-b 以Byte為單位統計文件 -k 以KB為單位統計文件 -m 以MB為單位統計文件 -h 按照1024進制以最適合的單位統計文件 -H 按照1000進制以最適合的單位統計文件 -s 指定統計目標

【MBR分區】
fdisk -l 查看當前磁盤分區

fdisk /dev/sdb 進入分區模式

通過下面的命令為磁盤分得一個3GB的主分區

分配結束后,輸入p命令來查看分區信息

最后輸入w來保存并結束當前分區結果

【GPT分區】
MBR分區的限制在于主分區不超過4個,單個分區容量最大為2TB。而GPT分區最多支持128個分區,單個分區容量最大為18EB
1EB = 1024PB 1PB = 1024TB 1TB = 1024GB
GPT分區中,不適合安裝X86架構的系統,即32位操作系統
fdisk命令只適合于MBR分區,而parted命令同時適合于MBR分區和GPT分區
[注意]下面分區從1M開始是為了保持4K對齊

【分區格式化】
先使用ll /dev/sdb*來查看sdb的分區情況

使用mkfs命令來進行分區格式化
[注意]擴展分區不能進行分區格式化
mkfs .ext4 /dev/sdb1
【掛載】
格式化后的分區必須進行掛載操作,才能使用。一般地,掛載在mnt目錄下
下面代碼中,將sdb1掛載到mnt目錄下的sdb1目錄中
mkdir -p /mnt/sdb1
mount /dev/sdb1 /mnt/sdb1
通過mount命令掛載的分區不具有永久性,關機后失效。更好的方式是需要編輯etc目錄下的fstab文件
vim + /etc/fstab

這樣一來,即使系統重啟,也會進行自動掛載
【swap交換分區】
在linux中添加swap交換分區的步驟如下
1、先建立一個linux普通分區 (用MBR建立)輸入fdisk /dev/sdb
2、修改分區類型的16進制:輸入t,再輸入該硬盤的分區號如6,再輸入16進制的編碼L。修改編碼83,改為82(swap類型)輸入w保存退出
3、格式交換分區 mkswap /dev/sdb6
4、啟動分區 swapon /dev/sdb6
5、關閉分區 swapoff /dev/sdb6
用戶管理
linux允許多個用戶在同一個時間登錄同一個操作系統
【group】
/etc/group 存儲當前系統中所有的用戶組信息
Group: x : 123 :abc,def,xyz 組名稱:組密碼占位符:組編號:組中用戶名列表
當用戶組名稱與用戶名相同時,可以省略用戶名列表的信息
組編號0為root,1-499為系統保留組編號,一般用于安裝在系統中的軟件或服務;用戶手動創建的用戶組從500開始

【gshadow】
/etc/gshadow 存儲當前系統中用戶組的密碼信息
Group: * : : abc,def,xyz
組名稱:組密碼:組管理者:組中用戶名列表
該文件中的內容與group里面的內容一一對應

【passwd】
/etc/passwd 存儲當前系統中所有用戶的信息
user: x : 123 : 456 : xxxxxxx :/home/user:/bin/bash 用戶名:密碼占位符:用戶編號:用戶組編號:用戶注釋信息:用戶主目錄:shell類型

/etc/shadow存儲當前系統中所有用戶的密碼信息
user :vf;/Zu8sdf...:::::
用戶名: 密碼 :::::

由于系統運行過程中,group和passwd這兩個文件經常需要被讀取,而密碼又屬于敏感數據,于是單獨設置了gshadow和shadow來保存密碼
【基本命令】
groupadd 用戶組名 #創建用戶組 groupmod -n 新組名 原組名 #修改用戶組名 groupmod -g 組編號 組名稱 #修改組編號 groupadd -g 組編號 組名稱 #創建用戶組并指定組編號 groupdel 組名稱 #刪除用戶組 useradd -g 用戶組 用戶 #向指定用戶組中添加用戶 useradd -d 文件夾 用戶 #創建用戶并指定用戶的個人文件夾 usermod -c 備注信息 用戶 #給用戶添加備注信息 usermod -l 新用戶 原用戶 #修改用戶名 usermod -g 目標用戶組名 用戶 #切換用戶組
userdel 用戶名 #刪除用戶 userdel -r 用戶名 #刪除用戶及對應的個人文件夾 touch /etc/nologin #禁止除root外的用戶登錄服務器
passwd abc #給用戶adc設置密碼
[注意]在centos系統下,使用useradd會默認在home目錄下,新增一個與用戶名同名的目錄。如果是ubuntu系統,默認不創建目錄,如果需要則添加-m參數
【進階命令】
passwd -l 用戶名 #鎖定用戶 禁用 passwd -u 用戶名 #解鎖用戶 passwd -d 用戶名 #清除用戶密碼,可以無密碼登錄
用戶可以同時屬于多個組,一個是主要組,其他的為附屬組
gpasswd -a 用戶名 附屬組,附屬組,..... #添加附屬組
用戶創建的文件默認為主要組;需要以附屬組創建文件的,需將身份切換到附屬組
newgrp 附屬組名稱 #切換附屬組
[注意]需要用戶登錄后,自己執行,切換,組密碼是在組切換時用的,如果有,會要求輸入組密碼
gpasswd -d 用戶名 附屬組 #刪除附屬組
useradd -g group1 -G group2,group3,.... #創建用戶同時指定主要組和附屬組
gpasswd 用戶組 #設定組密碼
[注意]輸入后回車,會有提示讓輸入密碼
su username #切換當前用戶身份,su后不加參數切換到root
sudo su #切換到root用戶
whoami #顯示當前登錄用戶名
id 用戶名 #顯示制定用戶信息,包括用戶編號,用戶名,主要組編號及名稱,附屬組列表
groups 用戶名 #顯示用戶所在的所有組
chfn 用戶名 #設置用戶資料
finger 用戶名 #顯示用戶詳細資料
端口設置
查看某個端口被占用情況
lsof -i:8081

然后使用kill -9命令來結束進程
kill -9 18446
文章列表