本節主要講解的是Linux系統的基礎,
文章目錄
- 1. Linux的檔案系統結構
- 1.1 Linux檔案系統,從/開始
- 1.1.1 /bin、/sbin和/usr/bin、/usr/sbin的區別
- 2. Linux的常用命令
- 2.1 Shell命令
- 2.2 常用Shell命令——切換用戶
- 2.3 常用Shell命令——vi
- 2.4 常用Shell命令——檔案操作
- 2.5 常用Shell命令——chmod chown檔案權限的命令
- 2.6 常用Shell命令——系統維護相關的命令
- 2.7 常用Shell命令——跟用戶和組相關的命令
- 2.7 常用Shell命令——打包、解壓縮相關的命令
- 2.8 安裝軟體的幾種方式
1. Linux的檔案系統結構
1.1 Linux檔案系統,從/開始
Linux的檔案系統和MS-Windows的檔案系統有很大的不同,
Linux只有一個檔案樹,整個檔案系統是以一個樹根“/”為起點的,所有的檔案和外部設備都以檔案的形式掛接在這個檔案樹上,包括硬碟、軟盤、光驅等,
經常,我們能夠接觸到的Linux發行版本的根目錄大都是以下結構:
/bin /etc /lost+found /sbin /var /boot /root
/home /mnt /tmp /dev /lib /proc /usr
/bin和/sbin
使用和維護Linux系統的大部分基本程式都包含在/bin和/sbin里,
/bin
目錄通常用來存放所有用戶最常用的基本程式,如:login、shells、檔案操作實用程式、 系統實用程式、 壓縮工具,
/sbin
目錄通常存放的是管理員會用到的命令:fdisk、shutdown等等,
兩個目錄的主要區別是:/sbin中的程式只能由root(管理員)來執行.
ps:查看某個目錄下的所有檔案 ,可以用ls /bin
/etc
這個目錄一般用來存放系統級別的組態檔,其中的一些重要檔案如: passwd、shadow、fstab、hosts、profile、shells、services等等,
/lost+found
這個目錄專門是用來放那些在系統非正常關機后重新啟動系統時,不知道該放哪里恢復使用的“流浪”檔案的,
/boot
這個目錄下面存放著和系統啟動有關的各種檔案,包括系統的引導程式和系統核心部分,
/root
這是系統管理員(root)的主目錄,
/home
系統中所有用戶的主目錄都存放在/home中,
/mnt
按照約定,像CD-ROM、軟盤、U盤,或者磁帶這樣的可以移動的介質都應該安裝在/mnt目錄下,/mnt目錄通常包含一些子目錄,每個子目錄是某種特定設備型別的一個安裝點,例如:/cdrom 、/floppy…如果我們要使用這些特定設備,我們需要用mount命令從/dev目錄中將外部設備掛載過來,
/tmp和/var
這兩個目錄用來存放臨時檔案和經常變動的檔案,其中/var經常作為www主目錄存放網站代碼,
/usr
按照約定,這個目錄用來存放與用戶相關的程式或檔案,這里面也有一個bin和一個sbin子目錄,
1.1.1 /bin、/sbin和/usr/bin、/usr/sbin的區別
如果是用戶和管理員必備的二進制檔案,就會放在/bin;
如果是系統管理員必備,但是一般用戶根本不會用到的二進制檔案,就會放在 /sbin,
如果不是用戶必備的二進制檔案,多半會放在/usr/bin;
如果不是系統管理員必備的工具,如網路管理命令,多半會放在/usr/sbin,
2. Linux的常用命令
有些人仍然會有這種的想法,他們認為使用Linux就必須使用Linux shell命令,但事實不是這樣的!你可以不懂得任何Linux命令,比如說ps,grep,ls等,但是你仍然可以使用很多現代的Linux桌面發行版,
Linux的系統管理員與桌面用戶不一樣,他們不像桌面用戶一樣使用Cinnamon, GNOME, Unity, 或者 KDE,他們所有的時間都是用Linux命令,
對于桌面用戶來講,若是了解一部分Linux命令,你可以更好的使用Linux,體驗它的魅力,下面列舉出了一些
2.1 Shell命令
你可以通過打開Linux的terminal(終端)來執行Shell命令,Shell的種類有很多種,例如CSH,Bourne Shell,Korn Shell,在現在的大多數Linux發行版中,默認的Shell一般都是Bourne again shell(bash).
想看看你的Shell是哪一種,執行下面的命令
echo $SHELL
在Linux中,$ 符號代表一個shell 變數,所有的shell都用這種方式使用變數,有一些shell變數在你的系統啟動的時候就有了默認值,例如,$ SHELL;$ LOGNAME是你的登錄名,而$PATH變數指明了你的shell命令的搜索范圍,
echo命令的作用就是列印出你的輸入,如果你的輸入具有shell的特殊意義,例如shell變數,他就輸出變數的值,
Shell命令基本語法:
command -option file
如 ls -la
l代表 long,a代表all
還有命令管道pipe,也可以幫我們把多個命令串聯起來,它的符號是 |
ls -la | more
還可以在命令中使用通配符(代表任何未知的字符),如*就代表任意字串,? 代表單個字符
ls -l a *
ls a?cd
man
如果你想了解每一個命令代表什么含義以及他的用法,你就可以使用man(意義為manual)命令
man ls
2.2 常用Shell命令——切換用戶
su:切換用戶的命令,如su root或者su david,若su后面為空則代表切換到root賬號,
注意:su 還可以有帶-的用法,和不帶-的區別:
1 su root(或su 其他賬號):表示不切換環境變數到當前用戶,仍然使用之前用戶的環境變數,
2 su - root(或su - 其他賬號):表示切換當前的環境變數到新用戶環境變數,
通俗理解,su - 賬號切換的更徹底,
比如在執行root才能運行的命令時,例如useradd、userdel、shutdown、halt,必須要切換到root
sudo
表示臨時獲取root權限,如此時想添加一個戶,必須要以root身份才可以,用sudo useradd abc可以添加一個abc賬號,(該程序不要求輸入root密碼,這是和su命令不同的地方)
在使用Linux系統程序中,通常情況下,我們都會使用普通用戶進行日常操作,而root用戶只有在權限分配及系統設定時才會使用,而root用戶的密碼也不可能公開,普通用戶執行到系統程式時,需要臨時提升權限,sudo就是我們常用的命令,僅需要輸入當前用戶密碼,便可以完成權限的臨時提升,
grep
grep是一種強大的文本搜索工具,它能使用正則運算式搜索文本,并把匹配的行列印出來,
grep foo /etc/passwd
回傳在password檔案中所有的含有foo的行
grep -i “foo” /etc/passwd
-i選項是忽略大小寫,這就意味著若某一行含有FOO或FOo也會被搜索到
grep -r “foo” /etc/passwd
這條命令將會搜索/etc/passwd目錄及其子目錄下所有的包含“foo”的行
ls -la | grep foo*
列出當前目錄下任何以foo開頭的檔案或目錄,例如如下檔案將被匹配:foo,foobar,foolish.txt等
ps
報告行程的狀態,此命令將顯示哪些程式正在運行,
ps -ef | grep firefox
查找firefox行程
找到行程id后,可以通過kill id殺掉某個行程
kill 1234
clear
清屏
uname: uname -a命令用一行簡短的給你總結的電腦的基本資訊,這通常包括你的電腦名稱,Linux內核版本,你的發行版名稱等,
cat /proc/version:展示你的當前運行的Linux發行版的詳細資訊,
hostname
顯示主機名
2.3 常用Shell命令——vi
vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強大不遜色于任何最新的文本編輯器,這里只是簡單地介紹一下它的用法和一小部分指令,
vi的基本概念 :基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:
1) 命令列模式(command mode)
控制螢屏游標的移動,字符、字或行的洗掉,按i進入到插入模式,
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令列模式, 按:回到底行模式
3) 底行模式(last line mode)
將檔案保存或退出vi,也可以設定編輯環境,如尋找字串、列出行號……等,
對于第一次用vi,有幾點注意要提醒一下
1、用vi打開檔案后,是處于「命令列模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字,切換方法:在「命令列模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了,
2、編輯好后,需從插入模式切換為命令列模式才能對檔案進行保存,切換方法:按「ESC」鍵,
3、保存并退出檔案:在命令模式下輸入:wq即可(別忘了wq前面的冒號) :q! 為強制不保存退出
進入vi的命令
vi filename :打開或新建檔案,并將游標置于第一行首,
命令列模式下:
移至上下左右 kjhi
移至行首和行尾 ^和$
移至段落開頭和結尾 { }
向前和向后翻屏 Ctrl+f 和 Ctrl+b
在游標前或者后插入字符 i或a
插入新的一行 o
洗掉游標后的字符 x (如果是洗掉游標后的3個字符,則是3x) 大寫的X是洗掉游標前的字符
洗掉整行 dd
洗掉從游標開始的3行 3dd
復制整行 yy
復制從游標所在的3行 3yy
粘貼 p
取消操作 u
底行模式:
w filename 保存當前編輯到filename檔案名
wq filename 保存到指定檔案并退出
wq 保存并退出
q! 放棄所有修改,直接退出vi
2.4 常用Shell命令——檔案操作
cp
檔案復制,
cp fred.txt ethel.txt
把fred.txt中的內容復制到當前檔案夾中名為ethel.txt中
cp fred.txt /home/sjvn/docs/fred.txt
把fred.txt復制到指定檔案中,
cp * .txt /home/sjvn/docs/
復制當前目錄下所有以.txt結尾的檔案到指定的目錄下,
cp -r /home/sjvn/docs/* /home/sjvn/backup,
mv
檔案移動或重命名move,
mv fred.txt ethel.txt
也可以實作檔案或目錄重命名的功能.
rm
洗掉檔案,也可以洗掉非空目錄,
rm -i abc.txt 帶上-i引數有確認功能
rm -r /abc 遞回洗掉
rm -rf /abc 遞回強制洗掉(慎重使用)
cd
切換到其他目錄,
cd ~ 切換到自己的家目錄
mkdir
創建目錄,
rmdir
只能洗掉非空目錄,-p可以級聯洗掉
more和less
這是兩個顯示一般文本檔案的指令,
如果一個文本檔案太長了超過一個螢屏的畫面,用cat來看實在是不理想,就可以試試more和less兩個指令,More指令可以使超過一頁的檔案臨時停留在螢屏,等你按任何的一個鍵以后,才繼續顯示,而less除了有more的功能以外,還可以用方向鍵往上或往下的滾動檔案,所以你隨意瀏覽,閱讀文章時,less是個非常好的選擇,
cat
顯示或連結一般的文本檔案,
cat text顯示text這個檔案
cat file1 file2 依順序顯示file1,file2的內容
cat file1 file2>file3 把file1,file2的內容結合起來,再“重定向(>)”到file3檔案中,
ln
建立連接,它的功能是為某一個檔案在另外一個位置建立一個不同的鏈接,這個命令最常用的引數是-s,具體用法是:
ln –s 源檔案 目標檔案
如:ln -s /home/david/abc link
logout
注銷當前用戶
2.5 常用Shell命令——chmod chown檔案權限的命令
ls -al:顯示所有檔案的所有資訊,
d-rw-r–r– 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
橫線代表空許可,r代表只讀,w代表寫,x代表可執行,注意這里共有10個位置,第一個字符指定了檔案型別,在通常意義上,一個目錄也是個檔案,如果第一個字符是橫線,表示是個非目錄的檔案,如果是d,表示是個目錄,
-rw-r–r--拆分如下:
rw- r-- r–
普通檔案 檔案主 組用戶 其他用戶
chmod [who] [+ | - | =] [mode] 檔案名
命令中各選項的含義為:
操作物件who可是下述字母中的任一個或他們的組合:
u 表示“用戶(user)”,即檔案或目錄的所有者,
g 表示“同組(group)用戶”,即和檔案屬主有相同組ID的所有用戶,
o 表示“其他(others)用戶”,
a 表示“所有(all)用戶”,他是系統默認值,
運算子號能是:
\+ 添加某個權限\- 取消某個權限\ = 賦予給定權限并取消其他所有權限mode所表示的權限可用下述字母的任意組合:
r 可讀\w 可寫\x 可執行
例如 : chmod a+r /home/david/abc
修改權限除了用剛才的文字設定法,還可以使用數字設定法:
我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然后將其相加,所以數字屬性的格式應為3 個從0到7的八進制數,其順序是(u)(g)(o)
如
chmod 440 /home/david/abc
chmod 777 /home/david/abc 任何人對abc目錄都有寫權限
chown
將指定檔案的擁有者改為指定的用戶或組,
系統管理員經常使用chown命令,在將檔案拷貝到另一個用戶的名錄下之后,讓用戶擁有使用該檔案的權限,
格式:chown [選項] [所有者][:[組]] 檔案
如 chown mail:mail log2012.log 修改該檔案的擁有者為mail群組的mail用戶
如 chown -R -v root:mail test6
-R是遞回處理該目錄及其子目錄下的所有檔案
-v是顯示處理的詳細資訊
2.6 常用Shell命令——系統維護相關的命令
whoami:顯示用戶名,類似的還有logname命令!
who:單獨執行who指令會列出登入帳號,使用的終端機,登入時間以及從何處登入或正在使用哪個X顯示幕,
w:執行這項指令可得知目前登入系統的用戶有那些人,以及他們正在執行的程式,
login和logout:登入和登出系統,
last:列出目前與過去登入系統的用戶相關資訊
date:顯示當前日期
id:顯示用戶的ID,以及所屬群組的ID
shutdown:shutdown now立即關機或shutdown -r重啟
halt:只關系統不關電源, halt -p關閉電源
reboot:重啟
free:顯示記憶體狀況,
2.7 常用Shell命令——跟用戶和組相關的命令
useradd
新建用戶,
useradd可用來建立用戶帳號,帳號建好之后,再用passwd設定帳號的密碼.而可用userdel洗掉帳號,使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文本檔案中,
useradd -g ftp -d /home/ftp -s /sbin/nologin ftpuser
userdel
洗掉用戶,
若不加引數,則僅洗掉用戶帳號,而不洗掉相關檔案,
引數: -r 洗掉用戶home目錄,
usermod
修改用戶,
常用引數
-d 指定用戶主目錄
-g 指定用戶所屬主群組
-G 指定用戶的附屬群組,多個逗號隔開
-L 鎖定用戶密碼
-U 解鎖用戶
-s 修改用戶指定的shell
-u 修改用戶的uid
groupadd
創建群組,
groupadd -g gid groupname
groupdel
洗掉群組,
groupdel groupname
倘若該群組中仍包括某些用戶,則必須先洗掉這些用戶后,方能洗掉群組
2.7 常用Shell命令——打包、解壓縮相關的命令
在壓縮檔案之前,一般都要先打個包,
打包檔案:
tar -cvf 打包檔案名.tar *.txt
-c是create的意思打包模式,-f 是file指明打包檔案名
tar:打包
解包檔案:
tar -xvf 打包檔案名.tar
-x是解包的意思 extract
打包之后,便可以壓縮檔案,gzip是Linux下常用的壓縮程式,
壓縮檔案:
gzip file.tar(原來的檔案會消失)
解壓檔案:
gzip -d file.tar.gz(原來的檔案會消失)
剛才的操作是先打包再壓縮,通常情況下,可以一條命令更方便,
一步壓縮檔案:
tar zcvf * (多個檔案以空格隔開或者采用通配符 )
一步解壓檔案:
tar zxvf file.tar.gz
也支持普通的zip\unzip,
zip壓縮檔案:
zip -r 壓縮檔案.zip 要壓縮的檔案或者目錄
unzip解壓檔案:
unzip 壓縮檔案.zip -d 解壓縮的目錄位置
2.8 安裝軟體的幾種方式
常見的幾種方式:
- rpm:RPM是Red Hat公司隨Redhat Linux推出了一個軟體包管理器,通過它能夠更加輕松容易地實作軟體的安裝,
- yum安裝(Ubuntu下是apt-get)
- 原始碼編譯安裝
將安裝檔案拷貝至你的目錄中/usr/src,然后使用rpm來安裝該檔案,命令如下:
#rpm -ivh filename.i386.rpm
rpm將自動將安裝檔案解包,并將軟體安裝到預設的目錄下,并將軟體的安裝資訊注冊到rpm的資料庫中,
1.安裝軟體:執行rpm -ivh rpm包名,如:
#rpm -ivh apache-1.3.6.i386.rpm
2.升級軟體:執行rpm -Uvh rpm包名,
3.反安裝:執行rpm -e rpm包名,
4.查詢軟體包的詳細資訊:執行rpm -qpi rpm包名
5.查詢所有安裝的rpm包:執行rpm -qa
Yum(全稱為 Yellow dog Updater)是一個在Fedora和RedHat以及CentOS中的軟體包管理器,
基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包.
1.安裝軟體:yum install 包名
2.更新和升級軟體:yum update 包名、yum upgrade 包名
3.洗掉程式:yum remove 包名
4.查詢軟體包的詳細資訊:yum info 包名
5.顯示軟體包依賴:yum deplist 包名
5.清理快取:yum clean, yum clean all
常見的原始碼編譯,一般也就是如下幾步:
tar -xvf xxxx.tgz
./configure --prefix=/opt/xxxx
make
make install
一般來說,這類軟體的默認安裝目錄都是/usr/local,最終檔案會被分別放在/usr/local的bin、lib、share、man目錄下,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266757.html
標籤:其他
