1、更新換源檔案
第一步:下載下傳我的 sources.list 檔案 放到共享目錄下
第二步:在終端中 共享目錄下 找到sources.list 檔案
第三步:進入linux 下的 /etc/apt 目錄 執行以下指令
sudo rm sources.list
即删除 該目錄下 的 換源檔案 sources.list
注意:此時需要輸入密碼 并且密碼輸入是隐式的
第四步:進入共享目錄下 再次找到 sources.list 檔案後
執行以下指令 sudo cp sources.list /etc/apt
第五步:再次進入 /etc/apt 目錄 檢視 sources.list檔案是否存在
即執行指令 ls 看檔案是否存儲
第六步:如果檔案存在 則 執行以下指令換源
sudo apt-get update
注意:需要有網絡才可以換源成功
2、安裝 vim編輯器
注意:請先進入共享檔案夾下
首先測試自己的vim編輯器是否可用
測試方法:
vim 1.txt
可以看到 打開了一個檔案
退出 請先按esc鍵 然後 輸入 :wq 即可退出
安裝方式 即執行以下指令即可: sudo apt-get install vim
3、擷取聯機幫助
linux下提供了兩種聯機幫助的方式
3.1、man
功能最強大 最專業 最齊全的 線上幫助手冊
使用方式: man 頁碼 指令or函數
退出:使用q鍵即可退出
ex: 比如 linux的ls這條指令 不會用 直接 man ls就可以查到他的用法
ex: 在我們學習的 C語言中 有部分函數 不會使用 malloc 不會用 man malloc 即可
關于頁碼是可以預設的
一般情況下 系統的指令在第1頁
ex: man 1 ls
标準庫函數 是在 第3頁
ex: man 3 printf
系統函數 一般是在 第2頁
ex: man 2 read
3.2、info
使用方式 和 man是相同的 但是内容沒有man齊全
使用q退出
ex: info printf
4、基本系統維護指令
4.1、reboot
重新開機指令 如果提示你沒有權限 則需要添加 sudo
即: sudo reboot
4.2、shutdown
關機指令 如果提示沒有權限則添加 sudo
使用方式如下:shutdown -n now 可以設定多久之後關機
關于關機指令還有其他指令:half power off
ex: shutdown 2 now 表示 2minutes 後關機
4.3、sudo
切換到進階使用者 即root使用者 可以了解為給權
ex: sudo apt-get install vim
有一個權限 可以更新擷取安裝vim編輯器
ex: sudo -s
即切換到進階使用者,s表示的是 super user 即超級使用者 擁有一切權限
如何退出 超級使用者 使用 exit即可
注意訪客是不可以切換的
sudo在一個終端中如果輸入了一次密碼則無需再次輸入
4.4、echo
即輸出的意思
echo "字元串"
即将字元串輸出到 終端
ex: echo "hello world!"
螢幕将輸出 hello world!
echo 也可以 定向輸入到檔案中
ex: echo "hello world" >> 1.txt
将輸出的結果輸出到 1.txt這個檔案中
注意 :如果這個檔案不存在則建立
4.5、date
輸出目前的時間和日期
ex: date
4.6、cal
輸出所有的月曆,目前日期使用陰影部分表示
也可以帶參數輸出
ex: 如果要檢視 2018年的月曆 那麼輸入指令 cal 年份
cal 2018
ex: 如果要指定某一年的某一月 那麼輸入指令 cal 月份 年份
cal 2 2022
4.7、clear 清屏指令
注意其并不是清屏 應該說是新開一屏
原因:之前輸入的内容和輸出的命名行 上翻即可看到
4.8、反号
按鍵位于 esc鍵的下面 就是~号這個按鍵
其在shell 腳本中有一個非常關鍵的作用 就是引用另一個指令的輸出
作為目前指令的輸入
ex: echo `date`
即echo 輸出 date的輸出
date指令的 輸出結果作為了 echo指令的輸入
這個輸入可以了解為指令參數
4.9、>> 叫做流向符
即将結果流向到那個位置
ex: echo "hello" >> 1.txt
5、使用者組資訊檔案及使用者管理指令
5.1、使用者組資訊檔案
位于 /etc/group 檔案中 我們可以使用vim編輯器打開這個檔案
指令格式:
vim /etc/group
檔案資訊如下:
root:x:0:
adm:x:4:syslog,gec
以上的資訊其實分為四部分 使用的是 :隔開
第一部分 叫做使用者組名
root 就是root使用者組
adm 就是adm使用者組
第二部分 x
加密密碼
一般情況下 linux系統下的使用者都存在密碼
如果該字段為空則表示 這個使用者組沒有密碼
第三部分:即小組編号
0 4 都表示第幾組
第四部分:組内的使用者
4組有兩個使用者
syslog system login 系統登入使用者
5.2、基本使用者管理指令
5.2.1添加使用者:
adduser 使用者名
ex: adduser zacoh
如果有提示沒有權限加sudo
5.2.2删除使用者:
userdel 使用者名
5.2.3修改使用者密碼:
passwd 使用者名
ex: passwd zacoh
5.2.4建立使用者組:
addgroup 使用者組名
ex: addgroup my
5.2.5删除使用者組:
groupdel 使用者組名
ex: groupdel my
6、linux下的程序管理
6.1、linux下程序的幾種基本狀态
D: 不可中斷的程序
R: 正在執行的程序
S:靜止的程序 或者 已經被中斷的程序
T:暫停執行的程序
Z:将是程序
< 高優先級的程序
N 低優先級的程序
W 沒有足夠運作記憶體的程序 即資源不足的程序
L 正在配置設定記憶體的程序
什麼是程序:就是你自己寫的程式的執行過程就是程序
./a.out 就是建立一個程序執行程式
6.2、如何檢視程序及其狀态
6.2.1 ps 檢視目前終端下的程序
ps 不加任何字尾 将出現以下内容
(程序号 系統啟動時的終端裝置 運作的時間 程序的名字)
PID TTY TIME CMD
2385 pts/2 00:00:00 bash
3340 pts/2 00:00:00 ps
ps -f 表示後面可以加字尾
f的取值如下:
-aux 檢視程序的裝填 可以看到CPU和記憶體的使用率
ex: ps -aux
-ef 詳細檢視程序的資訊
ex: ps -ef
UID PID PPID C STIME TTY TIME CMD
使用者ID 程序号 父程序号 程序的聲明周期 開始運作的時間 系統啟動時的終端裝置 運作多久了 程序的名字
即哪一個程序
建立的他
死循環一直在執行 你想結束 我們一般是按 ctrl+ c
結束 你不小心按了ctrl+z 将會讓這個正在運作的程式停止
接下來檢視這個程序 看它的狀态是什麼
ps -aux
glc 3388 5.0 0.0 2024 276 pts/2 T 01:20 0:01 ./a.out
程序狀态為 T 表示 暫停執行的程序
那如何幹掉這個程序呢?使用以下指令
6.2.2 kill 即 發送一個信号給一個指定的程序
使用方法:
kill -信号 程序号
ex: kill -9 3385
就是給 3385 這個程序發送一個信号9,9表示殺死
6.2.3 top
實時并且按照CPU的占用率檢視程序 相當于 windows下的 任務管理器
按q可以退出
6.2.4 pstree
以程序樹的方式檢視程序
ex: pstree
相當于以族譜的方式
按q鍵退出
7、linux基本操作指令
7.1、pwd
擷取目前路徑的 絕對路徑名
使用方法: pwd
絕對路徑:從根目錄出發的路徑,根目錄以 / 表示,絕對路徑就是以 /打頭的
相對路徑:從目前目錄出發的,目前目錄一般是以.表示,是以目前目錄以.打頭 也可以預設
ex: /mnt/hgfs 這就是linux下的臨時挂載目錄
從 /即根目錄出發 有一個mnt檔案夾下又有一個hgfs檔案夾
我們共享目錄就在這個檔案夾下
因為是将windows下的檔案夾挂載在 linux下 這是一個絕對路徑
./.. 這個表示目前目錄的上一級目錄 就是一個相對路徑
相對于目前路徑 可以預設 ./ ..即可表示上一級目錄
7.2、cd
進入一個目錄或者切換工作路徑
使用方法:cd 檔案路徑名
路徑名 可以使相對路徑 也可以是絕對路徑
ex: cd /mnt/hgfs
進入挂載目錄
/ 表示根目錄 就是計算機目錄
~ 表示家目錄 就是你所處的一個個使用者目錄
是 HOME目錄即主檔案夾 不是home(就是根目錄下的home)
home下的使用者名檔案内才是我們的家目錄
. 表示目前目錄
.. 表示上一級目錄
- 表示上次通路的目錄
7.3、ls
列出目前檔案夾下的所有檔案
使用方法:ls options
注意:此處使用也可以不需要options,即直接使用ls
則功能是列出目前檔案夾下的所有檔案名 不包括隐藏檔案
ex: ls
options 表示的意思是字尾操作,可以取以下幾個值:
-l
ex: ls -l
表示列出目前檔案夾下所有檔案的具體資訊 但是不包括隐藏檔案
之後會看到 以下的内容:
-rwxrw-rw- 1 gcl gcl 84380262 Jul 10 2015 arm-2009q3.tar.bz2
分段處理
第一個字元表示檔案的類型:
- 表示該檔案是一個普通檔案 即ASCII碼組成的檔案
d 表示這是一個目錄檔案 也就是檔案夾
l 表示這是一個連結檔案 即快捷方式
p 管道檔案
c 字元裝置檔案
b 塊裝置檔案
s 套接字檔案
第二個字元 到第10個字元表示該檔案的操作權限
rwxrwxrwx
rwx
r 表示可讀
w 表示可寫
x 表示可執行
那麼如果沒有改權限則 使用 -表示
第二個到第四個 表示檔案所有者權限
ex: 你買了一袋洗衣粉 你就是這袋洗衣粉的所有者
-rwxrw-rw-
檔案所有者 具有可讀可寫可執行的權限
第五個到第七個 表示檔案所屬使用者組的權限
ex: 你買了一袋洗衣粉放到了宿舍,則宿舍内部成員就是使用者組内
-rwxrw-rw-
檔案所有者 具有可讀可寫可執行的權限
rw- 即可讀 可寫 但是 不可執行
第八個到第十個 表示其他使用者權限
就是除了你宿舍的之外 也就是其他宿舍的
-rwxrw-rw-
rw- 可讀可寫但是不可執行
此處的 1 表示使用者組号
之後的兩個gec 分别表示 使用者組名 和使用者名
後面有一個資料 這個資料表示檔案的大小
後面的就是建立檔案的日期
再後面 就是檔案名字
-a
ex: ls -a
将所有檔案列出來包括隐藏檔案 (隐藏檔案:linux下所有以 .開頭的都是隐藏檔案
-lh 人性化顯示
ex: ls -lh
并沒有多人性化,隻不過将大小給了一個機關而已
-t
ex: ls -t
以時間順序顯示
7.4、touch
用于建立一個新的空文本檔案
ex: touch 1.txt
7.5、file
檢視一個檔案的類型
使用方法:file 檔案名
ex: file 1.txt
7.6、cp
文本拷貝指令
使用方法:cp 檔案名 目标路徑
ex: cp 1.txt /mnt/hgfs/share
7.7、mkdir
建立一個檔案夾
使用方式:mkdir 檔案夾名字
ex:mkdir zzz
7.8、rm
删除檔案的指令
使用方式:rm 檔案名
ex: rm 1.txt
rm沒有辦法直接删除檔案夾,如果需要則需要要添加一個字尾
rm zzzz -rf
7.9、rmdir
删除一個檔案夾
注意:僅可以删除空檔案夾
ex: rmdir zzzz
7.10、mv
移動檔案 其本質就是剪切
使用格式:mv 檔案名 路徑名
ex: mv 1.txt zzzz
注意:如果後面的跟的不是路徑名而是一個檔案名,這條指令将不是移動而是重命名
ex: mv 1.txt 3.txt
将1.txt 重命名為 3.txt
8、顯示普通檔案的常用指令
8.1、cat
将檔案的内容輸出到标準輸出 即螢幕或者終端 可以了解為預覽
使用方式:cat options 檔案名
options可以預設 即直接輸出檔案資訊
ex: cat 2.txt
options 可以取以下值
-n 加上行号顯示
-b 隻給有文本的行加上行号 即空行不需要行号
-s 将多個空行 合并為一個空行
注意:由于版本問題可能導緻無法有正确的結果操作
8.2、tac
反向輸出 即先輸出最後一行 ..... 最後輸出第一行
ex: tac 2.txt
8.3、more
是cat的更新版 可以分屏顯示文本内容
回車 是一行行顯示
空格 是一頁頁顯示
= 顯示目前顯示的行号
. 執行上一次的操作
ctrl+B 顯示上一頁
q退出顯示
8.4、less
是more的更新版 能夠相容上下鍵
q退出顯示
回車 是一行行顯示
空格 是一頁頁顯示
= 顯示目前行号
ctrl+B 顯示上一頁
8.5、head
顯示文本的前10行
如果加上字尾則有以下
-n num 表示顯示前 num行
-c num 表示顯示前 num個字元
8.6、tail
顯示文本的後10行
如果 加上字尾則有以下
-n num 表示顯示後 num行
-c num 表示顯示後 num個字元
9、軟連結與硬連結
連結檔案:使用 l來表示 即 link,連結檔案分為兩類:
9.1硬連結
相當于副本,即備份
ex: 在windows下的同一檔案複制到目前檔案,有一個副本産生 這個副本就是硬連結
在linux下的建立方式如下:
ln (target) (link-name 建立的名字)
ex: ln 1.txt xx
注意:不能跨檔案系統建立硬連結
是以不能在共享目錄下建立硬連結
因為共享檔案夾是 windows的而建立連結是linux不能跨作業系統
對于硬連結檔案的操作如下:
1、如果修改了 源檔案則會影響到連結檔案
2、如果修改了 連結檔案 則也會影響到 源檔案
3、如果删除 連結檔案則 不會影響源檔案
4、如果删除 源檔案 那麼連結檔案将忘記自己是一個連結檔案,進而成為一個新的普通檔案
注意(硬連結檔案本身就是一個普通檔案 因為檢視檔案類型顯示是一個普通檔案)
9.2軟連結:
相當于快捷方式
建立方式:ln -s (target) (link-name連結名字)
ex: ln -s 1.txt xxxx
注意:軟連結檔案不能跨系統建立但是可以跨系統連結
即我們建立的軟連結檔案可以拷貝到共享目錄
對于 軟連結檔案的操作如下:
1、如果修改了源檔案則會影響到連結檔案
2、如果修改了 連結檔案 則也會影響到 源檔案
3、如果删除 連結檔案則 不會影響源檔案
4、如果删除 了源檔案 連結檔案将無法使用
簡述硬連結與軟連結的差別:
1、硬連結檔案是對一個已存在檔案進行備份
不允許經過任何目錄建立硬連結檔案(即硬連結與源檔案必須在同一個檔案夾下)
并且隻能在同一個檔案系統内建立(不能跨系統)
是以不能在 共享檔案夾下建立硬連結
2、軟連結可以再任意目錄下 或者 跨路徑建立
但是隻能在同一檔案系統中(即在同一個系統中建立)
但是可以跨路徑使用
10、linux下的檔案歸檔與壓縮
linux下有兩種壓縮格式:
bzip 生成的檔案字尾為 .bz2
gzip 生成的檔案字尾為 .gz
在linux 下雖然 zip指令 可以很好的壓縮檔案但是
它不是标準的歸檔壓縮指令 标準的歸檔壓縮指令是 tar
使用方式:tar function [optins] obj1 obj2 ....
function 一般放到最開頭的位置
有兩個取值:
-j 表示使用tar生成歸檔壓縮檔案或者釋放壓縮檔案格式為 bzip格式
-z 表示使用tar生成歸檔壓縮檔案或者釋放壓縮檔案格式為 gzip
optins 有以下幾個選項
-c 表示建立壓縮檔案 create
-x 表示釋放一個壓縮檔案
-f 制定歸檔檔案的内容 一般放到最後
-v 顯示歸檔和壓縮的具體系統
ex: 壓縮檔案:
tar -jcvf xx.bz2 1.txt 2.txt ...
使用tar指令 壓縮 格式為 .bz2 生成一個壓縮檔案
xx.bz2 裡面将壓縮 1.txt 2.txt .. 等等檔案
釋放:
tar -jxvf xx.bz2
11、apt線上更新
APT是ubuntu中功能做強大最齊全的軟體包管理工具
其是用于擷取、安裝、解除安裝、軟體應用的工具,相當于是軟體管家
實作原理:
ubuntu采用集中式的軟體管理
将各種軟體包分門别類的存儲到哥哥軟體庫中進行有效的組織管理
管理方式類似于藥房的管理:
然後将這些倉庫防止于許多的鏡像伺服器中(伺服器相當于醫院)
并且保護基本一緻(即看病取藥的流程基本一緻)
這樣 ubuntu的使用者就可以随時下載下傳更新安裝包 用于安裝軟體
由于每一位ubuntu使用者(醫生)所處的環境不一樣(在不同的科室)
不可以随意的通路各個鏡像伺服器 并且每個鏡像伺服器中有哪些資源
也是不清楚的,那麼就需要在每個伺服器中找到一個一一對應的 表格
這個表格上面告訴你哪些軟體包在那個位置,如果這個位置沒有則去其他位置找!
這張表格就是我們所說的 sources.list 即換源檔案
如果要更新這張表格 則 需要 執行以下語句
sudo apt-get update
首先軟體包有很多 每個軟體的功能不同是以需要分類
這類似于藥房的管理:即藥房對于藥品而言否是分類管理的
每一類的藥品可以存放到不同的鏡像伺服器
這裡的鏡像伺服器相當于醫院,醫院有有很多
放了很多不同的藥品
有人去看病 不能讓病人直接拿藥
是以藥房和醫院的使用者 對應的醫生
不同的醫生在不同的科室對于藥品的權限操作也是不同的
那麼這些醫生需要知道自己能夠開什麼藥 這個就要有一張表格
sources.list 就是用于更新這張表格的
告訴醫生 那些藥在那個伺服器中有
軟體源的選擇 就是看 sources.list 這個檔案連結的是
那些鏡像伺服器中的源:
ex: 中科大
複旦
清華
阿裡
.....
APT 提供了一些常用的指令
(重要)apt-get 用于軟體的安裝 解除安裝和更新
(重要)apt-cache 用于查詢軟體包資訊
apt-proxy 用于搭建APT代理伺服器 (自己搭建一個 apt伺服器)
apt-show-versions 用于顯示系統中軟體包的版本資訊
apt-confing 用于讀取apt配置檔案的簡單工具
apt-cdrom 用于将CD-ROM加載刀刀如那件源配置檔案中
apt-get 的用法:
格式:apt-get subcommand pagesname
subcommand 有以下的取值:
install 表示安裝
update 更新
remove 解除安裝
source 下載下傳源碼倉 (對于開源的軟體包)
build-dep 為源碼包建構所需要的編譯環境
dist-upgrade 釋出更新 版本更新
clean 删除老版本的下載下傳檔案 即存儲在下載下傳區的臨時檔案
check 檢查系統中的依賴關系的完整性
pagesname
軟體包名字
ex: apt-get install vim //更新安裝和更新vim編輯器的
apt-get update //更新 更新換源清單 後面不可以跟軟體包參數
apt-get remove //軟體包 用于解除安裝軟體工具
apt-get source vim //下載下傳vim的源碼倉
apt-get build-dep vim //為vim源碼搭建編譯環境
apt-get clean 無需字尾軟體包
apt-get check 無需字尾軟體包
apt-cache 的使用:
格式:apt-cache subcommand pagesname
subcommand 可以取以下的值:
showsrc 擷取源碼包的詳細資訊
search 根據正規表達式檢查軟體包 //暫時無法使用
depends 擷取源碼包的依賴關系
pkgnames 列出所有已經安裝的軟體名
stats 擷取源碼包的統計資料
show 擷取版本号和依賴關系
showpkg 擷取依賴關系
ex: apt-cache showsrc vim
apt-cache depends vim
apt-cache pkgnames //無需字尾軟體包
apt-cache stats vim
apt-cache show vim
apt-cache showpkg vim
12、vim編輯器的使用
vi/vim文本編輯器是linux下功能最強大的文本編輯器,也是最常用的文本編輯器
其有三個模式:
指令模式:鍵盤上所有的輸入都會成為指令
輸入模式:鍵盤上所有的輸入都會當做文本寫到到檔案
末行模式:在指令模式下輸入:後進入該模式
此時輸入的所有字元顯示在末行稱之為末行模式
注意:vim 編輯器打開一個檔案預設進入的是指令模式
指令模式進入輸入模式:
a 光标向後偏移一個位元組 進入
A 光标移動到行尾巴進入
i 光标位置不動進入
I 光标移動到行首進入
o 将會在光标所在行下一行新增一行進入,并且光标停留在新行的行首
O 将會在光标所在行上一行新增一行進入,并且光标停留在新行的行首
輸入模式進入指令模式:按 ESC鍵即可
指令模式到末行模式:按 ESC鍵即可
輸入模式到末行模式:先按 ESC鍵 再按:号
基本指令:必須在指令模式下敲
12.1文本删除操作:
x 删除光标後所處的字元 如果在前面加上一個數字n
則表示删除光标所處位置開始向後的n個字元,包括光标所在的字元
X 删除光标所處位置前面的字元 如果在前面加上一個數字n
則表示删除光标所處位置開始前的n個字元,不包括光标所在的字元
dd 删除光标所在的行
若在在前面加上一個數字n,則表示删除目前行以及之後的n-1行
D or d$ 删除光标位置到行尾的内容
d0 删除從光标位置到行首的内容
dw/dW 删除一個單詞
若光标在某個單詞的中間 則從光标位置之後開始删除到詞尾
若在在前面加上一個數字n,則表示删除目前光标位置以及之後的 n-1個單詞
注意 w 與 W 單詞的劃分方式不同:(w 比 W 劃分單詞更加嚴格
1、兩個空格之間是一個詞即 W 表示
2、英文單詞 标點符号 和非字元符号之間的是一個詞 w
d回車 删除目前行以及之後的一行,即删除兩行
12.2文本複制操作:
注意:vim下面是不能夠使用ctrl+c ctrl+v 複制的,隻能用過指令行複制
Y 複制光标所在的行
若在其前面加上一個數字n 則表示複制光标所在的行及其之後的 n-1行
y$ 複制光标所在位置及行尾的内容
yw/yW 複制一個單詞
若在其前面加上一個數字n 則表示複制光标所在的詞及其之後的 n-1個詞
注意 w 與 W 不同即單詞的劃分不同
y回車 表示複制目前行及其下一行的内容
p 表示粘貼到下一行
P 表示粘貼在 上一行
shift+p 表示粘貼到本行
12.3文本選擇指令:
v:在指令模式下進行文本的選擇
使用方法:在需要選擇的文本處按下v
進入塊選擇模式移動光标到行尾(以字元為機關)
V: 在指令模式下進行文本的選擇
使用方法:在需要選擇的文本處按下V
進入行選擇模式 移動上下鍵即可(以行為機關)
12.4複制粘貼操作:
1、使用文本選擇指令選擇文本 按下 Y/y 複制,在粘貼處按下p即
注意:Y 與 y有所不同, Y是整行對應 V , y整塊對應 v
2、直接輸入n行号co n 粘貼行
可直接複制但必須在末行模式下
12.5撤回指令:
u 撤回
ctrl+r 取消撤回
.表示繼續執行上一條指令
12.6vim末行操作:
儲存與退出
q 表示直接退出
q! 表示強制退出
x / wq 儲存并退出
w 儲存
w 檔案名 就是另存為
wq! 儲存并強制退出
$前往最後檔案尾部
12.7查找文本指令:
/string 從光标後開始查找string字元串
查找的内容可以使用n N檢視
n 下 N 上
12.8替換文本指令:
%s/ostring/nstring
将ostring替換為 nstring
後面可以跟字尾, c 表示一個個替換, g 表示替換所有的