我們大家都很熟悉windows,可能對linux不是很瞭解,linux系統一般都用在服務器上,因爲它做很多事情都需要打命令,沒有windows那麼智能,或者說傻瓜也可以,所以一般的普通用戶都不會用到,這裏我說一下我自己對linux的一些自己的見解,如果有愛好且沒基礎的人可以看看,可能會對你有些幫助的,當然關於它的歷史我就不介紹了,我在這裏只說一下它的基本內容和命令。
UNIX/Linux系統特點:
1.一切皆文件
2.配置於數據都是文件形式保存
3.由短小的程序組成
4.避免不必要的交互
5.多個程序合作完成一個任務
6.令(程序)的運行用參數控制
linux組成:
硬件、內核、shell、文件系統、應用程序
使用Linux的三種模式::
GUI圖形界面
TUI文本界面
CLI命令行界面
目錄結構:
倒置樹型結構
/
---/etc 配置文件
---/boot (另外一個磁盤分區裏面保存)
---/var 可變數據。日誌、緩存
---/home 普通用戶所有數據
---/root 管理員所有數據
---/tmp 臨時文件存儲位置
---/usr 系統軟件
---/opt 大型第三方軟件
---/bin 命令
---/sbin 系統命令
---/usr/bin
---/usr/sbin
---/usr/local/bin
---/usr/local/sbin
---/lib 程序、系統的庫(函數庫)
---/dev 設備
基本命令:
ls - list directory contents
-l 顯示詳細信息 系統裏面的快捷方式 ll
-a 顯示隱藏文件 -A 顯示隱藏文件(系統文件除外)
-d 查看目錄(不查看裏面的內容)
-h 增強可讀性
被查看的目錄:
. 當前目錄
.. 父目錄(上層目錄、上級目錄)
.DIRNAME .FILENAME 起名或者創建時控制目錄或者文件是否是隱藏的。
絕對路徑/相對路徑:
/..... ./..... ../../../
目錄結尾 用/ 文件結尾 無
./DIR/ ./FILE
cd - change dir
cd 目錄名 直接到那個目錄下面
#cd 回到用戶自己的主目錄
#cd ~ 回到用戶自己的主目錄
#cd - 回到上一個目錄
pwd查看當前目錄
mkdir - make directories 創建目錄
加-p 連同父目錄一起創建
#mkdir -p
touch 常用來創建空文件
#touch test.txt
rmdir 刪除空目錄
rm - remove files or directories 刪除文件或者目錄
-r 遞歸刪除(可以刪除目錄和目錄裏面的東西)
-f 強行刪除
cat - concatenate files and print on the standard output 顯示文件內容
more 查看文件內容 缺點:只能向下看不能向上看
q 退出
less 查看文件內容(可以向上翻頁)
q 退出
head 顯示文件前10行
-n 顯示多少行
tail 顯示文件後10行 常用來看日誌
-n 顯示多少行
-f 跟隨(不關閉) 常用來查看日誌
cp - copy files and directories
-r 包含子目錄和文件
-a 確保新文件和源文件一致
-f 若是原地方有這個文件刪除後再複製
mv 作用是移動和修改文件名
如何輸入命令:
命令 [選項]([參數])[選項的值]([參數的值]) 用空格分割
命令後:左邊是源 右邊是目標
命令後:原文件名 修改後的文件名
編輯器:gedit nano vim
vim:
#vim filename
#vim filename +N
有三種模式:
1.命令模式
2.插入模式
3.末行模式
i 在光標前插入文本
I 在光標所在行首插入文本
o 在光標所在行下面插入一行
O 在光標所在行上面插入一行
a 在光標後插入文件
A 在光標所在行插入行尾插入文本
返回命令模式 Esc
進入末行模式 shift+;
:wq 保存並推出
:wq! 強行推出並保存
:q! 強行推出不保存
:% s/old/new/g 將全文的old換成new
:1,5 s/old/new/g 將1到5行的old換成new
:set number 顯示行號 :set nonumber 關閉行號
dd 刪除一行(即剪切)
Ndd 刪除N行
yy 複製一行
Nyy 複製N行
p 粘貼
u 撤銷
快速定位:
gg 到文件頭 H 到屏幕開頭 M 中間 L結尾 G 文件尾
軟件安裝:
解壓:
軟件名字:zip gzip bzip2 (cpio)
格式名字:.zip .gz .bz2 .cpio
PS:linux系統不根據後綴名識別文件類型
用file命令查看文件的類型。用-z查看的更詳細
zip:#unzip filename 解壓
gzip #gzip filename 壓縮 #gzip -d filename 解壓
bzip2: #bzip2 filename 壓縮 #bzip2 -d filename 解壓
歸檔+壓縮:
#tar -cf newfile.tar SOURCE
#tar -xf newfile.tar -C /PATH/TO/DISTDIR/
#tar -xf newfile.tar -C /PATH/TO/DISTDIR/ user1/rules.txt
#tar -tf newfile.tar
#tar -rf newfile.tar SOURCE
gzip:z bzip2:j
#tar czvf newfile.tar.gz SOURCE
常見格式(後綴名):.tar.gz .tgz .tar.bz2 .tbz
軟件管理:
rpm包:
安裝:
#rpm –ivh 包名.rpm
升級:
#rpm -Uvh zsh-4.2.6-3.el5.i386.rpm
#rpm -Fvh zsh-4.2.6-3.el5.i386.rpm
卸載:
#rpm -e zsh xxx.conf.rpmsave
查詢:
#rpm -q zsh (查詢zsh軟件是否安裝)
#rpm -qa (查詢所有安裝過的軟件)
#rpm -ql zsh (查詢zsh這個軟件安裝了那些文件和目錄)
#rpm -qf /bin/zsh (zsh這個文件是那個軟件安裝的)****
zsh-4.2.6-3.el5.i386.rpm
zsh -4 .2 .6 -3. el5. i386
軟件名 版本號 次版本號 修訂 release(發佈版本) 系統平臺 架構平臺
fc15 x86_64
noarch
#which 命令名(返回命令的絕對路徑)
其他選項:
--force 後面加上強行安裝
--nodeps 不管依賴關係強制安裝
--root=/PATH/ 後面加上安裝在另外一個路徑
自動裝軟件包(軟件包管理):
YUM
解決依賴關係問題、自動下載軟件包。基於C/S架構。
S:直接使用光盤的根所在的目錄(/media/xxx/)。
Iso鏡像:
#mount -o loop /var/ftp/rhel55.iso /media/
使用/media/目錄。(這個目錄也是光盤的根)
C:
#vi /etc/yum.repos.d/local.repo
[local-Server]
name=local-Server
baseurl=file:///media/Server (repodata目錄所在的目錄)
enabled=1
gpgcheck=0
YUM使用:
#yum clean all 清空緩存
#yum makecache
安裝:
#yum install zsh 安裝這個軟件包
#yum install httpd\* 安裝這個軟件包和相關的包
#yum groupinstall GROUPNAME 安裝一組軟件
#yum localinstall zsh-4.2.6-3.el5.i386.rpm 用yum安裝一個已經下載好的軟件
查詢:
#yum list z\* 以Z開頭的軟件全查
#yum list all 查看所有
#yum grouplist 查看一組
#yum info zsh 詳細信息
#yum search zsh 搜索
#yum whatprovides /bin/zsh 裝沒裝都可以查到
刪除:
#yum remove zsh* 卸載一個軟件包
#yum groupremove GROUPNAME 卸載一組軟件包
-y 回答yes
手動安裝lftp:
前提:系統必須安裝:開發工具、開發庫。
步驟:
1. 獲得
2. 解壓
#tar xjf lftp-3.5.10.tar.bz2
3. 配置
#cd lftp-3.5.10
#./configure (--help獲得幫助,如何配置,配置那些內容)
#echo $? 返回值是0就安裝沒問題
4. 編譯
#make (讀取Makefile文件)
5. 安裝
#make install
其他方法:
執行軟件提供的安裝程序(腳本)進行安裝。
執行軟件提供的二進制可執行文件。
軟件安裝方法特點:
rpm+yum:方便,軟件版本低。穩定性好、管理方便。性能稍差。
手動:麻煩,軟件版本新。穩定性稍差、管理稍差。性能好。
進程管理:
程序與進程:
程序是靜態的(文件),進程是動態的(運行的程序)。
進程是能夠獨立運行的單位。進程作爲資源申請和調度的單位。
程序和進程不存在一一對應關係。
進程可能會有依賴關係,程序沒有。
進程的運行狀態:
1. 運行
2. 中斷(睡眠)
3. 不可中斷
4. 停止
5. 殭屍
查看進程:
pstree 樹型結構顯示系統進程信息
-p顯示進程號
ps
#ps axu (#ps auxw)
#ps -ef
#ps -eo euser,ruser,suser,fuser,f,comm,label
ps提供的狀態:
D 不可打擾的中斷
R 運行
S 睡眠
T 暫停
W 沒有足夠內存可以分配
X 分頁(2.6+內核以後不會有了)
Z 殭屍
< 高優先級的
N 低優先級的
L 有內存分頁但是帶鎖
s 會話頭
l 多線程
+ 前臺程序
top
q退出
s更改刷新時間
h獲得幫助
M按內存排序
P按CPU排序
T按時間排序
1每個內核的CPU使用率
W保存配置
控制(關閉)進程:
kill 想進程發送信號(停止進程)
常用信號:
1 HUP 重新加載配置文件。類似重啓。
2 INT 和ctrl+c一樣
9 KILL 強行中斷
15 TERM 正常結束
19 STOP 和ctrl+z一樣
#kill [-ID|-NAME] PID
優先級控制:
nice值 -20 ~ 19 越小優先級越高 普通用戶0-19
nice
#nice -5 xclock
renice
#renice -5 PID
作業控制:(命令行)
jobs 列出所有程序
fg 後臺程序改成前臺
bg 前臺程序改成後臺
crtl+z 前臺程序改成後臺
kill %N 終止後臺進程
這些是我自己的一些見解,希望可以對想學習linux的朋友帶來一些幫助,還有一些獲得幫助的途徑在下面。
獲得幫助:
1. google wiki bbs(國外)linuxtone chinaunix 51cto linux*
2. 官網
http://dev.mysql.com/doc/refman/5.1/zh/index.html
http://www.phpchina.com/manual/apache/
3. doc
/usr/share/doc/software-name/*
4. info
#info #pinfo
/usr/share/info/*
5. man
#man ls
man類別:
1 command 命令
5 file formats and conventions 文件格式和約定
8 system management commands 系統管理類命令
#man 7 man
6. help 幫助命令
#help cd
7. 命令幫助
#rm --help