操做系統及編程語言歷史以及shell命令

操做系統OS:Windows,Linux,Windows,Android,iOS等html

操做系統的做用:向下控制硬件,向上支持軟件的運行,同時運行多個程序
操做系統發展歷史:用B語言寫了Unix系統(兼容性比較差),用C語言又從新寫了Unix系統 ,又新出了Minix系統,後來又新出了Linux系統,到如今的各類系統linux

編程語言發展歷史:BCPL到B語言,到C語言,到如今各類各樣的語言
編程語言分類:機器語言、彙編語言以及高級語言,最接近彙編語言的是C語言,計算機不能直接的理解高級語言,只能直接理解機器語言,因此必需要把高級語言翻譯成機器語言,計算機才能執行高級語言的編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不一樣。shell

 

Linux 目錄

  • /:根目錄,通常根目錄下只存放目錄,在Linux下有且只有一個根目錄。全部的東西都是從這裏開始。當你在終端裏輸入「/home」,你實際上是在告訴電腦,先從/(根目錄)開始,再進入到home目錄。
  • /bin、/usr/bin: 可執行二進制文件的目錄,如經常使用的命令ls、tar、mv、cat等。
  • /boot:放置linux系統啓動時用到的一些文件,如Linux的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub。
  • /dev:存放linux系統下的設備文件,訪問該目錄下某個文件,至關於訪問某個設備,經常使用的是掛載光驅 mount /dev/cdrom /mnt。
  • /etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X十一、/etc/sysconfig、/etc/xinetd.d。
  • /home:系統默認的用戶家目錄,新增用戶帳號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~edu 表示用戶 edu 的家目錄。
  • /lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程當中,須要調用一些額外的參數時須要函數庫的協助。
  • /lost+fount:系統異常產生錯誤時,會將一些遺失的片斷放置於此目錄下。
  • /mnt: /media:光盤默認掛載點,一般光盤掛載於 /mnt/cdrom 下,也不必定,能夠選擇任意位置進行掛載。
  • /opt:給主機額外安裝軟件所擺放的目錄。
  • /proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,因爲數據都存放於內存中,因此不佔用磁盤空間,比較重要的目錄有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
  • /root:系統管理員root的家目錄。
  • /sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如fdisk、shutdown、mount 等。與 /bin 不一樣的是,這幾個目錄是給系統管理員 root使用的命令,通常用戶只能"查看"而不能設置和使用。
  • /tmp:通常用戶或正在執行的程序臨時存放文件的目錄,任何人均可以訪問,重要數據不可放置在此目錄下。
  • /srv:服務啓動以後須要訪問的數據目錄,如 www 服務須要訪問的網頁數據存放在 /srv/www 內。
  • /usr:應用程序存放目錄,/usr/bin 存放應用程序,/usr/share 存放共享數據,/usr/lib 存放不能直接運行的,倒是許多程序運行所必需的一些函數庫文件。/usr/local: 存放軟件升級包。/usr/share/doc: 系統說明文件存放目錄。/usr/share/man: 程序說明文件存放目錄。
  • /var:放置系統執行過程當中常常變化的文件,如隨時更改的日誌文件 /var/log,/var/log/message:全部的登陸文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務啓動後,其PID存放在該目錄下。


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

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

命令 含義
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

 

 

拷貝文件:cp

選項 含義
-a 該選項一般在複製目錄時使用,它保留連接、文件屬性,並遞歸地複製目錄,簡單而言,保持文件原有屬性。
-f 已經存在的目標文件而不提示
-i 交互式複製,在覆蓋目標文件以前將給出提示要求用戶確認
-r 若給出的源文件是目錄文件,則cp將遞歸複製該目錄下的全部子目錄和文件,目標文件必須爲一個目錄名。
-v 顯示拷貝進度

 

移動文件:mv

用戶可使用mv命令來移動文件或目錄,也能夠給文件或目錄重命名。

選項 含義
-f 禁止交互式操做,若有覆蓋也不會給出提示
-i 確認交互方式操做,若是mv操做將致使對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以免誤覆蓋文件
-v 顯示移動進度

 

歸檔管理:tar

參數 含義
-c 生成檔案文件,建立打包文件
-v 列出歸檔解檔的詳細過程,顯示進度
-f 指定檔案文件名稱,f後面必定是.tar文件,因此必須放選項最後
-t 列出檔案中包含的文件
-x 解開檔案文件

注意:除了f須要放在參數的最後,其它參數的順序任意。

tar -cvf test.tar *

tar -xvf test.tar

 

文件壓縮解壓:gzip

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

 

文件壓縮解壓:bzip2

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、unzip

經過zip壓縮文件的目標文件不須要指定擴展名,默認擴展名爲zip。

壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件

解壓文件:unzip -d 解壓後目錄文件 壓縮文件

zip myzip *

unzip -d ./test myzip.zip

 

查看命令位置:which

which ls

 

查看當前用戶:whoami

 

查看登陸用戶:who

who命令用於查看當前全部登陸系統的用戶信息。

 

選項 含義
-m或am I 只顯示運行who命令的用戶名、登陸終端和登陸時間
-q或--count 只顯示用戶的登陸帳號和登陸用戶的數量
-u或--heading 顯示列標題

 

退出登陸帳戶: exit

若是是圖形界面,退出當前終端;

若是是使用ssh遠程登陸,退出登錄帳戶;

若是是切換後的登錄用戶,退出則返回上一個登錄帳號。

 

添加用戶帳號:useradd

在Unix/Linux中添加用戶帳號可使用adduser或useradd命令,由於adduser命令是指向useradd命令的一個連接,所以,這兩個命令的使用格式徹底同樣。

useradd命令的使用格式以下: useradd [參數] 新建用戶帳號

參數 含義
-d 指定用戶登陸系統時的主目錄,若是不使用該參數,系統自動在/home目錄下創建與用戶名同名目錄爲主目錄
-m 自動創建目錄
-g 指定組名稱

相關說明:

  • Linux每一個用戶都要有一個主目錄,主目錄就是第一次登錄系統,用戶的默認當前目錄(/home/用戶);
  • 每個用戶必須有一個主目錄,因此用useradd建立用戶的時候,必定給用戶指定一個主目錄;
  • 用戶的主目錄通常要放到根目錄的home目錄下,用戶的主目錄和用戶名是相同的;
  • 若是建立用戶的時候,不指定組名,那麼系統會自動建立一個和用戶名同樣的組名。
命令 含義
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 查看系統當前用戶名

 

設置用戶密碼:passwd

在Unix/Linux中,超級用戶可使用passwd命令爲普通用戶設置或修改用戶口令。用戶也能夠直接使用該命令來修改本身的口令,而無需在命令後面使用用戶名。

sudo passwd laobaizeishuai

 

刪除用戶:userdel

命令 含義
userdel abc(用戶名) 刪除abc用戶,但不會自動刪除用戶的主目錄
userdel -r abc(用戶名) 刪除用戶,同時刪除用戶的主目錄

 

切換用戶:su

能夠經過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

groupadd 新建組帳號 groupdel 組帳號 cat /etc/group 查看用戶組\

sudo groupadd laobai

sudo groupdel laobai

 

修改用戶所在組:usermod

使用方法:usermod -g 用戶組 用戶名

usermod -g xxx laobai

 

查看用戶在哪些組

groups laobai

usermod -a -G xxx laobai

groups laobai

 

爲建立的普通用戶添加sudo權限



sudo usermod -a -G adm 用戶名 sudo usermod -a -G sudo 用戶名

usermod -g 與 -G的區別

-g用來制定這個用戶默認的用戶組

-G通常配合'-a'來完成向其它組添加

 

修改文件權限:chmod

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:

  • 文件全部者:讀、寫、執行權限
  • 同組用戶:讀、執行的權限
  • 其它用戶:執行的權限
  • 注意:若是想遞歸全部目錄加上相同權限,須要加上參數「 -R 」。 如:chmod 777 test/ -R 遞歸 test 目錄下全部文件加 777 權限

 

修改文件全部者:chown

sudo chown laobai laobai.txt

 

修改文件所屬組:chgrp

sudo chgrp laobai laobai.txt

 

查看當前日曆:cal

cal命令用於查看當前日曆,-y顯示全年日曆

顯示或設置時間:date

format格式 含義
%Y,%y
%m
%d
%H
%M
%S

 

查看進程信息:ps

選項 含義
-a 顯示終端上的全部進程,包括其餘用戶的進程
-u 顯示進程的詳細狀態
-x 顯示沒有控制終端的進程
-w 顯示加寬,以便顯示更多的信息
-r 只顯示正在運行的進程

 

動態顯示進程:top

top命令用來動態顯示運行中的進程。top命令可以在運行後,在指定的時間間隔更新顯示信息。能夠在使用top命令時加上-d 來指定顯示信息更新的時間間隔。

在top命令執行後,能夠按下按鍵獲得對顯示的結果進行排序:

按鍵 含義
M 根據內存使用量來排序
P 根據CPU佔有率來排序
T 根據進程運行時間的長短來排序
U 能夠根據後面輸入的用戶名來篩選進程
K 能夠根據後面輸入的PID來殺死進程。
q 退出
h 得到幫助

 

終止進程:kill

kill -9 6560

 

關機重啓:reboot、shutdown、init

命令 含義
reboot 從新啓動操做系統
shutdown –r now 從新啓動操做系統,shutdown會給別的用戶提示
shutdown -h now 馬上關機,其中now至關於時間爲0的狀態
shutdown -h 20:25 系統在今天的20:25 會關機
shutdown -h +10 系統再過十分鐘後自動關機
init 0 關機
init 6 重啓

 

檢測磁盤空間:df

選項 含義
-a 顯示全部文件系統的磁盤使用狀況
-m 以1024字節爲單位顯示
-t 顯示各指定文件系統的磁盤空間使用狀況
-T 顯示文件系統

 

檢測目錄所佔磁盤空間:dudu命令用於統計目錄或文件所佔磁盤空間的大小,該命令的執行結果與df相似,du更側重於磁盤的使用情況。

選項 含義
-a 遞歸顯示指定目錄中各文件和子目錄中文件佔用的數據塊
-s 顯示指定文件或目錄佔用的數據塊
-b 以字節爲單位顯示磁盤佔用狀況
-l 計算全部文件大小,對硬連接文件計算屢次

 

查看或配置網卡信息:ifconfig

ifconfig

sudo ifconfig 網卡 ip # 修改網卡ip

 

測試遠程主機連通性:ping

ping www.baidu.com

ping 192.168.1.1

 

遠程登陸

ssh 用戶名@IP

而後輸入密碼 便可實現遠程登陸

xshell 用來用windows遠程鏈接Linux

相關文章
相關標籤/搜索