操做系統OS:Windows,Linux,Windows,Android,iOS等html
操做系統的做用:向下控制硬件,向上支持軟件的運行,同時運行多個程序
操做系統發展歷史:用B語言寫了Unix系統(兼容性比較差),用C語言又從新寫了Unix系統 ,又新出了Minix系統,後來又新出了Linux系統,到如今的各類系統linux
編程語言發展歷史:BCPL到B語言,到C語言,到如今各類各樣的語言
編程語言分類:機器語言、彙編語言以及高級語言,最接近彙編語言的是C語言,計算機不能直接的理解高級語言,只能直接理解機器語言,因此必需要把高級語言翻譯成機器語言,計算機才能執行高級語言的編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不一樣。shell
Ubuntu操做系統安裝完成後要修改鏡像源(注意Ubuntu對應的鏡像版本)編程
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup #備份原先的鏡像源vim
vim /etc/apt/sources.list # 配置鏡像源地址windows
sudo apt-get update # 更新鏡像源網絡
sudo apt-get install package # 安裝軟件ssh
sudo apt-get remove package # 卸載軟件編程語言
sudo apt-cache search package # 搜索軟件包函數
sudo apt-cache show package # 獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package –reinstall # 從新安裝包
sudo apt-get –f install # 修復安裝
sudo apt-get remove package –purge # 刪除包,包括配置文件等
sudo agt-get build-dep package # 安裝相關的編譯環境
sudo apt-get upgrade # 更新已安裝的包
sudo apt-get dist-upgrade # 升級系統
sudo apt-cache depends package # 瞭解使用該包依賴哪些包
sudo apt-cache rdepends package # 查看該包被哪些包依賴
sudo apt-get source package # 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean # 清理無用的包
sudo apt-get check # 檢查是否有損壞的依賴
CTRL + ALT + T: 打開終端
ALT 1或2 切換終端
ALT 切換終端
CTRL + Shift+ 「+」 調大終端字體大小
CTRL+」-」調小終端字體大小
/ 斜槓
\ 反斜槓
- 橫槓
_ 下劃線
| 豎槓
shell命令
ls --help
man ls (按q退出,按f向下走一屏,按b向上走一屏,空格向下走一屏,Enter向下走一行)
man 2 ls
cat a.txt
more a.txt
ls /bin -alh | more
gedit a.txt
vim a.txt
history
!2074
sl
pwd
mv a.txt b.txt # 重命名
clear
ctrl + "c" # 取消命令
ls /bin -alh
ls 2*
ls 2?
ls 1[12345]3.txt
ls / -alh;ls /bin -alh
ls > a.txt
ls >> a.txt
參數 | 含義 |
---|---|
-a | 顯示指定目錄下全部子目錄與文件,包括隱藏文件 |
-l | 以列表方式顯示文件的詳細信息 |
-h | 配合 -l 以人性化的方式顯示文件大小 |
通配符 | 含義 |
---|---|
* | 文件表明文件名中全部字符 |
ls te* | 查找以te開頭的文件 |
ls *html | 查找結尾爲html的文件 |
? | 表明文件名中任意一個字符 |
ls ?.c | 只找第一個字符任意,後綴爲.c的文件 |
ls a.? | 只找只有3個字符,前2字符爲a.,最後一個字符任意的文件 |
[] | [」和「]」將字符組括起來,表示能夠匹配字符組中的任意一個。「-」用於表示字符範圍。 |
[abc] | 匹配a、b、c中的任意一個 |
[a-f] | 匹配從a到f範圍內的的任意一個字符 |
ls [a-f]* | 找到從a到f範圍內的的任意一個字符開頭的文件 |
ls a-f | 查找文件名爲a-f的文件,當「-」處於方括號以外失去通配符的做用 |
\ | 若是要使通配符做爲普通字符使用,能夠在其前面加上轉義字符。「?」和「*」處於方括號內時不用使用轉義字符就失去通配符的做用。 |
ls \*a | 查找文件名爲*a的文件 |
cd ./A
cd /home/Desktop/A
tab 自動補全
兩次tab
cd -
cd ~
命令 | 含義 |
---|---|
cd | 切換到當前用戶的主目錄(/home/用戶目錄),用戶登錄的時候,默認的目錄就是用戶的主目錄。 |
cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
cd . | 切換到當前目錄 |
cd .. | 切換到上級目錄 |
cd - | 可進入上次所在的目錄 |
touch a.txt
tree /bin
mkdir A
mkdir /A/B/C/D/E -p
rm a.txt
rmdir A # 必須爲空目錄
rm -r A
參數 | 含義 |
---|---|
-i | 以進行交互式方式執行 |
-f | 強制刪除,忽略不存在的文件,無需提示 |
-r | 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數 |
連接文件分爲軟連接和硬連接。
軟連接:軟連接不佔用磁盤空間,源文件刪除則軟連接失效。
硬連接:硬連接只能連接普通文件,不能連接目錄。
使用格式:
ln 源文件 連接文件 # 硬連接 ln -s 源文件 連接文件 # 軟連接
硬連接是同一個文件內容,可是有多個文件名
軟連接相似快捷方式
cat合併文件內容
cat a.txt b.txt > c.txt
cat a.txt b.txt >> c.txt
grep "a" a.txt
grep "^a" a.txt
選項 | 含義 |
---|---|
-v | 顯示不包含匹配文本的全部行(至關於求反) |
-n | 顯示匹配行及行號 |
-i | 忽略大小寫 |
參數 | 含義 |
---|---|
^a | 行首,搜尋以 m 開頭的行;grep -n '^a' 1.txt |
ke$ | 行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt |
[Ss]igna[Ll] | 匹配 [] 裏中一系列字符中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt |
. | (點)匹配一個非換行符的字符;匹配 e 和 e 之間有任意一個字符,能夠匹配 eee,eae,eve,可是不匹配 ee,eaae;grep -n 'e.e' 1.txt |
命令 | 含義 |
---|---|
find ./ -name test.sh | 查找當前目錄下全部名爲test.sh的文件 |
find ./ -name '*.sh' | 查找當前目錄下全部後綴爲.sh的文件 |
find ./ -name "[A-Z]*" | 查找當前目錄下全部以大寫字母開頭的文件 |
find /tmp -size 2M | 查找在/tmp 目錄下等於2M的文件 |
find /tmp -size +2M | 查找在/tmp 目錄下大於2M的文件 |
find /tmp -size -2M | 查找在/tmp 目錄下小於2M的文件 |
find ./ -size +4k -size -5M | 查找當前目錄下大於4k,小於5M的文件 |
find ./ -perm 0777 | 查找當前目錄下權限爲 777 的文件或目錄 |
sudo find ./ -name test.sh
選項 | 含義 |
---|---|
-a | 該選項一般在複製目錄時使用,它保留連接、文件屬性,並遞歸地複製目錄,簡單而言,保持文件原有屬性。 |
-f | 已經存在的目標文件而不提示 |
-i | 交互式複製,在覆蓋目標文件以前將給出提示要求用戶確認 |
-r | 若給出的源文件是目錄文件,則cp將遞歸複製該目錄下的全部子目錄和文件,目標文件必須爲一個目錄名。 |
-v | 顯示拷貝進度 |
用戶可使用mv命令來移動文件或目錄,也能夠給文件或目錄重命名。
選項 | 含義 |
---|---|
-f | 禁止交互式操做,若有覆蓋也不會給出提示 |
-i | 確認交互方式操做,若是mv操做將致使對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以免誤覆蓋文件 |
-v | 顯示移動進度 |
參數 | 含義 |
---|---|
-c | 生成檔案文件,建立打包文件 |
-v | 列出歸檔解檔的詳細過程,顯示進度 |
-f | 指定檔案文件名稱,f後面必定是.tar文件,因此必須放選項最後 |
-t | 列出檔案中包含的文件 |
-x | 解開檔案文件 |
注意:除了f須要放在參數的最後,其它參數的順序任意。
tar -cvf test.tar *
tar -xvf test.tar
tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包後的文件,其擴展名通常用xxxx.tar.gz。
選項 | 含義 |
---|---|
-d | 解壓 |
-r | 壓縮全部子目錄 |
gzip -r test.tar test.tar.gz # 壓縮
gzip test.tar # 壓縮
gzip -d test.tar.gz # 解壓縮
tar -zcvf test.tar.gz *
tar -zxvf test.tar.gz
tar -zxvf test.tar.gz -C /A
tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip同樣)。
tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包後的文件,其擴展名通常用xxxx.tar.gz2。
在tar命令中增長一個選項(-j)能夠調用bzip2實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
經過zip壓縮文件的目標文件不須要指定擴展名,默認擴展名爲zip。
壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
解壓文件:unzip -d 解壓後目錄文件 壓縮文件
zip myzip *
unzip -d ./test myzip.zip
which ls
who命令用於查看當前全部登陸系統的用戶信息。
選項 | 含義 |
---|---|
-m或am I | 只顯示運行who命令的用戶名、登陸終端和登陸時間 |
-q或--count | 只顯示用戶的登陸帳號和登陸用戶的數量 |
-u或--heading | 顯示列標題 |
若是是圖形界面,退出當前終端;
若是是使用ssh遠程登陸,退出登錄帳戶;
若是是切換後的登錄用戶,退出則返回上一個登錄帳號。
在Unix/Linux中添加用戶帳號可使用adduser或useradd命令,由於adduser命令是指向useradd命令的一個連接,所以,這兩個命令的使用格式徹底同樣。
useradd命令的使用格式以下: useradd [參數] 新建用戶帳號
參數 | 含義 |
---|---|
-d | 指定用戶登陸系統時的主目錄,若是不使用該參數,系統自動在/home目錄下創建與用戶名同名目錄爲主目錄 |
-m | 自動創建目錄 |
-g | 指定組名稱 |
相關說明:
命令 | 含義 |
---|---|
useradd -d /home/abc abc -m | 建立abc用戶,若是/home/abc目錄不存在,就自動建立這個目錄,同時用戶屬於abc組 |
useradd -d /home/a a -g test -m | 建立一個用戶名字叫a,主目錄在/home/a,若是主目錄不存在,就自動建立主目錄,同時用戶屬於test組 |
cat /etc/passwd | 查看系統當前用戶名 |
在Unix/Linux中,超級用戶可使用passwd命令爲普通用戶設置或修改用戶口令。用戶也能夠直接使用該命令來修改本身的口令,而無需在命令後面使用用戶名。
sudo passwd laobaizeishuai
命令 | 含義 |
---|---|
userdel abc(用戶名) | 刪除abc用戶,但不會自動刪除用戶的主目錄 |
userdel -r abc(用戶名) | 刪除用戶,同時刪除用戶的主目錄 |
能夠經過su命令切換用戶,su後面能夠加「-」。su和su –命令不一樣之處在於,su -切換到對應的用戶時會將當前的工做目錄自動轉換到切換後的用戶主目錄:
命令 | 含義 |
---|---|
su | 切換到root用戶 |
su root | 切換到root用戶 |
su - | 切換到root用戶,同時切換目錄到/root |
su - root | 切換到root用戶,同時切換目錄到/root |
su 普通用戶 | 切換到普通用戶 |
su - 普通用戶 | 切換到普通用戶,同時切換普通用戶所在的目錄 |
Ubuntu下切換到root的簡單命令:sudo -s
方法一:
cat /etc/group
方法二:
groupmod +三次tab鍵
groupadd 新建組帳號 groupdel 組帳號 cat /etc/group 查看用戶組\
sudo groupadd laobai
sudo groupdel laobai
使用方法:usermod -g 用戶組 用戶名
usermod -g xxx laobai
groups laobai
usermod -a -G xxx laobai
groups laobai
sudo usermod -a -G adm 用戶名 sudo usermod -a -G sudo 用戶名
-g
用來制定這個用戶默認的用戶組
-G
通常配合'-a'來完成向其它組添加
chmod 修改文件權限有兩種使用格式:字母法與數字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] | 含義 |
---|---|
u | user 表示該文件的全部者 |
g | group 表示與該文件的全部者屬於同一組( group )者,即用戶組 |
o | other 表示其餘之外的人 |
a | all 表示這三者皆是 |
[ +-= ] | 含義 |
---|---|
+ | 增長權限 |
- | 撤銷權限 |
= | 設定權限 |
rwx | 含義 |
---|---|
r | read 表示可讀取,對於一個目錄,若是沒有r權限,那麼就意味着不能經過ls查看這個目錄的內容。 |
w | write 表示可寫入,對於一個目錄,若是沒有w權限,那麼就意味着不能在目錄下建立新的文件。 |
x | excute 表示可執行,對於一個目錄,若是沒有x權限,那麼就意味着不能經過cd進入這個目錄。 |
若是須要同時進行設定擁有者、同組者以及其餘人的權限,參考以下:
chmod u=rw g=x o=r 1.py
chmod u= g= o= 1.py
數字法:「rwx」 這些權限也能夠用數字來代替
字母 | 說明 |
---|---|
r | 讀取權限,數字代號爲 "4" |
w | 寫入權限,數字代號爲 "2" |
x | 執行權限,數字代號爲 "1" |
- | 不具任何權限,數字代號爲 "0" |
如執行:chmod u=rwx,g=rx,o=r filename 就等同於:chmod u=7,g=5,o=4 filename
chmod 751 file:
sudo chown laobai laobai.txt
sudo chgrp laobai laobai.txt
cal命令用於查看當前日曆,-y顯示全年日曆
format格式 | 含義 |
---|---|
%Y,%y | 年 |
%m | 月 |
%d | 日 |
%H | 時 |
%M | 分 |
%S | 秒 |
選項 | 含義 |
---|---|
-a | 顯示終端上的全部進程,包括其餘用戶的進程 |
-u | 顯示進程的詳細狀態 |
-x | 顯示沒有控制終端的進程 |
-w | 顯示加寬,以便顯示更多的信息 |
-r | 只顯示正在運行的進程 |
top命令用來動態顯示運行中的進程。top命令可以在運行後,在指定的時間間隔更新顯示信息。能夠在使用top命令時加上-d 來指定顯示信息更新的時間間隔。
在top命令執行後,能夠按下按鍵獲得對顯示的結果進行排序:
按鍵 | 含義 |
---|---|
M | 根據內存使用量來排序 |
P | 根據CPU佔有率來排序 |
T | 根據進程運行時間的長短來排序 |
U | 能夠根據後面輸入的用戶名來篩選進程 |
K | 能夠根據後面輸入的PID來殺死進程。 |
q | 退出 |
h | 得到幫助 |
kill -9 6560
命令 | 含義 |
---|---|
reboot | 從新啓動操做系統 |
shutdown –r now | 從新啓動操做系統,shutdown會給別的用戶提示 |
shutdown -h now | 馬上關機,其中now至關於時間爲0的狀態 |
shutdown -h 20:25 | 系統在今天的20:25 會關機 |
shutdown -h +10 | 系統再過十分鐘後自動關機 |
init 0 | 關機 |
init 6 | 重啓 |
選項 | 含義 |
---|---|
-a | 顯示全部文件系統的磁盤使用狀況 |
-m | 以1024字節爲單位顯示 |
-t | 顯示各指定文件系統的磁盤空間使用狀況 |
-T | 顯示文件系統 |
選項 | 含義 |
---|---|
-a | 遞歸顯示指定目錄中各文件和子目錄中文件佔用的數據塊 |
-s | 顯示指定文件或目錄佔用的數據塊 |
-b | 以字節爲單位顯示磁盤佔用狀況 |
-l | 計算全部文件大小,對硬連接文件計算屢次 |
ifconfig
sudo ifconfig 網卡 ip # 修改網卡ip
ping www.baidu.com
ping 192.168.1.1
遠程登陸
ssh 用戶名@IP
而後輸入密碼 便可實現遠程登陸
xshell 用來用windows遠程鏈接Linux