1.免費/開源;
2.支持多線程/多用戶;
3.安全性好;
4.對內存和文件管理優越。
Linux最小只需4M ——> 嵌入式開發
Linux系統所有軟硬件都是以文件的形式存在,可以自由設置、掛載、卸載。了解Linux文件目錄,是學習Linux的關鍵。
主要目錄
/ :Linux文件系統的上層根目錄,主目錄。
/root :超級管理員的主目錄,存放root用戶相關文件。
/home :一般用戶目錄或FTP站點目錄,存放普通用戶文件。
/etc :存放系統配置相關文件。
/boot :存放Linux系統啟動所需文件,相關引導文件。
/dev :系統設備文件,如:硬盤、打印機。
/mnt :裝置文件系統的加(掛)載點。如:光驅、軟盤等的掛載目錄。
/proc :當前系統核心與程序執行的信息。(process,系統當前運行的進程信息。)
/usr :存放系統應用程序和相關文件,類似於win的Program Files。
/var :存放系統經常變動的文件,如日志文件、用戶郵件。
/tmp :系統零時文件目錄(如安裝程序過程中產生的零時文件),每個用戶都可以對他進行讀寫操作,一段時間不使用系統會自動刪除該目錄下的文件。
/bin :存放可執行命令的目錄,系統任何用戶均可執行該目錄下的命令。
/sbin :存放系統啟動時所需執行的命令的目錄,該目錄裡的命令需要高級權限的用戶才可使用。
swap :相當於windows的虛擬內存。
當前目錄:pwd
相對路徑:指從當前目錄去訪問某個文件(夾)
絕對路徑:指從根目錄(/)去訪問某個文件(夾)
綠色 ---->代表可執行文件
紅色 ---->代表壓縮文件
深藍色---->代表目錄
淺藍色---->代表鏈接文件
灰色 ---->代表其它的一些文件
Linux系統分區和windows一樣,怎麼分,分多大因人而異,基礎分區如下:
/ 根目錄分區(一般大小為分完其他分區後硬盤剩余的總量)
/boot 系統啟動、引導分區,大小隨意( 最好200+ M)。
swap 相當於win的虛擬內存,大小為內存兩倍,最好1024M以上。
分好區後,需要安裝軟、硬件可直接通過/mnt 掛載上去,不需要的時候再卸載。
(文件掛載先將其轉換成ISO格式)
修改IP的三種方法
第一種(在gui視圖模式下配置):
命令:/etc/rc.d/init.d/network restart
第二種(快速修改):
廣播地址和dns使用默認的。
注:此操作網絡配置會立即生效,但只是臨時生效,系統重啟會恢復到之前的。
第三種(修改最底層的網卡文件內容):
命令:/etc/rc.d/init.d/network restart
設置系統日期
data MMDDHHMMCCYY.SS
//修改系統時間,後面字母代表:月月日日時時分分年年年年.秒秒
查看月歷:cal 5 2016 //查看2016年5月的月歷
查看年歷:cal 2016 //查看2016年的整年日歷
用戶的環境變量:/home/用戶/.bash_profile
系統環境變量:/etc/profile
配置.bashrc 文件可以指定某些程序在用戶登陸的時候自動啟動:
對系統某個用戶在:/home/用戶/.bashrc
整個系統(所有用戶):/etc/bashrc
Linux啟動過程分析
終止以K開頭的服務,啟動以S開頭的服務(如下圖init為5)
添加用戶:useradd 用戶名(useradd aaa)
設置/修改密碼:passwd 用戶名(passwd aaa)
添加用戶組:groupadd 用戶組名(groupadd root123)
將用戶添加到某用戶組:
useradd –g 用戶組 用戶(useradd –g root123 aaa)
修改用戶屬性(需root權限)
usermod –g 用戶組 用戶
usermod –d 目錄 用戶名 //改變用戶登陸的初始目錄
usermod -s shell類型 用戶名
usermod -c 注釋 用戶名
usermod -u 用戶編號 用戶名
刪除用戶:userdel aaa (刪除用戶,但/home下用戶主目錄文件信息仍存在)
userdel –r aaa (徹底刪除用戶及用戶所有文件信息)
查看系統中所有用戶:
cat /etc/passwd
查看系統所有用戶組:
cat /etc/group
默認情況下新建一個用戶,就會生成一個以該用戶名命名的用戶組。
進程:
進程與線程:
進程:正在執行的程序。
線程:1. 輕量級的進程;
查看進程:1. ps –aux (當前運行進程,靜態)
終止進程:
kill 進程號( PID )
eg:kill 16251 //終止進程號為16251的進程
kill -9 16251 //某些進程不能被殺,使用 -9 參數強制終止進程
顯示網絡狀態命令:netstat
此命令用來顯示整個系統目前的網絡情況。如連接、數據包、路由表內容。
netstat –an 顯示所有端口和連接信息(包括遠程鏈接到本機的ip)
netstat –anp 與上面想比,多顯示進程號(PID),推薦使用此命令
顯示數據包經過歷程命令:traceroute
此命令用來檢測數據包在網絡上傳輸的過程,可顯示本機到目標主機所經歷路由的完整路徑。
traceroute + 參數 + 目標IP或網址 //參數可忽略,相當於win下的tracert。
eg:traceroute www.baidu.com
route –n 顯示本機網關、路由情況。
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)
ps工具標識進程的5種狀態碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
文件所有者:
文件是哪個用戶創建的,它的所有者就是該用戶。
ls –ahl 查看文件所有者
// a代表顯示所有,包括隱藏文件;h代表輸出文件大小;l代表用長列表顯示,顯示更詳細內容。
修改文件所有者:chown 用戶名 文件名
修改文件夾所有者:chown –r 用戶名 文件夾目錄 //Linux中-r 為遞歸的意思。
文件所在組:
文件是哪個用戶創建的,它的所在組就是該用戶所在組。
ls –ahl 查看文件所在組(如上)
修改文件所在組:chgrp 組名 文件名
文件和目錄權限:
rwx = 421 //讀寫執行
chmod 777 aaa //賦予文件aaa最高權限
文件賦權執行上面格式即可,下面做詳細诠釋。
chmod u=rwx,g=rx,o=rx aaa
//相當於chmod 755 aaa;u代表user;g代表group;o代表other
chmod u-x,g+w aaa //給aaa去除用戶執行權限,增加用戶組寫的權限
Linux運行級別 init [0123456]
運行級別 0:關機 //shutdown –h now也可立即關機
1:單用戶
2:多用戶狀態沒有網絡服務
4:系統未使用保留給用戶
5:圖形界面
6:系統重啟 //reboot
常用運行級別是3和5,修改系統啟動默認的運行級別:
/etc/inittab文件中的id:5:initdefault中的數字。
查看用戶當前運行級別命令:runlevel 或 who -r
若不慎將默認運行級別設置為6,系統將不斷重啟。
解決:在啟動界面按e,進入第二個界面選中第二行按e,然後輸入1(以單用戶啟動,且進入不需要密碼,也可用於忘記密碼時進入然後重設密碼),進入init 1級別用命令改回文件的默認運行級別。
Linux常用命令
有問題用man命令(manual指南,相當於dos下的help)
eg :#man grep(後直接接命令)
ls:查看文件目錄,等於dir
ls –l 用長列表顯示,顯示更詳細內容;
ls –a 顯示隱藏文件;
ls –h 顯示文件大小。
重定向命令:
ls –l > a.txt 將顯示的內容寫入a.txt(覆蓋原內容)
ls –al > aa.txt 將現實的內容追加到文件aa.txt的末尾(不覆蓋原內容)
lsb_release -a //查看版本信息
uname -a //可顯示電腦以及操作系統的相關信息。
cat /proc/version //說明正在運行的內核版本。
cat /etc/issue // 顯示的是發行版本信息
touch:創建空文件
mkdir:創建文件夾
vi:編輯文件,當文件不存在時可創建文件
cat:查看文件內容
cp:復制命令
cp –r aaa bbb (遞歸復制,將aaa文件及子文件復制到bbb)
mv:移動文件或重命名
rm:刪除文件
rm –rf * 刪除文件夾所有內容(包括目錄及子文件)
r 遞歸 f 強制
ln:建立符號鏈接,相當於建立快捷方式link。
ln –s 源文件路徑 目標文件路徑
eg:ln –s /root/abc3.java toabc3
//建立後顯示如下(文件屬性前會多個l,代表ln命令建立的)
more:分頁顯示文件內容,按空格查看下一頁,不可查看上一頁內容
less:分頁顯示文件內容,空格查看下一頁內容,上下鍵也可查看上/下一頁內容
grep:顯示文本中查找的內容(grep只顯示查找的內容,cat顯示文本所以內容)
grep –n 顯示內容所在行數
|:管道命令,把上一個命令的結果交給 | 後面的命令處理。(一條命令可有多個管道命令)
find:文件查找
find 文件路徑 –name 文件名
eg:find / -name aaa.txt 全目錄查找aaa.txt (路徑越詳細查找越快)
★ 搜索一段時間內被存取/變更的文件或目錄:
find /hoem –amin -10 //查找十分鐘內存取的文件或目錄
find /hoem –atime -10 //查找十小時內存取的文件或目錄
find /hoem –cmin -10 //查找十分鐘內更改過的文件或目錄
find /hoem –ctime +10 //查找十小時前更改過的文件或目錄
find /hoem –size +10k //查找/home目錄下大於10k的文件
a:access 存取 c:change 更改
該查找多用於安全方面,查看黑客在一段時間內動過的系統文件。
pwd:查看當前路徑
whereis:查找目標文件的路徑
whereis ssh //查看ssh的路徑
壓縮與解壓縮
zip(壓縮)和unzip(解壓縮)
zip(壓縮):
壓縮當前文件夾,兩種方法:
(1)zip –r 111.zip . //.代表當前文件夾
(2)zip –r 111.zip 文件夾路徑/*(eg:zip –r 111.zip /home/*)
unzip(解壓縮):
將壓縮文件解壓掃某處:unzip *.zip –d /目錄 (如果該目錄下沒某文件會自動創建)
gzip(壓縮)和gunzip(解壓):
3.gunzip a.gz //解壓縮
tar.gz解壓:tar -zxvf aaa.tar.gz
corntab:用於設置周期性被執行的指令,可用於任務調度。
終止任務調度:
conrtab –r :終止任務調度
conrtab –l :列出當前有哪些任務調度
其他常用命令:
http://www.oschina.net/translate/useful-linux-commands-for-newbies
http://www.tecmint.com/20-advanced-commands-for-middle-level-linux-users/
shell,殼,是指“提供使用者使用界面”的軟件,將命令解析成機器語言。從作用上說,類似於cmd,接受用戶命令然後調用相應應用;從功能上說又類似於bat批處理,可將程序編寫成shell執行。
shell的分類:
shell名稱 開發者 命令名稱
Bourne S.R. Bourne /bin/sh
C Bill Joy /bin/csh
Kom David /bin/ksh
Shell的修改:chsh –s 輸入新的shell //eg:chsh –s /bin/csh
不同shell的命令稍有差別
用戶登陸後自動執行的shell腳本文件:
.bashrc 位於用戶主目錄下,它之前執行系統的腳本/etc/bashrc,主要是配置基礎數據
.bash_profile位於用戶主目錄下,它之前執行系統腳本/etc/profile,主要是配置環境變量
alias(別名),可簡化常用命令的輸入,shell程序用經常使用
命令:alias 自定義命名=’想要替換的命令’
eg:alias cp=’cp -i’
alias ll=’ls –l –color=tty’
RPM管理
rpm,RPM Package Manager(RPM軟件包管理器)的縮寫,一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.rpm擴展名的文件,與dpkg類似。這一文件格式名稱雖然打上了RedHat的標志,但是其原始設計理念是開放式的,現在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分發版本都有采用,可以算是公認的行業標准了。
如何查詢linux中安裝了哪些rpm軟件:
rpm –q //查看有沒有安裝mysql
rpm –qa //查看所有rpm軟件
rpm常用命令:
安裝rpm包:
rpm –ivh *.rpm // i=install安裝;v=verbose提示;h=hash進度條
卸載rpm包:
rpm –e *.rpm
//如果其他軟件包依賴於當前要卸載的包,會產生錯誤告警
rpm –e –nodeps *.rpm
//該命令用於強制卸載當前rpm包,但依賴於此包的軟件可能無法運行
升級rpm包:
rpm –U *.rpm
文件共享:
1.Samba服務器安裝:Linux下開發人員好像喜歡裝這個。
安裝傳送門
2.FTP服務器安裝:大多數Linux機器都是用的這個。
安裝傳送門
3.SCP命令:
scp [OPTIONS] file_source file_target
eg:scp ntp-4.2.8p7-0.10591.1.PTF.959243.x86_64.rpm [email protected]:/home/boco4a
OPTIONS:
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接、認證、 或是配置錯誤
-C 使能壓縮選項
-P 選擇端口 . 注意 -p 已經被 rcp 使用
4.方便快捷的文件傳輸軟件:sshClient
另外putty、xshell、secureCRT也可用於管理主機,但文件傳輸基於FTP或rz、sz命令。
Mysql數據庫的安裝
Mysql數據庫由於免費、跨平台、輕、支持多並發,一直是中小型企業數據庫的首選。
安裝:
useradd –g mysql mysql //創建mysql用戶,並放入到mysql組
進入/home下的mysql文件夾
sripts/mysql_install_db –user=mysql //初始化數據庫
chown root . //修改文件所有者(.代表當前文件目錄)
chown –R mysql data
//修改data文件夾所有者(R參數代表遞歸,表示當前文件夾下所有文件/文件夾)
chgrp –R mysql . //改變用戶組
啟動mysql
bin/mysqld_safe –user=mysql & // & 代表以後台方式啟動
查看端口3306是否起來:netstat –anp | more
進入mysql:
cd bin
./mysql –uroot –p123
//登錄mysql(此種方式只能在/home/mysql/bin下啟動mysql)
如果想在任何目錄都可以啟動mysql,修改環境變量裡面的路徑PATH:
env //可以看到PATH路徑
在root用戶目錄下 ls –al | more 找到 .bash_profile
(此文件存放用戶變量,系統變量在/etc目錄下)
vi .bash_profile在PATH路徑後面加上mysql路徑
注銷/重啟電腦,然後任意路徑都能使用mysql –uroot –p123 進入mysql
(注:只能在此用戶任意目錄,其他用戶照樣修改。如要所有用戶都可以,那就需要改系統變量,在/etc/profile下也存在該文件)
數據庫備份與恢復
備份操作在mysql下的bin目錄下,非在數據庫中。
恢復的時候要先在數據庫中新建個空數據庫。
可以利用任務調度crontab,寫個shell腳本將數據庫自動備份。
http://xxxxxx/Linuxjc/1137424.html TechArticle