Linux操作系統基本應用(完結),linux操作系統
Linux操作系統基本應用(完結),linux操作系統
時間:2015-4-10 12:40
Linux第一天
Linux基本命令
Linux各文件夾的作用
bin 二進制可執行命令
dev 設備特殊文件
etc 系統管理和配置文件
etc/rc.d 系統啟動的配置文件和腳本
home 用戶文件夾
lib 標准程序設計庫 作用類似於Windows中的 .dll
sbin 系統管理命令
tmp 公用的臨時文件儲存點
root 特權階級
mnt 臨時掛載其他的文件系統
var 可編數據
opt 第三方軟件(非應用 支持系統)
usr 應用軟件
boot 啟動文件
————————
基本命令
ls 顯示目錄(d表示文件夾、-表示文件、l 表示軟鏈接、紅色表示壓縮文件、藍色表示文件夾、綠色表示可執行文件)
-a 顯示所有文件,包括隱藏文件
-l 顯示詳細信息
-d 查看目錄屬性
chmod 766 文件名 或者 chmod u+rwx 文件名/*給user添加rwx權限*/
rwx rwx rwx root root
所有者 所屬組 其他人 所有者 所屬組
user group others
r = 4 w = 2 x = 1
——————————————————————————————————————
| 代表字符 | 權限 | 對文件的含義 | 對目錄的含義 |
——————————————————————————————————————
| r | 讀權限 | 可以查看文件內容 | 可以列出目錄中的內容 |
——————————————————————————————————————
| w | 寫權限 | 可以修改文件內容 | 可以在目錄中創建、刪除文件 |
——————————————————————————————————————
| x | 執行權限 | 可以執行文件 | 可以進入目錄 |
——————————————————————————————————————
rwx 對文件的權限
r - cat、more、head、tail
w - echo、vi
x - 命令、腳本
rwx 對目錄的權限
r - ls
w - touch、mkdir、rm
x - cd
chown 用戶名
改變文件或目錄的所有者
chgrp 用戶名
改變文件所屬組
su - 用戶名
切換當前用戶
touch 文件名
創建空文件
cp -R 源文件或目錄 目的目錄
復制文件
which 命令名稱
顯示系統命令所在目錄
例子:$which ls
find查找
find 搜索路徑 搜尋關鍵字
功能描述:查找文件或目錄
find -name 文件名
* 匹配任意字符 init*
? 匹配單個字符 init??
find -size 文件大小
數據塊 512字節 block
大於 +
小於 -
find -user 所有者
find -time
1、天 ctime、atime、mtime
2、分鐘 cmin、amin、mmin
c = change 改變 表示文件的屬性被修改過,文件的所有者
a = access 訪問
m = modify 修改 表示文件的內容被修改過
- 之內
+ 超過
例:
find /etc -mmin -120 /*查找120分鐘內被修改過的文件*/
gzip壓縮:
gzip 文件名
gzip 只能壓縮文件 不能壓縮目錄
gzip 壓縮後不保留源文件
解壓縮:
gunzip -d 或者 gzip -d
tar壓縮:
tar 選項 目錄
-c 產生.tar打包文件
-v 顯示詳細信息
-f 制定壓縮後的文件名
-z 打包同時壓縮
功能描述:
打包目錄
壓縮後文件格式.tar.gz
例子:
$tar -zcvf dir1.tar.gz dir1 /*打包後產生的文件名在後*/
將目錄 dir1壓縮成一個打包並壓縮的文件
解壓縮:
$tar -xfz 文件名
-x 是解壓
當文件名後綴沒有.tar.gz 可以用 file xxx 來查看文件
bzip2壓縮:
bzip2 選項 文件
-k 產生壓縮文件後保留源文件
功能描述
壓縮文件
壓縮後文件格式:
.bz2
例子:
$bzip2 -k file1
解壓縮:
bunzip2 -k 壓縮文件
-k 解壓縮後保留原文件
功能描述:
解壓縮
例子:
$bunzip2 -k file.bz2
bc 計算器
cal 日歷
date 時間
exit 退出
reboot 重啟
vi/gedit 編輯器
gcc 123.c -o 32.c 重命名 123.c文件為321.c
./123.c 運行123.c程序
whereis 123.c 尋找123.c文件的位置
pwd 顯示當前文件位置
cp 復制
mv 移動/剪切
rm 刪除
rmdir 刪除空目錄/*只能刪除空目錄*/
cat 查看文件內容
more 文件名/*分頁顯示文件內容*/
空格 或 f 顯示下一頁
Enter 顯示下一行
Q 或 q 退出
head -5 文件名 /*顯示文件前5行內容*/
tail -5 文件名 /*顯示文件後5行內容*/
mkdir 創建文件夾
ctrl + c 終止命令
雙擊tab 補全命令
cd + 文件名 下層目錄
cd(空格).. 退到上層目錄
cd(空格)/ 退到根目錄
————————
VI編輯器
v:顯示
y:復制
a:編輯
w:保存
q:退出
————————
Linux第二天
shell命令編程
用VI創建一個名為“hello.sh”的shell文件
vi hello.sh
輸入語句
#!/bin/sh
echo "hello world!"
修改權限
chmod 766 hello.sh
運行“hello.sh”
./hello.sh
————————
變量賦值
var1= 1 var2= “aaa” /*Linux中沒有數據類型,所以直接定義變量*/
輸入輸出
read 輸入 相當於C語言中的 scanf
read var 屬於一個數據存儲到var當中
echo 輸出 相當於C語言中的printf
echo “$var” 輸出變量var的值
調用變量時要用$引用變量 $var /*當變量為右值使用時必須使用$*/
數學運算命令
expr $var+1 或 (($var + 1))
引用命令時用反短斜線 ` ` /*數字1左邊的鍵*/ 或
$()
————————
簡單運算
#!/bin/sh
echo "input a number"
read var1
var= `expr $var1 + 1`
echo $var
/*
輸入一個數字 將該數字賦值給var1
調用var1 使var+1 將相加後的結果賦給var
輸出var
*/
————————
條件執行
命令1;命令2 /*命令1執行完畢,無條件執行命令2*/
命令1&&命令2 /*當命令1執行成功則執行命令2,命令2執行完畢返回“成功”,否則返回“失敗”*/
命令1 || 命令2 /*當命令1執行失敗則執行命令2,命令1執行成功則不執行命令2*/
例句
ls~/abc || mkdir~/abc && touch~/abc/aa
touch的作用是修改文件 時間戳
-a && 邏輯與 -and
-o || 邏輯或 -or
————————
Linux流程控制結構
if語句結構[if/then/elif/else/fi]
if 條件
then
語句
elif 條件
語句
else
語句
fi
/*
如果對於:條件測試語句不是很清楚,可以參考:linux shell 邏輯運算符、邏輯表達式詳解shell命令
[chengmo@centos5 ~]$ a=5;if [[ a -gt 4 ]] ;then echo 'ok';fi;
ok
*/
實例:
(test.sh)#!/bin/shscores=40;
if [[ $scores -gt 90 ]]; then
echo "very good!";
elif [[ $scores -gt 80 ]]; then
echo "good!";
elif [[ $scores -gt 60 ]]; then
echo "pass!";
else
echo "no pass!";
fi;
條件測試有:[[]],[],test 這幾種,注意:[[]] 與變量之間用空格分開。
————
for … in 語句
for 變量 in seq字符串
do
語句
done
說明:seq字符串 只要用空格字符分割,每次for…in 讀取時候,就會按順序將讀到值,給前面的變量。
實例
(testfor.sh):
#!/bin/sh
for i in $(seq 10); do
echo $i;
done;
seq 10 產生 1 2 3 。。。。10空格分隔字符串
[user@bogon ~]$sh xxx.sh 相當於 . / 運行shell文件
————
for((賦值;條件;運算語句))
do
語句
done;
實例(testfor2.sh):#!/bin/shfor((i=1;i<=10;i++));do
echo $i;
done;
————
while 條件語句
do
語句
done;
實例1:
#!/bin/sh
i=10;
while [[ $i -gt 5 ]];do
echo $i;
((i--));
done;
運行結果:
========================
sh testwhile1.sh
10
9
8
7
6
!!實例2:(循環讀取文件內容:)
#!/bin/sh
while read line;do
echo $line;
done < /etc/hosts;
運行結果:
===================
sh testwhile2.sh
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 centos5 localhost.localdomain localhost
————
語法結構:
until 條件
do
action
done
意思是:直到滿足條件,就退出,否則執行action。
實例
(testuntil.sh):
#!/bin/sh
a=10;
until [[ $a -lt 0 ]];do
echo $a;
((a--));
done;
結果:
sh testuntil.sh
10
9
8
7
6
5
4
3
2
1
0
————
case選擇語句使用(case/esac)
語法結構
case $arg in
pattern | sample) # arg in pattern or sample
;;
pattern1) # arg in pattern1
;;
*) #default
;;
esac
說明:pattern1 是正則表達式,可以用下面字符:
* 任意字串
? 任意字元
[abc] a, b, 或c三字元其中之一
[a-n] 從a到n的任一字元
| 多重選擇
實例:
#!/bin/sh
case $1 in
start | begin)
echo "start something"
;;
stop | end)
echo "stop something"
;;
*)
echo "Ignorant"
;;
esac
運行結果:
======================
testcase.sh start
start something
————
select語句使用方法(產生菜單選擇)
語法:select 變量name in seq變量do actiondone實例:#!/bin/sh select ch in "begin" "end" "exit"
do
case $ch in
"begin")
echo "start something"
;;
"end")
echo "stop something"
;;
"exit")
echo "exit"
break;
;;
*)
echo "Ignorant"
;;
esac
done;運行結果:
說明:select是循環選擇,一般與case語句使用。
————————
重定向
標准輸入 命令<文件(覆蓋) <<(追加)
標准輸出 命令>文件(覆蓋) >>(追加)
標准錯誤輸出 錯誤命令 2>文件(覆蓋) 2>>(追加)
例句
ls -l > aa.txt /**/
vi bb.txt < aa.txt
————————
正則表達式
簡單的說,正則表達式就是處理字符串的方法,它是以行為單位來進行字符串的處理行為,正則表達式通過一些特殊符號的輔助,
可以,讓用戶輕易達到查找、刪除、替換某特定字符串的處理程序。
正則表達式主要分為兩類:基本正則表達式和擴展正則表達式。
特殊符號
符號
含義
舉例
^
開始標記
"^abc"滿足的例子abc、abcd
^
非(在[]內)
"[^abc]"滿足的例子:ddd、mpd
$
結束標記
”abc$”滿足的例子abc、mmabc
.
任意字符
"a.c"滿足的例子abc、fapcc
\<
匹配單詞開始
"\<abc"滿足的例子abc、abcd
\>
匹配單詞結束
"abc\>"滿足的例子abc、pmrabc
|
或
"AAA|BBB"滿足的例子AAA、BBBpp
^ 行首錨定符
& 行尾錨定符
grep ‘wang’ file /*篩選文件名為'wang’的文件*/
grep 'wang[12]' file /*篩選出“wang1”,“wang2”*/
grep 'wang[^2]' file /*篩選出不包括2的所有文件名為“wang”的文件*/
grep 'wang[1-5]' file /*篩選出包含“1—5”的所有文件名為"wang"的文件*/
grep '^a' file /*篩選出以a開頭的所有文件*/
grep 'g$' file /*篩選出以g結尾的所有文件*/
grep 'a\{2\}' file /*表示精確匹配2次*/
grep 'a\{2,5\}' file /*表示其前面的字符a最少出現2次,最多出現五次*/
grep ’a\{2,\}' file /*表示匹配其前面的字符a最少出現2次,最多無限*/
grep 'wa*' file /*匹配其前面的字符零到多次,例如 waaang,wngg*/
grep 'w..g' file /*匹配任意單個字符,一個 . 一個字符,例如love,line*/
grep '[a-z]' file /*指定范圍內的任意單個字符,例如 actor,build*/
grep ‘^[a-z]' file /*篩選除指定字符外的其它任意字符*/
————————
管道命令 |
1)把前面的命令結果作為後面命令的輸入數據
2)後面的命令必須是管道命令(以文件為輸入,可以處理文件內容)
篩選 grep 'xx'文件 /*xx是文件名*/
切行 cut -d'分隔符' -f 字段
排序 sort -r(反向)
合並行 uniq 計數 wc -l 行 -w 詞
例句
ls -l | grep 'wang' | cut -f 3,5 | sort
————————
awk命令
awk '條件{動作}條件{動作}......'文件名
awk '{print $1"\t" $3}' aa.txt
awk '{print $1"\t" NR "\t" NF}' aa.txt /*NR 行號 NF 字段號*/
awk 'BEGIN{FS="\t"}$3>10{print $}' aa.txt /*FS 分隔符*/
awk 'NR=1{} NR >= 2{}' aa.txt
例句(刪除存儲大小為0的文件)
#!/bin/sh
for filename in 'ls'
do
if test -d $filename;then
b=0
else
a= $(ls -l $filename | awk '{print$5}')
if test $a -eq 0; then
rm $filename
fi
fi
done
————————
Linux中字符比較的寫法
-eq 相等
-ne 不等
-lt 小於
-le 小於等於
-gt 大於
-ge 大於等於
-f xxx 文件存在
-d xxx 目錄存在
-x xxx 文件可執行
-n xxx 變量有數據
-a && 邏輯與
-o || 邏輯或
————————
Linux第三天
Linux服務器
軟件安裝
1、源碼安裝
下載 wget http://www.xxx.com/xxx.tar.bz2
解壓 tar -jxvf xxx.tar.bz2
編譯和安裝 make make install
2、yum安裝
yum info xxx /*information 顯示安裝文件信息*/
yum install xxx /*install 安裝文件*/
yum remove xxx /*remove 刪除安裝文件*/
yum list xxx /*list 顯示安裝文件列表*/
yum search xxx /*search 查找安裝文件*/
————————
網絡命令和配置文件
IP地址 ifconfig /*查看網卡信息*/
ifconfig etho 192.168.111.128 netmask 255.255.255.0
防火牆 /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
————————
SSH
安裝服務端
yum install openssh-server
啟動
/etc/init.d/sshd start (stop or restart)
連接
yum install ssh
ssh xxx.xxx.xxx.xxx /*輸入IP地址*/
Windows平台
下載安裝putty(遠程登錄)
————————
LAMP(Linux+Apache+MySQL+PHP)
安裝
yun install httpd mysql mysql-server php php-mysql
啟動
/etc/init.d/mysql start
/etc init.d/httpd start /*d代表服務端*/
測試
在/var/www/html/下創建phpinfo.php文件 /*創建php腳本文件*/
在phpinfo.php文件中輸入<?php phpinfo();?>
用浏覽器打開 http://xxx.xxx.xxx.xxx/phpinfo.php
————————
1、安裝
yum install xxx
2、查看IP地址
ifconfig
3、設置防火牆端口
/etc/sysconfig/iptables
4、安裝遠程登錄服務端
yum install openssh-server
5、啟動/重啟/關閉
/etc/init.d/xxxd start/restart/stop(d 服務端,相當於server,ssh-server、mysql-server)
http://xxxxxx/Linuxjc/1191265.html TechArticle