一·對linux的認識

1.什麼是linux 
	linux整個基於Linux核心,是linux的核心+GNU組織的軟體 GNU/linux的作業系統 	2.什麼是shell 
	shell是一個直譯器,是保護系統核心不被篡改的軟體,我們所使用的系統中預設啟動的shell是bash 

注: bash是一個為GNU計劃編寫的Unix shell,它是Bourne-Again SHell的縮寫 

3.怎樣在shell中執行命令
	命令必須在行提示符之後輸入,如果行提示符被佔用,那麼,ctrl+c可以結束佔用當前行提示符的程式從而釋放行提示符
4.在shell中輸入命令的格式:命令+空格+引數+空格+物件 
	命令就是程式,引數就是程式指定的某種功能   -a -b -c =-abc = -bac,物件是操作的目標 
舉例:   rm  -f -r  /*    ==    rm  -fr  /* 

二·虛擬機器的基本操作

 1.虛擬機器的控制 
 [[email protected] Desktop]$ rht-vmctl   view     desktop	#顯示虛擬機器 
 [[email protected] Desktop]$ rht-vmctl   start    desktop #開啟虛擬機器 
 [[email protected] Desktop]$ rht-vmctl   poweroff desktop	#關閉虛擬機器 
 [[email protected] Desktop]$ rht-vmctl   reset    desktop	#重置虛擬機器
  注: 
  kiosk                           #表示shell的執行人是誰 
  @foundation0              	  #shell開啟主機的主機名稱 
  Desktop                         #你當前所在資料夾的名字 
 2. 虛擬機器的報錯情況以及改正                             
[[email protected] Desktop]$ rht-vmctl start desktop 
 	Error: desktop not started (is already running)	          #虛擬機器正在執行  
	改正:停止‘rht-vmctl start desktop’操作,直接執行當前準備執行的命令 

[[email protected] Desktop]$ rht-vmctl view desktop 
	Error: unable to view desktop - not currently running.	  #虛擬機器沒有執行 
	改正:先執行命令‘rht-vmctl start desktop’,再執行下一步操作 

[[email protected] Desktop]$ rht-vmct1  start desktop 
	bash: rht-vmct1: command not found...	                #命令輸入錯誤 
	改正:檢查輸入的命令‘rht-vmctl’是否正確,注意區分‘數字1’和‘字母l’

 [[email protected] Desktop]$ rht-vmctl  stat desktop
 	Error: bad option, stat	                              #引數寫入錯誤 
	改正:檢查輸入的引數‘start/view/poweroff/reset’是否正確,注意區分大小寫

[[email protected] Desktop]$ rht-vmctl  start deskop 
	Error: unrecognized VMNAME specified, deskop.   	#虛擬機器名稱錯誤 
	改正:檢查輸入的名稱‘desktop’是否正確,注意區分大小寫 

3.系統使用者登陸 

$            #普通使用者,這個使用者只能使用系統,但是權力比較低,比如不能刪除  home/computer/boot/student/student 
#            #超級使用者,系統管理員,權力絕對大,可以破壞系統

注意:   刪除boot以後,在系統中選擇reset 那麼系統啟動成功 系統啟動不了可以直接重置虛擬機器 

4.在系統內新增中文輸入法 application ------> setting ---> 藍旗(region&language)---->china pinyin 

在這裡插入圖片描述 在這裡插入圖片描述

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

5.文字編輯
gedit   檔名稱   &         # "&"的作用是讓gedit命令在後臺執行而不佔用當前介面

6.檔案管理命令 
(1)新建檔案
 touch   檔名     
 注:建立多個檔案時,touch ‘檔名’ ‘檔名’ ...       #想建立多少個檔案,就用引號引用多少個

[[email protected] Desktop]# touch file[[email protected] Desktop]# ls    
	file
[[email protected] Desktop]# touch file1 file2 file3
[[email protected] Desktop]# ls
	file  file1  file2  file3

在這裡插入圖片描述

(2)新建目錄
mkdir 目錄名
(3)刪除檔案
rm  -f  檔名          # -f 是force的縮寫,表示強制刪除不提示


區分rm和rm  -f
[[email protected] Desktop]# ls
	file  file1  file2  file3
[[email protected] Desktop]# rm file               # 刪除時要徵求意見
	rm: remove regular empty file ‘file’? y
[[email protected] Desktop]# rm -f file1           #直接刪除
[[email protected] Desktop]# ls
	file2  file3

在這裡插入圖片描述

(4)刪除目錄
rm -fr 目錄名         #-r 表示遞迴,包括目錄本身和裡面的所有內容一起刪除

7.檢視
(1)cat 檔名         # 檢視檔案或者目錄裡的具體內容
(2)ls  檔名         # 顯示當前檔案下的目錄名稱

注: 
ls -a                 #顯示所有檔案包括以點開頭的隱藏檔案 
ls -R                 #遞迴顯示目錄中的所有內容
(3)file               # 檢視檔案型別操作步驟(可以清楚的體現file的作用以及檔案的作用)


[[email protected] Desktop]# touch  westos
[[email protected] Desktop]# file westos
	westos: empty
[[email protected] Desktop]# vim westos 
	1 hello world 
	2 say hi
[[email protected] Desktop]# file westos
	westos: ASCII text
[[email protected] Desktop]# vim westos 
	1 #!/bin/bash 
	2 hello
[[email protected] Desktop]# file westos
	westos: UTF-8 Unicode text
[[email protected] Desktop]# vim westos 
	1 #include<stdio.h> 
	2 hello
[[email protected] Desktop]# file westos
	westos: C source, ASCII text



(4)wc (統計檔案的字數,字元數,位元組數)
wc -l           #行數 
wc -m           #字元數 
wc -c           #位元組數 
wc -w           #字數


[[email protected] Desktop]# cat westos
	 #include<stdio.h>
	 hello
[[email protected] Desktop]# wc -l  westos 
	2 westos
[[email protected] Desktop]# wc -m  westos 
	24 westos
[[email protected] Desktop]# wc -c  westos 
	24 westos
[[email protected] Desktop]# wc -w  westos 
	2 westos

在這裡插入圖片描述

區分wc    -m 與 wc    -c    
	在輸入中文時,會有不同;輸入英文時,兩個差不多
[[email protected] Desktop]# cat westos 
	hello
	linux
	你好
[[email protected] Desktop]# wc   -c  westos 
	19 westos
[[email protected] Desktop]# wc  -m  westos 
	15 westos 

8.複製 
	cp   檔名      新檔名稱/目錄
	cp   -r 目錄     新目錄名稱        # -r 表示遞迴
[[email protected] Desktop]# ls
[[email protected] Desktop]# cp    /etc/passwd   file
[[email protected] Desktop]# ls    file
[[email protected] Desktop]# cp   -r   /etc  .         # . 代表當前位置
[[email protected] Desktop]# lsetc  file
[[email protected] Desktop]# mkdir westos
[[email protected] Desktop]# cp /etc/passwd westos/
[[email protected] Desktop]# ls westos/
	passwd

在這裡插入圖片描述

9.移動
	mv   檔名   要移動到的目錄名稱
	mv   目錄名   要移動到的目錄名稱
	mv 目錄/*  .   		#把目錄中的所有內容移動到當前所在系統位置, "."代表當前位置 
10.系統結構
	 /bin                  # 存放常用系統命令
	 /sbin                 # 存放系統管理命令
	 /boot                 # 啟動分割槽
	 /sys                  # 核心引數調整
	 /dev                  # 裝置檔案
	 /lib                  # 32位庫檔案 
	 /lib64                # 64文庫檔案 
	 /media /run /mnt      # 臨時裝置的掛載點
	 /opt                  # 第三方軟體安裝位置
	 /proc                 # 系統資訊
	 /etc                  #系統配置目錄
	 /home                 # 普通使用者家目錄
	 /root                 # 超級使用者家目錄
	 /var,/srv             # 系統資料 

11.關於路徑的命令 
	<1>路徑的分類
	
	 絕對路徑:檔案所在系統的真實位置,在系統的任何位置都可以使用通常以"/"開頭 
	 相對路徑:相對當前所在系統位置的一個檔名稱的簡寫,他通常會自動新增"pwd"的值在名稱前

	pwd                 # 顯示當前所在系統位置的路徑
	 [[email protected] Desktop]# pwd
	 	/root/Desktop 
	 
	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.如何在系統中獲得幫助
	(1)whatis     # 得到一個命令但不知道這個命令的作用時使用
 	whatis cat      # 顯示cat命令的用途
 	[[email protected] Desktop]# whatis cat
	 	cat (1)              - concatenate files and print on the standard output
	 	cat (1p)             - concatenate and print files
	(2)--help命令:當知道命令的用途,但是不知道命令的執行格式或者方法時使用
	注:--help只適用於命令

	[[email protected] Desktop]# cal --help

在這裡插入圖片描述

Cal     # 用來顯示陽曆日曆  
	-1          # 顯示當前月日曆 
	-3          # 顯示上月,本月,下月日曆 
	-s          # 顯示的日曆是以週日為每週的第一天 
	-m          # 顯示的日曆是以週一為每週的第一天	
	 -j         # 日曆中顯示的數字是指此天為今年的第幾天 
	 -y         # 顯示今年的日曆
	 -V         # 顯示版本資訊並退出 
	-h          # 顯示此幫助文字並退出

在這裡插入圖片描述

[]             #選加,可以加也可以不加 
...            #加的個數可以時任意多個 
<>             #必須加不可缺少的資訊

[[email protected] Desktop]# cal 8 2018        # 顯示2018年8月的日曆
[[email protected] Desktop]# cal               #顯示當月的日曆
[[email protected] Desktop]# cal -j            #顯示自1月1日至當天的總天數

在這裡插入圖片描述

3.man ==manual  #當檢視檔案的幫助時,--help是不能使用的,必須用man命令來檢視幫助了
 (1)man的級別  
	 1 命令
	 2 核心呼叫的介面
	 3 函式庫
	 4 特殊檔案比如裝置檔案
	 5 系統檔案
	 6 遊戲
	 7 包資訊
	 8 系統密令
	 9 核心規則


[[email protected] Desktop]# man date      # 檢視date命令的幫助手冊
[[email protected] Desktop]# man 5 passwd  # 檢視/etc/passwd 檔案的幫助手冊 

(2)man使用時的快捷鍵
	 進入man頁面後 
		 pageup           # 向上翻頁 
		 pagedown         # 向下翻頁 
		 q                # 退出 
 注:當man或者whatis命令無法查詢幫助是,是因為系統沒有載入幫助資料庫 
 解決辦法:執行    mandb 

三·vim

1.編輯檔案 
	vim   檔名  
		進入瀏覽模式,按"i"鍵 進入插入模式開始編寫字元,編寫結束後按"ESC"鍵 退出插入模式,按":wq" 儲存退出,檔案編寫完成。 
	vim同時編輯多個檔案 
		先開啟一個檔案,再進行操作‘:sp ’+‘filename’  
		ctrl + w     # 實現游標在上下檔案視窗切換

在這裡插入圖片描述 在這裡插入圖片描述

注:
<1>當檔名稱存在,那麼進入檔案直接編輯,當檔名稱不存在,vim會在退出儲存時自動建立檔案,當vim命令後沒有跟任何檔名稱時,無法實現‘:wq’退出儲存的,那麼可以用":wq filename"
<2>當vim異常退出時,系統會建立.file.swp這個快取檔案,這個檔案中儲存著在‘:wq’動作之前儲存的資訊,當用vim對檔案做編輯的時候會提示   

O               #只讀開啟  
E               #直接忽略.file.swap資訊編輯檔案   
R               #利用.file.swap進行為儲存資料恢復   
D               #刪除.file.swap   
Q               #退出   
A               #終止 

在這裡插入圖片描述

2.vim的三種模式 
(1)命令模式

 A:  vim工作方式設定(命令模式是vim開啟檔案後預設進入的模式,這個模式中不能插入字元,但是可以設定vim的工作方式)
	 :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中是不能用滑鼠選擇區域操作的,如果要操作某個區域,需要進入到視覺化模式,在命令模式下 "ctrl + v"  就可以進入到可視模式了   按"上|下|左|右"移動游標選擇區域,按相應操作鍵就可以對選擇區域進行操作  	
	b.視覺化模式下批量新增字元
		 。把游標停留在想要加入字元所在的列的第一行 
		 。移動游標選擇新增字元所在列
		 。"I"進入插入模式 。寫入要插入的字元 
		 。按"ESC"退出插入模式,字元批量新增成功   

D:vim的字元替換  
	%s/原有字元/新字元/g         # 全文替換 
	1,5s/原有字元/新字元/g        # 替換1到5行的字元 
	g                            # 替換出現的所有關鍵字,如果不加"g"只替換每行出現的第一個 
	
E:總字元的查詢及游標的移動

	(1)字元的查詢 
		/關鍵字                      # 搜尋關鍵字 
		n                           # 向下匹配關鍵字 
		N                           # 向上匹配關鍵子 
注:按‘v’  由瀏覽模式進入vim模式,按‘i’進入編輯模式,按‘ECS’後按‘:wq’退出編輯模式進入瀏覽模式 
(2)游標的移動
	:數字           # 游標快速移動到指定行 
	gg              #游標移動到檔案的第一行 
	G               # 游標移動到檔案的最後一行
(3)插入模式
	 i          #在游標所在位置插入字元 
	 I          #游標所在行的行首插入字元 
	 o          # 游標所在行的下一行新行插入字元 
	 O          # 游標所在行的上以行新行插入 
	 s          # 刪除游標所在字元並插入字元 
	 S          # 刪除游標所在行並插入字元 
	 a          #游標所在字元的下一個字元插入 
	 A          # 游標所在行的行尾插入字元 
(4)退出模式 
 	:q      # 當vim進入檔案沒有對檔案內容做任何操作可以按"q"退出 
 	:q!      #當vim進入檔案對檔案內容有操作但不想儲存退出 
 	:wq    # 正常儲存退出 
 	:wq!    # 強行儲存退出,只針對與root使用者或檔案所有人生效  

四.萬用字元

1.字元匹配  
	*                        # 匹配0到任意字元 
	?                       # 匹配單個字元 
	[[:alpha:]]              # 匹配單個字母 
	[[:lower:]]              # 匹配單個小寫字母 
	[[:upper:]]              # 匹配單個大寫字母 
	[[:digit:]]              # 匹配單個數字 
	[[:alnum:]]              # 匹配單個數字或字母 
	[[:punct:]]              # 匹配單個符號 
	[[:space:]]              # 匹配單個空格 

[[email protected] Desktop]# cp -r /etc/*[[:digit:]]* .
[[email protected] Desktop]# ls
at-spi2              grub2.cfg  mke2fs.conf   rc0.d  rc5.ddbus-1               
gtk-2.0    pbm2ppa.conf  rc1.d  rc6.dDIR_COLORS.256color  gtk-3.0  
pkcs11        rc2.d  sasl2e2fsck.conf          iproute2   pnm2ppa.conf  
rc3.d  udisks2gnome-vfs-2.0        krb5.conf  polkit-1      rc4.d  X11

在這裡插入圖片描述

	{}                 # 精確指定目標,前提是指定的所有目標都必須存在
	{}{}               # 兩個括號裡的目標分別進行有順序的組合組合
	{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)‘!’和‘^’                        # 表示非,相反的 

3. 滑鼠點不動時,   ctrl  alt  f2 , init   3;ctrl  alt  f1 , init   5;