-
命令解析器
Shell ----- UNIX操作系統
Bash ----- Linux操作系統
本質:根據命令的名字,調用對應的可執行程序 -
Linux快捷鍵
history 查看歷史命令
ctrl + p 在歷史的命令記錄裏向上滾動
ctrl + n 在歷史的命令記錄裏向下滾動
ctrl + b 光標向前移動
ctrl + f 光標向後移動
ctrl + a 光標直接到命令行首
ctrl + e 光標直接到命令行末
backspace/ctrl + h刪除光標前面的字符
ctrl + d刪除光標後面的字符
ctrl + u刪除光標前面的所有字符
table鍵補全或者提示命令
ls 表示查看(如果後面不跟路徑,就表示查看當前的目錄,如果後面跟着路徑表示查看該路徑下的目錄)
clear 清屏
pwd(print working directory)顯示當前目錄的絕對路徑 -
Linux系統的目錄結構
Linux系統下沒有盤符
/ 表示Linux下的根目錄- /bin:
bin是Binary的縮寫,裏面存放的是最經常使用的命令,每一個命令代表一個可執行程序,在terminal裏面輸入命令然後在在配置環境變量,命令就會找到bin目錄,然後執行相對應的程序 - /boot:
這裏存放的是啓動Linux時使用的一些文件,包括一些連接文件及鏡像文件 - /dev:
dev是Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在linux中訪問設別和訪問文件的方式是相同的 - /etc:
這個目錄用來存放所有的系統管理所需要的配置文件和子目錄 - /home:
用戶的主目錄,在linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的 - /lib:
這個目錄存放着最基本的動態連接共享庫,其作用類似於windows裏的DLL文件,幾乎所有的應用程序都需要用到這些共享庫 - /lost-found:
這個目錄一般下是空的,當用戶非法關機後,這裏面就存放了一些文件 - /media
linux系統自動識別一些設備,例如,U盤,光驅等,當自動識別後,linux會把識別的設別掛載到這個目錄下 - /mnt
系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了 - /opt
這是給主機額外安裝軟件所擺放的目錄,比如安裝一個oracle數據庫的時候就可以放到這個目錄下,默認是空的 - /proc
這個目錄是一個虛擬的目錄,他是系統內存的映射,我們可以直接訪問這個目錄來獲取系統信息
這個目錄的內容不在硬盤上而是在內存裏,我們也可以直接修改裏面的某些文件,比如可以通過下面的命令來屏弊主機的ping命令,使別人無法ping你的機器 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all - /root
該目錄爲系統管理員,也稱爲超級權限者的用戶的主目錄 - /sbin
S就是super user的意思,這裏存放的使系統管理員使用的系統管理程序 - /tmp
這個目錄是用來存放一些臨時的文件 - /usr(user software resourse)
這是一個非常重要的目錄,用戶的很多應用程序都放在這個目下,類似於windows下的program files目錄
- /bin:
-
用戶目錄
-
絕對路徑 從根目錄開始寫/home/itcast/aa
-
相對路徑 相對於當前的工作目錄而言
. 代表當前目錄 .. 代表當前目錄的上一級 - 在臨近路徑的兩個目錄直接切換 cd -
-
sjq@ubuntu
sjq:當前登陸的用戶
@: at 在
Ubuntu:主機名
~用戶的家目錄(宿主目錄)
$當前用戶爲普通用戶
#超級用戶 – root
-
-
文件和目錄操作
文件或目錄顏色一般情況 白色:普通文件 藍色:目錄 綠色:可執行文件 紅色:壓縮文件 青色:鏈接文件(相當於windows下的快捷方式) 黃色:設備文件(block塊、char字符、fifo管道) 灰色:其他文件
-
查看目錄
- tree
- ls
ls -a查看目錄下的全部內容
ls -l列出來的是詳細信息
ls -al列出全部內容的詳細信息
-
在目錄間切換
Cd + 目錄
切換回主目錄三種方式:Cd /home/aa Cd ~ Cd
查看當前所在目錄 pwd
-
創建目錄
創建單一目錄:Mkdir + dirname
創建複合目錄:mkdir + dir/dir/dir1 -p -
刪除目錄
刪除空目錄 Rmdir + 目錄名 刪除非空目錄 Rm + 目錄名 + -r Rm + 目錄名 + -ri(i代表提示)
-
創建文件
Touch + 文件名(文件不存在,創建文件,文件存在,更新文件時間) -
刪除文件
Rm + 文件名 -
拷貝文件或目錄
拷貝文件Cp + 文件名 + 目標文件 如果目標文件不存在就創建一個新的文件 如果目標文件存在就覆蓋原來的文件
拷貝目錄
Cp + 目錄名 + 目標目錄名 + -r 如果目標目錄名不存在,則要創建目標目錄名,並進行拷貝 如果目標目錄名存在,則要將目錄名拷貝到目標目錄名下
-
查看文件中的內容
- cat + 文件名(將文件中的內容輸出到終端)
- more + 文件名(只能向後翻,不能向前翻)
- less + 文件名(ctrl + p向前翻頁、ctrl +n向後翻頁、q退出瀏覽、回車顯示下一行、空格顯示下一頁)
- head + 文件名
- tail + 文件名
-
文件重命名
mv + 源文件名 + 要更改的文件名 -
將文件移動到目錄下
mv + 文件名 + 目錄名 -
創建軟鏈接(創建快捷方式 文件和目錄)
ln -s + 路徑(絕對) + 快捷方式的名字 -
創建硬鏈接(進行文件備份)
直接鏈接的是硬盤的上inode結點
不能對目錄創建硬鏈接
ln + 文件名 + 硬鏈接的名字
硬鏈接不佔用空間
每次創建一個硬鏈接,次數加一
Linux文件系統的存儲單位是塊
inode – i結點 保存了一些文件信息 通過inode找到對應的文件
-
-
文件或目錄的屬性
- wc 獲取文本文件的信息
- od 查看二進制文件
-t 指定數據的顯示格式
參數- c ASCII字符
- D 有符號十進制數
- F 浮點數
- O 八進制數
- U 無符號十進制數
- X 十六進制數
- du 查看當前目錄中所有文件的大小
命令:du -h - df 查看磁盤的使用情況
命令:df -h
Which + 命令(查看所在的命令是在哪個目錄下,只能查找外部的命令)
-
文件權限、用戶、用戶組
- 查看當前登陸用戶
Whoami - 修改文件權限
-
文字設定法: chmod [who] [+|-|=] [mode] 文件名
who(默認是所有人):文件所有者:u 文件所屬組:g 其他人: o 所有人: a
+:添加權限
-:減少權限
=:覆蓋原來的權限
mode(權限):r:讀 w:寫 x:執行
-
數字設定法:
-:沒有權限 R:4 W:2 X:1 所有權限7 765 7 --rwx --文件所有者 6 --rw --文件所有組 5 --rx -- 其他人 減權限:chmod -001 temp(給其他人減了執行權限)
-
- 修改文件的所有者和所屬組
修改文件的所有者:chown 所有者的名字 文件名(如果沒有權限的話,加sudo接用超級用戶的權限)
sudo Chown 文件所有者:文件所屬組 文件名
修改文件所屬組:sudo chgrp 文件所屬組 文件名
對於目錄來說必須有執行權限,否則無法訪問目錄裏面的內容
- 查看當前登陸用戶
-
文件的查找和檢索
- 按文件的屬性查找
- 按文件名查找
Find + 查找目錄 + -name + 文件的名字(文件名字用引號括起來)
文件的名字可以用通配符(*匹配所有的、?匹配一個字符) - 按文件大小
Find + 查找目錄 + -size + 文件的大小(+大於 -小於)
Sudo find ~ -size +10M -size -100M(在家目錄下查找大於10M小於100M的文件) - 按文件類型
Find + 文件查找目錄 + -type + d/f/b/c/s/p/l
創建管道:mkfifo 文件名
- 按文件名查找
- 按文件內容查找
Grep -r + “查找的內容” + 查找的路徑
- 按文件的屬性查找
-
軟件的安裝和卸載
-
在線安裝
apt-get:安裝:sudo apt-get install tree 在線下載安裝 移除:sudo apt-get remove tree 更新:sudo apt-get update --更新軟件列表 清理所有軟件安裝包:sudo apt-get clean(實際清理的是/var/jcache/apt/archives目錄下的.deb文件)
aptitude:
安裝:sudo aptitude install tree 重新安裝:sudo aptitude reinstall tree 更新:sudo apt-get update 移除:sudo aptitude remove tree 顯示狀態:sudo aptitude show tree
-
deb包安裝:
安裝:sudo dpkg -i xxx.deb 刪除:sudo dpkg -r xxx
-
源碼安裝
- 解壓縮源代碼包
- 進入到安裝目錄:cd dir
- 檢測文件是否缺失,創建makefile,檢測編譯環境
- 編譯源碼,生成庫和可執行程序:make
- 把庫和可執行程序,安裝到系統目錄下:sudo make install
- 刪除和卸載軟件:sudo make distclean
- 上述安裝步驟並不是絕對的,應該先查看附帶的readme文件
-
下面的是筆者的微信公衆號,歡迎關注,會持續更新c++、python、tensorflow、機器學習、深度學習等系列文章