更新時間:2018-05-03 來源:黑馬程序員 瀏覽量:
一·對linux的認識
1.什么是linux
linux整個基于Linux內核,是linux的內核+GNU組織的軟件 GNU/linux的操作系統(tǒng)
2.什么是shell
shell是一個解釋器,是保護系統(tǒng)內核不被篡改的軟件,我們所使用的系統(tǒng)中默認啟動的shell是bash
注:
bash是一個為GNU計劃編寫的Unix shell,它是Bourne-Again SHell的縮寫
3.怎樣在shell中執(zhí)行命令
命令必須在行提示符之后輸入,如果行提示符被占用,那么,ctrl+c可以結束占用當前行提示符的程序從而釋放行提示符
4.在shell中輸入命令的格式:命令+空格+參數(shù)+空格+對象
命令就是程序,參數(shù)就是程序指定的某種功能 -a -b -c =-abc = -bac,對象是操作的目標
舉例: rm -f -r /*==rm -fr /*
二·虛擬機的基本操作
1.虛擬機的控制
[kiosk@foundation0 Desktop]$ rht-vmctl view desktop #顯示虛擬機
[kiosk@foundation0 Desktop]$ rht-vmctl start desktop #打開虛擬機
[kiosk@foundation0 Desktop]$ rht-vmctl poweroff desktop #關閉虛擬機
[kiosk@foundation0 Desktop]$ rht-vmctl reset desktop #重置虛擬機
注:
kiosk //表示shell的運行人是誰
@foundation0 //shell開啟主機的主機名稱
Desktop //你當前所在文件夾的名字
2. 虛擬機的報錯情況以及改正
[kiosk@foundation0 Desktop]$ rht-vmctl start desktop
Error: desktop not started (is already running) //虛擬機正在運行
Correction:停止‘rht-vmctl start desktop’操作,直接執(zhí)行當前準備執(zhí)行的命令
[kiosk@foundation0 Desktop]$ rht-vmctl view desktop
Error: unable to view desktop - not currently running. //虛擬機沒有運行
Correction:先執(zhí)行命令‘rht-vmctl start desktop’,再執(zhí)行下一步操作
[kiosk@foundation0 Desktop]$ rht-vmct1 start desktop
bash: rht-vmct1: command not found... //命令輸入錯誤
Correction:檢查輸入的命令‘rht-vmctl’是否正確,注意區(qū)分‘數(shù)字1’和‘字母l’
[kiosk@foundation0 Desktop]$ rht-vmctl stat desktop
Error: bad option, stat //參數(shù)寫入錯誤
Correction:檢查輸入的參數(shù)‘start/view/poweroff/reset’是否正確,注意區(qū)分大小寫
[kiosk@foundation0 Desktop]$ rht-vmctl start deskop
Error: unrecognized VMNAME specified, deskop. #虛擬機名稱錯誤
Correction:檢查輸入的名稱‘desktop’是否正確,注意區(qū)分大小寫
3.系統(tǒng)用戶登陸
$ //普通用戶,這個用戶只能使用系統(tǒng),但是權力比較低,比如不能刪除 home---->computer ----> boot
student ----> student
# //超級用戶,系統(tǒng)管理員,權力絕對大,可以破壞系統(tǒng),比如刪除 home---->computer ----> boot
not list ---->root ----->redhat
注意:
刪除boot以后,在系統(tǒng)中選擇reset 那么系統(tǒng)啟動成功
系統(tǒng)啟動不了可以直接重置虛擬機
4.在系統(tǒng)內添加中文輸入法
application ------> setting ---> 藍旗(region&language)---->china pinyin
5.文本編輯
gedit 文件名稱+& //"&"的作用是讓gedit命令在后臺運行而不占用當前接口
6.文件管理命令
<1>新建文件
touch ‘文件名’
注:建立多個文件時,touch ‘文件名’ ‘文件名’ ... //多少個文件,就用引號引多少個
<2>新建目錄
mkdir ‘目錄名’
<3>刪除文件
rm -f ‘文件名’ //-f 是force的縮寫,表示強制刪除不提示
區(qū)分 rm/rm -f
<4>刪除目錄
rm -f -r/rm -fr ‘文件名’ //-r 表示遞歸,包括目錄本身和里面的所有內容
7.查看
<1>cat ‘文件名’ //查看文件或者目錄里的具體內容
<2>ls ‘文件名’ //顯示當前文件下的目錄名稱
注:
ls -a //顯示所有文件包括以點開頭的隱藏文件
ls -R //遞歸顯示目錄中的所有內容
<3>file //查看文件類型
操作步驟(可以清楚的體現(xiàn)file的作用以及文件的作用)
touch westos
file westos
vim westos
hello
file westos
vim westos
#!/bin/bash
hello
file westos
vim westos
#include
hello
file westos
<4>wc //統(tǒng)計文件的字數(shù),字符數(shù),字節(jié)數(shù)
wc -l //行數(shù)
wc -m //字符數(shù)
wc -c //字節(jié)數(shù)
wc -w //字數(shù)
注:
區(qū)分wc -m 與 wc -c
在輸入中文時,會有不同;輸入英文時,兩個差不多
8.復制
cp file 新文件名稱|目錄
cp -r dir 新名稱|目錄
注:復制根目錄下文件里的全部內容時,需要在文件最后加一個‘.’
舉例:
cp /etc/passwd .
9.移動
mv file 目錄
mv dir 目錄
mv 目錄/* , 把目錄中的所有內容移動到當前所在系統(tǒng)位置 "."代表當前所在系統(tǒng)目錄
10.系統(tǒng)結構
/bin //常用系統(tǒng)命令
/sbin //系統(tǒng)管理命令
/boot //啟動分區(qū)
/sys //內核參數(shù)調整
/dev //設備文件
/lib //32位庫文件
/lib64 //64文庫文件
/media /run /mnt //臨時設備的掛載點
/opt //第三方軟件安裝位置
/proc //系統(tǒng)信息
/etc //系統(tǒng)配置目錄
/home //普通用戶家目錄
/root //超級用戶家目錄
/var,/srv //系統(tǒng)數(shù)據(jù)
11.關于路徑的命令
<1>路徑的分類
絕對路徑:文件所在系統(tǒng)的真實位置,在系統(tǒng)的任何位置都可以使用通常以"/"開頭
相對路徑:相對當前所在系統(tǒng)位置的一個文件名稱的簡寫,他通常會自動添加"pwd"的值在名稱前
舉例:
pwd //print work directory 顯示當前所在系統(tǒng)位置的路徑
touch /mnt/file //用絕對路徑的方式在/mnt/中建立file文件
rm -fr /mnt/file //用絕對路徑的方式刪除/mnt/中的file文件
mv hello /mnt //把當前的hello文件移動到/mnt目錄中
mv /mnt/hello . //用絕對路徑的表示方式把/mnt中的hello文件移動到當前位置
12.切換工作目錄
cd 目錄名稱
cd .. //進入當前目錄的上層目錄
cd . //進入當前目錄
13.如何在系統(tǒng)中獲得幫助
1.whatis 命令:得到一個命令但不知道這個命令的作用時使用
舉例:
whatis cal 顯示cal命令的用途
cal (1) - display a calendar
cal (1p) - print a calendar
2.--help命令:當知道命令的用途,但是不知道命令的運行格式或者方法時使用
注:--help只適用與命令
舉例:
cal --help
useage:
cal [options] [ [ [day] month] year]
注:如果只寫‘年’的話,就不需要加[],想要顯示哪一月或者哪一天,必須給‘月’和‘天’加[].
[] //選加,可以加也可以不加
... //加的個數(shù)可以時任意多個
<> //必須加不可缺少的信息
3.man == manual:當查看文件的幫助時,--help是不能使用的,必須用man命令來查看幫助了
man的級別
1 命令,2 內核調用的接口,3 函數(shù)庫;4 特殊文件比如設備文件;5 系統(tǒng)文件,6 游戲;7 包信息;8 系統(tǒng)密令;9 內核規(guī)則
舉例:
man date //查看date命令的幫助手冊
man 5 passwd //查看/etc/passwd 文件的幫助手冊
<2>man使用時的快捷鍵
進入man頁面后
pageup //向上翻頁
pagedown //向下翻頁
q //退出
注:當man或者whatis命令無法查詢幫助是,是因為系統(tǒng)沒有加載幫助數(shù)據(jù)庫
解決辦法:執(zhí)行 mandb
三·*******vim*********
1.編輯文件
vim ‘文件名’ 進入瀏覽模式,按"i"鍵 進入插入模式開始編寫字符,編寫結束后按"ESC"鍵 退出插入模式,按":wq" 保存退出,文件編寫完成。
vim同時編輯多個文件 :
先打開一個文件,再進行操作‘:sp ’+‘filename’
ctrl + w 上 //光標進入上邊文件窗口
ctrl + w 下 //光標進入下邊文件窗口
注:
<1>當文件名稱存在,那么進入文件直接編輯,當文件名稱不存在,vim會在退出保存時自動建立文件,當vim命令后沒有跟任何文件名稱時,時無法實現(xiàn)‘:wq’退出保存的那么可以用":wq filename"
<2>當vim異常退出時,系統(tǒng)會建立.file.swp這個緩存文件,這個文件中保存著在‘:wq’動作之前保存的信息,當用vim對文件做編輯的時候會提示
O //只讀打開
E //直接忽略.file.swap信息編輯文件
R //利用.file.swap進行為保存數(shù)據(jù)恢復
D //刪除.file.swap
Q //退出
A //終止
//圖片,出現(xiàn)以上幾個提示的圖片
2.vim的三種模式
<1>命令模式
A:vim工作方式設定(命令模式是vim打開文件后默認進入的模式,這個模式中不能插入字符,但是可以設定vim的工作方式)
:set 指定信息
:set nu
:set nonu
:set cursorline
:set mouse=a
注:在vim中直接設定vim的工作方式是臨時設定,也就是說當vim關閉,設定失效
如果要永久設定需要編寫vim的配置文件 ‘/etc/vimrc’
B:在命令模式下如何管理字符
"x" : 刪除光標所在字符
"u" : undo 恢復
"ctrl+r" : redo 撤銷恢復
"y” : 復制
"yw" : 復制一個單詞
"yl": 復制一個字母
"yy" : 復制一整行
"y5y" : 復制5行
"c": 剪切
"cw" : 剪掉一個單詞
"cl" : 剪掉一個字母
"cc" : 剪掉一整行
“c5c": 剪掉5行
注:"用C做剪切時,會進入插入模式,如果要粘貼需要退出插入模式按‘ESC’鍵再按‘P’
"d" : 刪除
"dw" 刪除一個單詞
"dl" 刪除一個字母
"dd" 刪除一整行
"d5d" 刪除5行
"p": 粘貼
C:vim的可視化操作
a:可視化模式的基本操作
在vim中是不能用鼠標選擇區(qū)域操作的,如果要操作某個區(qū)域,需要進入到可視化模式,在命令模式下 "ctrl + v" 就可以進入到可視模式了
按"上|下|左|右"移動光標選擇區(qū)域,按相應操作鍵就可以對選擇區(qū)域進行操作
b.可視化模式下批量添加字符
。把光標停留在想要加入字符所在的列的第一行
。移動光標選擇添加字符所在列
。"I"進入插入模式
。寫入要插入的字符
。按"ESC"退出插入模式,字符批量添加成功
D:vim的字符替換
%s/原有字符/新字符/g //全文替換
1,5s/原有字符/新字符/g //替換1到5行的字符
g //替換出現(xiàn)的所有關鍵字,如果不加"g"只替換沒行出現(xiàn)的第一個
E:總字符的查找及光標的移動
<1>字符的查找
/關鍵字 //搜索關鍵字
n //向下匹配關鍵字
N //向上匹配關鍵子
注:按‘v’ 由瀏覽模式進入vim模式,按‘i’進入編輯模式,按‘ECS’后按‘:wq’退出編輯模式進入瀏覽模式
<2>光標的移動
:‘數(shù)字’ //光標快速移動到指定行
gg //光標移動到文件的第一行
G //光標移動到文件的最后以行
<2>插入模式
"i" //在光標所在位置插入字符
"I" //光標所在行的行首插入字符
"o" //光標所在行的下一行新行插入字符
"O" //光標所在行的上以行新行插入
"s" //刪除光標所在字符并插入字符
"S" //刪除光標所在行并插入字符
"a" //光標所在字符的下一個字符插入
"A" //光標所在行的行尾插入字符
<3>退出模式
:q //當vim進入文件沒有對文件內容做任何操作可以按"q"退出
:q! //當vim進入文件對文件內容有操作但不想保存退出
:wq //正常保存退出
:wq! //強行保存退出,只針對與root用戶或文件所有人生效
四.通配符
1.字符匹配
* //匹配0到任意字符
? //匹配單個字符
[[:alpha:]] //匹配單個字母
[[:lower:]] //匹配單個小寫字母
[[:upper:]] //匹配單個大寫字母
[[:digit:]] //匹配單個數(shù)字
[[:alnum:]] //匹配單個數(shù)字或字母
[[:punct:]] //匹配單個符號
[[:space:]] //匹配單個空格
//圖片,刪除帶數(shù)字或者帶字母的文件
{} //精確指定目標,前提是指定的所有目標都必須存在
{}{} //兩個括號里的目標分別進行有順序的組合組合
舉例:
{1..3} 指定1,2,3,而且1,2,3都存在
{1..3}{a..c} 1a 2a 3a 2a 2b 2c 3a 3b 3c
[] //模糊指定目標
舉例:
[1-3] //1或者2或者3
[^abc]|[!abc] //除了a并且除了b并且除了c
2.常用文本處理工具 //在命令輸入窗口直接輸入
<1>head //顯示指定文件的前多少行
head -n 1 passwd //顯示文件的第一行
head -n 3 passwd //顯示文件的前3行
head passwd //默認顯示文件的前10行
<2>tail //顯示文件的后多少行,在閱讀文件時,直接按此字符
tail -n 1 passwd //顯示文件的最后以行
tail -n 5 passwd //顯示文件的最后5行
tail passwd //顯示文件的最后10行
<3>less //分頁瀏覽
less passwd
<4>‘!’or‘^’ //表示非,相反的
3. 鼠標點不動時, ctrl alt f2 , init 3,ctrl f1 init5