第二章 ?基本命令
2.1 ?用戶與權(quán)限管理
Linux是一個(gè)多用戶系統(tǒng),可以同時(shí)允許多個(gè)用戶同時(shí)在系統(tǒng)上進(jìn)行不同的操作,可以賦予不同用戶對(duì)不同文件的不同操作權(quán)限。用戶是Linux系統(tǒng)工作中的重要一環(huán),用戶的管理包括用戶與組賬戶的管理芹敌。在Linux安裝的過(guò)程中,系統(tǒng)會(huì)自動(dòng)創(chuàng)建許多用戶賬戶垮抗,這些默認(rèn)用戶被稱為‘標(biāo)準(zhǔn)用戶’氏捞。
Linux同樣有超級(jí)用戶 ? ?root ? ? ?,但是由于權(quán)限太高借宵,一般不建議使用超級(jí)用戶登錄幌衣。可以賦給部分用戶sudo的功能壤玫,使其具有部分超級(jí)用戶的權(quán)限。
1. ? whoami ? ? 查看系統(tǒng)當(dāng)前賬號(hào)的用戶名哼凯。
2. ?who ? ?查看當(dāng)前所有正在登錄系統(tǒng)的用戶信息欲间。常用選項(xiàng)有:
同一臺(tái)計(jì)算機(jī)中調(diào)出多個(gè)終端使用多個(gè)用戶,在who命令下只會(huì)顯示一個(gè)用戶名断部。
3. ? exit ? ? 退出當(dāng)前用戶猎贴,可以具體分為以下情況。
如果是圖形界面情況下蝴光,則退出當(dāng)前終端她渴;
如果是使用ssh遠(yuǎn)程登錄,則退出登陸賬戶蔑祟;
如果是經(jīng)切換后的登陸用戶趁耗,即用su命令改變的用戶,exit退出則返回上一個(gè)登陸賬號(hào)疆虚。
4.? useradd/adduser?? 添加用戶苛败,adduser是指向useradd命令的一個(gè)鏈接,兩者使用格式完全一樣径簿。
使用格式如下:
useradd [參數(shù)] 新建用戶賬號(hào)
注:
可選項(xiàng)-m可單獨(dú)使用罢屈,單獨(dú)使用時(shí)所創(chuàng)建的目錄名為新建用戶名;
可選項(xiàng)-d必須搭配-m使用篇亭,可自定義目錄名
在創(chuàng)建用戶的時(shí)候如果未指定組名缠捌,則系統(tǒng)會(huì)自動(dòng)創(chuàng)建于新建用戶名相同的組名。
5. ?passwd ? ? 超級(jí)用戶或者普通用戶加上sudo可以使用passwd命令為普通用戶設(shè)置或修改登錄口令译蒂,當(dāng)前用戶也可使用此命令修改自己的口令曼月,無(wú)需加上用戶名肃叶。
6. ?userdel ? 刪除用戶,可選項(xiàng)如下:
使用如:
7. ? su ? ? 切換不同用戶十嘿,su后面可以加“-”因惭。su和su –命令不同之處在于,su -切換到對(duì)應(yīng)的用戶時(shí)會(huì)將當(dāng)前的工作目錄自動(dòng)轉(zhuǎn)換到切換后的用戶主目錄绩衷。
前面提到的sudo命令的出處在此蹦魔,sudo是ubuntu平臺(tái)下允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具,減少了root 用戶的登陸和管理時(shí)間咳燕,提高了安全性勿决。
Ubuntu下切換到root的簡(jiǎn)單命令:
8. ?cat ?/etc/group或groupmod ?+ ?三次tab鍵 ? ?,查看都有哪些用戶組招盲。用戶組的存在給不同用戶的權(quán)限管理提供了便利性低缩,同一個(gè)組中的不同用戶可以有相同的權(quán)限。同時(shí)曹货,一個(gè)用戶可以有多個(gè)不同的組咆繁,用戶所在的組可以在創(chuàng)建用戶時(shí)指定,也可以在之后重新指定顶籽。
9. ?groupadd與groupdel ? ? ? ?添加與刪除組賬號(hào)玩般。使用如下:
10. ?usermod ? ? 修改用戶所在組。
使用格式:usermod -g 用戶組 用戶名
-g用來(lái)指定這個(gè)用戶默認(rèn)的用戶組
-G一般配合'-a'來(lái)完成向其它組添加礼饱,可以給用戶添加多個(gè)組
即 ?-g 為更換組坏为,將用戶從之前的組中抽取出來(lái)放入新組;-G為給用戶添加一個(gè)新的組屬性镊绪。
11. ? ?groups ? ? 查看用戶在哪些組
使用格式:groups 用戶名
12. ? 為普通用戶添加sudo權(quán)限匀伏。
新創(chuàng)建的用戶默認(rèn)不擁有sudo權(quán)限,如果想要為其添加sudo權(quán)限蝴韭,需要進(jìn)行下一步操作够颠。
兩步操作都要進(jìn)行:
sudo usermod -a -G adm 用戶名
sudo usermod -a -G sudo 用戶名
可以發(fā)現(xiàn)兩個(gè)步驟與第十條修改用戶所在組格式相同,即賦sudo權(quán)限給用戶即將用戶放在sudo與adm兩個(gè)組中万皿。
13. ?chmod ? ? 修改文件的權(quán)限
Linux可以將同一個(gè)文件以不同的狀態(tài)呈現(xiàn)在不同的用戶前摧找,有的用戶可修改、刪除牢硅,有的用戶只能查看蹬耘,有的用戶則無(wú)法查看。如果想改變這種狀態(tài)减余,可以使用chmod來(lái)修改文件的權(quán)限設(shè)置综苔。
chmod修改文件權(quán)限有兩種方式:字母法與數(shù)字法。
字母法:chmod u/g/o/a +/- /= ?rwx 文件名
例:創(chuàng)建了一個(gè)333.txt文件,初始狀態(tài)為
將333.txt的權(quán)限設(shè)置為rw-r-x-wx如筛,可以分別用字母法與數(shù)字法:
數(shù)字法更加快捷堡牡,但是不直觀;字母法直觀但是比較繁瑣杨刨,需要一步一步的設(shè)置晤柄。
注意:如果想遞歸所有目錄加上相同權(quán)限,需要加上參數(shù)“ -R ”妖胀。 如:chmod 777 test/ -R 遞歸 test 目錄下所有文件加 777 權(quán)限
14. ?chown ? ?修改文件所有者芥颈,文件所有者默認(rèn)為創(chuàng)建該文件的用戶。
可以用命令將文件所有者改變赚抡,如:chown du 333.txt
15. ?chgrp ? ?修改文件所屬組爬坑,
可以用命令將文件所屬組改變,如:chgrp wwpcc 333.txt
2.3 ?系統(tǒng)管理
16. ?cal ? ?查看當(dāng)前日歷
可選項(xiàng) ? ?-y ? ?顯示整年日歷
17. ?date ? ?顯示或設(shè)置時(shí)間
設(shè)置時(shí)間格式(需要管理員權(quán)限):date -s 時(shí)間格式
顯示時(shí)間格式(date '+%y/%m/%d ?%H:%M:%S')
18. ?ps ? ?查看進(jìn)程信息
進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序涂臣,它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元盾计。ps命令可以查看進(jìn)程的詳細(xì)狀況,常用選項(xiàng)(選項(xiàng)可以不加“-”)如下:
19. ?top ? ?動(dòng)態(tài)顯示進(jìn)程
top命令用來(lái)動(dòng)態(tài)顯示運(yùn)行中的進(jìn)程赁遗。top命令能夠在運(yùn)行后署辉,在指定的時(shí)間間隔更新顯示信息『鸷停可以在使用top命令時(shí)加上-d?來(lái)指定顯示信息更新的時(shí)間間隔涨薪。
在top命令執(zhí)行后,可以按下按鍵得到對(duì)顯示的結(jié)果進(jìn)行排序:
20. ?kill ? ?結(jié)束進(jìn)程炫乓,kill命令指定進(jìn)程號(hào)的進(jìn)程,需要配合ps 使用献丑。
使用格式:kill [-signal] pid
信號(hào)值從0到15末捣,其中9為絕對(duì)終止,可以處理一般信號(hào)無(wú)法終止的進(jìn)程
如:kill 1642
有些進(jìn)程不能直接殺死创橄,這時(shí)候我們需要加一個(gè)參數(shù)“ -9 ”箩做,“ -9 ” 代表強(qiáng)制結(jié)束。
21. ?reboot/shutdown/init ? ?關(guān)機(jī)與重啟
22. ?df ? ?檢測(cè)磁盤(pán)空間妥畏,df命令用于檢測(cè)文件系統(tǒng)的磁盤(pán)空間占用和空余情況邦邦,可以顯示所有文件系統(tǒng)對(duì)節(jié)點(diǎn)和磁盤(pán)塊的使用情況。
23. ?du ? ?檢測(cè)目錄所占磁盤(pán)空間醉蚁,du命令用于統(tǒng)計(jì)目錄或文件所占磁盤(pán)空間的大小燃辖,該命令的執(zhí)行結(jié)果與df類(lèi)似,du更側(cè)重于磁盤(pán)的使用狀況网棍。
du命令的使用格式如下:
du [選項(xiàng)] 目錄或文件名
24. ?ifconfig ? ?查看或配置網(wǎng)卡信息
25. ?ping ? ?測(cè)試遠(yuǎn)程主機(jī)連通性
ping ?www.baidu.com或ping ?10.10.21.103
URL域名或IP地址均可
26. ??apt-get ? ?在Ubuntu下黔龟,apt-get近乎是最常用的shell命令之一了宪巨,因?yàn)樗荱buntu通過(guò)新立得安裝軟件的常用工具命令。
下面列舉了常用的APT命令參數(shù):
apt-cache search package 搜索軟件包
apt-cache show package? 獲取包的相關(guān)信息背苦,如說(shuō)明荐捻、大小、版本等
sudo apt-get install package 安裝包
sudo apt-get install package--reinstall?? 重新安裝包
sudo apt-get -f install?? 修復(fù)安裝
sudo apt-get remove package 刪除包
sudo apt-get remove package --purge 刪除包蛋欣,包括配置文件等
sudo apt-get update? 更新源
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級(jí)系統(tǒng)
apt-cache depends package 了解使用該包依賴那些包
apt-cache rdepends package 查看該包被哪些包依賴
sudo apt-get build-dep package 安裝相關(guān)的編譯環(huán)境
apt-get source package? 下載該包的源代碼
sudo apt-get clean && sudo apt-get
autoclean 清理無(wú)用的包
sudo apt-get check 檢查是否有損壞的依賴
圖26.3 ?解決方法:
sudo pkill -KILL appstreamcli
wget -P /tmphttps://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.debhttps://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo?dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb?/tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb
2.4 ?vim編輯器
2.4.1 ?什么是vim
vi是“Visual interface”的簡(jiǎn)稱航徙,它在Linux上的地位就仿佛Edit程序在DOS上一樣。它可以執(zhí)行輸出陷虎、刪除到踏、查找、替換泻红、塊操作等眾多文本操作夭禽,而且用戶可以根據(jù)自己的需要對(duì)其進(jìn)行定制。Vi不是一個(gè)排版程序谊路,它不象Word或WPS那樣可以對(duì)字體讹躯、格式、段落等其他屬性進(jìn)行編排缠劝,它只是一個(gè)文本編輯程序潮梯。 vi沒(méi)有菜單,只有命令惨恭,且命令繁多秉馏。
Vim有三種基本工作模式:
+? 命令模式
+? 文本輸入模式
+? 末行模式
安裝
sudo apt-get update
sudo?apt-get install vim
2.4.2 ?命令行
進(jìn)入命令行:
任何時(shí)候,不管用戶處于何種模式脱羡,只要按一下ESC鍵萝究,即可使Vi進(jìn)入命令模式;我們?cè)趕hell環(huán)境(提示符為$)下輸入啟動(dòng)Vi命令锉罐,進(jìn)入編輯器時(shí)帆竹,也是處于該模式下。在該模式下脓规,用戶可以輸入各種合法的Vi命令栽连,用于管理自己的文檔。此時(shí)從鍵盤(pán)上輸入的任何字符都被當(dāng)做編輯命令來(lái)解釋?zhuān)糨斎氲淖址呛戏ǖ腣i命令侨舆,則Vi在接受用戶命令之后完成相應(yīng)的動(dòng)作秒紧。但需注意的是,所輸入的命令并不在屏幕上顯示出來(lái)挨下。若輸入的字符不是Vi的合法命令熔恢,Vi會(huì)響鈴報(bào)警。
2.4.3 ?文本輸入
在命令模式下輸入插入命令i复颈、附加命令a 绩聘、打開(kāi)命令o沥割、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式凿菩。在該模式下机杜,用戶輸入的任何字符都被Vi當(dāng)做文件內(nèi)容保存起來(lái),并將其顯示在屏幕上衅谷。在文本輸入過(guò)程中椒拗,若想回到命令模式下,按鍵ESC即可获黔。
2.4.4 ?末行模式
末行模式也稱ex轉(zhuǎn)義模式蚀苛。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下玷氏,此時(shí)Vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的提示符堵未,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫(xiě)到文件中等)盏触。末行命令執(zhí)行完后渗蟹,Vi自動(dòng)回到命令模式。
基本命令:
:set number 顯示行號(hào)
:set nonumber 去掉行號(hào)
:set encoding? 顯示編碼
:set encoding=utf-8? 設(shè)置編碼
如果要從命令模式轉(zhuǎn)換到編輯模式赞辩,可以鍵入命令a或者i雌芽;如果需要從文本模式返回,則按Esc鍵即可辨嗽。在命令模式下輸入“:”即可切換到末行模式世落,然后輸入命令。
2.4.5 ?vim基礎(chǔ)操作
vim是從 vi 發(fā)展出來(lái)的一個(gè)文本編輯器糟需。代碼補(bǔ)完屉佳、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富。
進(jìn)入插入模式:
i: 插入光標(biāo)前一個(gè)字符
I: 插入行首
a: 插入光標(biāo)后一個(gè)字符
A: 插入行未
o: 向下新開(kāi)一行,插入行首
O: 向上新開(kāi)一行,插入行首
進(jìn)入命令模式:
ESC:從插入模式或末行模式進(jìn)入命令模式
移動(dòng)光標(biāo):
h: 左移
j: 下移
k: 上移
l: 右移
M: 光標(biāo)移動(dòng)到中間行
L: 光標(biāo)移動(dòng)到屏幕最后一行行首
G: 移動(dòng)到指定行,行號(hào) G
w: 向后一次移動(dòng)一個(gè)字
b: 向前一次移動(dòng)一個(gè)字
{: 按段移動(dòng),上移
}: 按段移動(dòng),下移
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
gg: 光標(biāo)移動(dòng)文件開(kāi)頭
G: 光標(biāo)移動(dòng)到文件末尾
shift+6? 光標(biāo)到當(dāng)前行的行首
shift+4? 光標(biāo)到當(dāng)前行的行末
刪除命令:
x: 刪除當(dāng)前光標(biāo)一個(gè)字符,相當(dāng)于 Del
X: 刪除光標(biāo)前一個(gè)字符,相當(dāng)于 Backspace
dd: 刪除光標(biāo)所在行,n dd 刪除指定的行數(shù) D: 刪除光標(biāo)后本行所有內(nèi)容,包含光標(biāo)所在字符
d0: 刪除光標(biāo)前本行所有內(nèi)容,不包含光標(biāo)所在字符
dw: 刪除光標(biāo)開(kāi)始位置的字,包含光標(biāo)所在字符
撤銷(xiāo)命令:
u: 一步一步撤銷(xiāo)
Ctrl+r: 反撤銷(xiāo)
重復(fù)命令:
.: 重復(fù)上一次操作的命令
文本行移動(dòng):
>: 文本行右移
<: 文本行左移
復(fù)制粘貼:
yy: 復(fù)制當(dāng)前行,n yy 復(fù)制 n 行
p: 在光標(biāo)所在位置向下新開(kāi)辟一行,粘貼
可視模式:
v: 按字符移動(dòng),選中文本
V: 按行移動(dòng),選中文本可視模式可以配合 d, y, >>, << 實(shí)現(xiàn)對(duì)文本塊的刪除,復(fù)制,左右移動(dòng)
替換操作:
r: 替換當(dāng)前字符
R: 替換當(dāng)前行光標(biāo)后的字符
查找命令:
/: str查找
n: 下一個(gè)
N:上一個(gè)
:set hls 打開(kāi)高亮:set nohls 關(guān)閉高亮
替換命令:
把a(bǔ)bc全部替換成123
末行模式下洲押,將所以提議的abc替換成123
:%s/abc/123/g
末行模式下忘古,將第一行至第10行之間的abc替換成123
:1, 10s/abc/123/g
vim里執(zhí)行shell 下命令:
末行模式里輸入!,后面跟命令
放大縮寫(xiě):
ctrl - 縮小
ctrl shift +? 放大
ubuntu vim tab時(shí)設(shè)置為 4個(gè)空格:
編輯文件
sudo vim /etc/vim/vimrc
在最后加上
set ts=4
set expandtab
set autoindent? 如果報(bào)錯(cuò),將這句話換成 %retab!
2.5 ?SSH的使用
2.5.1 ?什么是SSH
SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議诅诱。SSH是目前較可靠,專(zhuān)為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議送朱。常用于遠(yuǎn)程登錄娘荡,以及用戶之間進(jìn)行資料拷貝。
利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露問(wèn)題驶沼。使用SSH服務(wù)炮沐,需要安裝相應(yīng)的服務(wù)器和客戶端』亓客戶端和服務(wù)器的關(guān)系:如果大年,A機(jī)器想被B機(jī)器遠(yuǎn)程控制换薄,那么,A機(jī)器需要安裝SSH服務(wù)器翔试,B機(jī)器需要安裝SSH客戶端轻要。
2.5.2 ?SSH的安裝與登錄
2.5.2.1 ?安裝
a.更新apt-get
sudo apt-get update
b.使用apt-get從網(wǎng)絡(luò)上下載并安sshserver
sudo apt-get install openssh-server
c.查看ssh進(jìn)程,如果能查到說(shuō)明安裝成功并啟動(dòng)了
ps -e | grep ssh
2.5.2.1 ?登錄
ssh 用戶名@IP
使用ssh訪問(wèn)垦缅,如訪問(wèn)出現(xiàn)錯(cuò)誤冲泥。可查看是否有該文件 ~/.ssh/known_ssh 嘗試刪除該文件解決壁涎。
2.5.3 ?使用ssh連接服務(wù)器
SSH 告知用戶凡恍,這個(gè)主機(jī)不能識(shí)別,這時(shí)鍵入"yes"怔球,SSH 就會(huì)將相關(guān)信息嚼酝,寫(xiě)入"
~/.ssh/know_hosts" 中,再次訪問(wèn)竟坛,就不會(huì)有這些信息了闽巩。然后輸入完口令,就可以登錄到主機(jī)了。
(1) ?scp
使用crt在windows和linux之間傳輸文件: ?alt+p
linux之間互相上傳下載的方式:
遠(yuǎn)程拷貝文件,scp -r 的常用方法:
1.使用該命令的前提條件要求目標(biāo)主機(jī)已經(jīng)成功安裝openssh-server
如沒(méi)有安裝使用 sudo apt-get install openssh-server 來(lái)安裝
2.使用格式:
scp -r 目標(biāo)用戶名@目標(biāo)主機(jī)IP地址:/目標(biāo)文件的絕對(duì)路徑? /保存到本機(jī)的絕對(duì)/相對(duì)路徑
拷貝單個(gè)文件可以不加 -r參數(shù)流码,拷貝目錄必須要加又官。
本地文件復(fù)制到遠(yuǎn)程:
scp FileName?RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp?FileName RemoteHostIp:RemoteFile
遠(yuǎn)程文件復(fù)制到本地:
scp RemoteUserName@RemoteHostIp:RemoteFileFileName
scp RemoteHostIp:RemoteFolder FileName
scpRemoteHostIp:RemoteFile FileName
遠(yuǎn)程目錄復(fù)制到本地:
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp-r RemoteHostIp:RemoteFolder FolderName
(2) ?使用vim書(shū)寫(xiě)python
開(kāi)發(fā)工具:pycharm集成開(kāi)發(fā)環(huán)境
vim,sublime,都是用來(lái)書(shū)寫(xiě)簡(jiǎn)單代碼
ubuntu里默認(rèn)的是python2.7,裝好了python3.5
第一種方式
第二種方式