目錄
在Windows系統通過SSH登錄Linux Terminal
-
基本知識
-
Shell
- 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。默認的shell是Bash
-
Bash
- 即Bourne Again Shell
-
bash腳本
- #!/bin/bash #! 指明該路徑所指定的程序是解釋此腳本文件的 Shell 程序
echo "Hello World !" - bash腳本的執行
- 作爲可執行程序
chmod +x ./file.sh #使腳本具有執行權限
./file.sh #執行腳本,並且註明是當前目錄下的file.sh文件 - 作爲解釋器參數
直接運行解釋器,其參數就是 shell 腳本的文件名 /bin/sh file.sh
- 作爲可執行程序
- #!/bin/bash #! 指明該路徑所指定的程序是解釋此腳本文件的 Shell 程序
-
常用的bash命令
- 查看當前文件夾大小 du -sh *
- 查看指定文件大小 du -sk file_name
- 查看CPU個數 #cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
- 查看CPU核數 #cat /proc/cpuinfo | grep "cpu cores" | uniq
- 查看CPU型號 #cat /proc/cpuinfo | grep 'model name' | uniq
- 查看內存 #cat /proc/meminfo | grep MemTotal
- 查看硬盤 #fdisk -l | grep Disk
- 實時顯示進程狀態用戶 top
-
uname -a # 查看內核/操作系統/CPU信息的linux系統信息 head -n l /etc/issue # 查看操作系統版本 cat /proc/cpuinfo # 查看CPU信息 hostname # 查看計算機名的linux系統信息命令 lspci -tv # 列出所有PCI設備 lsusb -tv # 列出所有USB設備的linux系統信息命令 lsmod # 列出加載的內核模塊 env # 查看環境變量資源 free -m # 查看內存使用量和交換區使用量 df -h # 查看各分區使用情況 du -sh # 查看指定目錄的大小 grep MemTotal /proc/meminfo # 查看內存總量 grep MemFree /proc/meminfo # 查看空閒內存量 uptime # 查看系統運行時間、用戶數、負載 cat /proc/loadavg # 查看系統負載磁盤和分區 mount | column -t # 查看掛接的分區狀態 fdisk -l # 查看所有分區 swapon -s # 查看所有交換分區 hdparm -i /dev/hda # 查看磁盤參數(僅適用於IDE設備) dmesg | grep IDE # 查看啓動時IDE設備檢測狀況網絡 ifconfig # 查看所有網絡接口的屬性 iptables -L # 查看防火牆設置 route -n # 查看路由表 netstat -lntp # 查看所有監聽端口 netstat -antp # 查看所有已經建立的連接 netstat -s # 查看網絡統計信息進程 ps -ef # 查看所有進程 top # 實時顯示進程狀態用戶 w # 查看活動用戶 id # 查看指定用戶信息 last # 查看用戶登錄日誌 cut -d: -f1 /etc/passwd # 查看系統所有用戶 cut -d: -f1 /etc/group # 查看系統所有組 crontab -l # 查看當前用戶的計劃任務服務 chkconfig –list # 列出所有系統服務 chkconfig –list | grep on # 列出所有啓動的系統服務程序 rpm -qa # 查看所有安裝的軟件包 cat /proc/cpuinfo :查看CPU相關參數的linux系統命令 cat /proc/partitions :查看linux硬盤和分區信息的系統信息命令 cat /proc/meminfo :查看linux系統內存信息的linux系統命令 cat /proc/version :查看版本,類似uname -r cat /proc/ioports :查看設備io端口 cat /proc/interrupts :查看中斷 cat /proc/pci :查看pci設備的信息 cat /proc/swaps :查看所有swap分區的信息 --------------------- 來源原文:https://blog.csdn.net/u012442157/article/details/73692168/
-
獲得root權限
- 初始化root密碼 $ sudo passwd
- 通過命令 $ su - 獲得root權限。
-
清屏
- $ clear
- [Ctrl] + l
-
重啓
- $ reboot
- $ shutdown -r now 立刻重啓
- $ shutdown -r 10 過10分鐘自動重啓
- $ shutdown -r 22:59 在時間爲22:59時候重啓
- $ shutdown -c 命令取消重啓
-
關機
- $ shutdown -h now 立刻關機
- $ shutdown -h 10 10分鐘後自動關機
- $ poweroff 關機
- $ shutdown -c 命令取消關機命令
-
查看系統磁盤情況
- $ df h
-
查看系統進程
- $ ps -aux 查看所有進程,並顯示CPU佔用情況
- $ kill <PID進程號> 終止某進程
- $ top 實時顯示進程狀態
- $ ps -ef 查看所有進程
-
查看硬件設備
- $ lspci | grep -i 'VGA' 查看顯卡信息
- $ lspci | grep -i nvidia 查看GPU型號
- $ 查看NVIDIA驅動版本
- (可參看:https://blog.csdn.net/jiangph1001/article/details/80090564)
-
文本編輯命令
- $ cat <file_name> 查看文件
- $ touch <file_name> 創建文件
- $ rm <file_name> 刪除文件
- $ rm -f <file_name> 強制刪除文件
- $ gedit <file_name> 默認打開窗口,寫入文件,關閉窗口,返回Terminal
- $ ~ 當前用戶工作目錄
- $ ls 顯示當前目錄中的所有文件
- $ ls -a 顯示當前目錄中的所有文件(包括隱藏文件)
- $ gcc <file_name> 編譯命令,編譯成功,生成 <file_name>.out
- $ ./<file_name>.out 執行程序
- $ cp 拷貝文件(拷貝目錄時候要加 -r)
- $ cd .. 返回上一目錄
- $ cd <paht> 進入<pth>目錄
- $ ifconfig 查看當前系統的IP網絡等信息
- $ pwd 查看一個當前目錄的絕對路徑
- $ rmdir 刪除空目錄
-
環境變量
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
- 其中冒號是分割符,表示在$LD_LIBRARY_PATH環境變量基礎上,再添加/usr/local/cuda/extras/CUPTI/lib64路徑。
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
-
安裝軟件
-
.run 與 .deb
- .run
.run
不是標準擴展名.run
文件可能是您可以執行的。它可能會安裝一個程序或做一些完全不同的事情。 - .deb 文件是dpkg的軟件包,dpkg是低級Debian軟件包管理器(這是APT及其親屬在引擎蓋下引用的)。 .deb文件是Debian或Ubuntu或Mint等衍生產品的軟件包。Debian軟件包包含屬於軟件包的文件以及描述軟件包的依賴關係和其他元信息的“控制文件”,以及安裝,升級或卸載軟件包時執行的安裝腳本。您可以使用.deb和dpkg -c查看dpkg -I文件的內容。如果您沒有dpkg,則可以使用ar t foo.deb列出.deb文件和ar x foo.deb control.tar.gz提取control.tar.gz部分(對於其他部分也是如此)。
- .run
-
sh 與 點命令(.)
- 在一般的linux系統當中(如redhat),使用sh調用執行腳本相當於打開了bash的POSIX標準模式(等效於bash的 --posix 參數)一般的,sh是bash的“子集”。 “ sh test.sh ”是新建一個shell執行test.sh腳本里面的命令,不需要執行權限,有讀取權限(r權限)即可。
- filename.sh 爲Linux的腳本文件,我們可以通過 $ .sh 執行一些命令,可以理解爲windows的.bat批處理文件。
- $ . 命令和source是同一個命令,可以理解爲source的縮寫,簡稱點命令。“$ . test.sh” (同$ source test.sh) 是在當前shell執行test.sh裏面的命令,不需要執行權限,有讀取權限(r權限)即可
-
chmod + 命令
- 使新導入的 .sh文件(新導入的還不是可執行文件) 變成可執行文件,目錄下顯示的顏色從灰白色變成綠色。如 $ chome + <file_name>.sh 重複對同一個文件使用 chome + 會去除執行權限。
- chmod +x 和 chmod u +x 的區別是後者針對具體用戶來說的,
- u 代表用戶本身user
- g 代表用戶組group
- o 代表其他others
- a 代表所有用戶
-
軟件安裝方式
- (原文:https://blog.csdn.net/qq_37914187/article/details/79424211)
-
yum安裝: 可以看成是從網絡在線安裝的一種方式,只需要yum install 軟件名,系統就自動根據yum源配置文件中的鏡像位置去下載安裝包了,並可以自動分析所需的軟件依賴關係,自動安裝所需的依賴軟件包。此方式適合初學者,簡單方便,不用考慮依賴關係。但有些軟件並不能通過yum來安裝。
-
源碼安裝: 而源碼安裝方式是需要自己到網上下載源碼包,然後解壓安裝。此方式可以指定配置參數,更加靈活方便,兼容性更強。比較適合對Linux系統有較多瞭解的進階用戶使用。
- rpm安裝 是安裝本地存在的rpm包,如果存在依賴也需要安裝上,如果某個rpm是自己修改編譯的,那麼只能用rpm安裝了。
-
- (原文:https://blog.csdn.net/qq_37914187/article/details/79424211)
-
aptitude 與 apt-get
- aptitude 與 apt-get一樣,是 Debian 及其衍生系統中功能極其強大的包管理工具。與 apt-get 不同的是,aptitude 在處理依賴問題上更佳一些。舉例來說,aptitude 在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更爲乾淨。
- aptitude update 更新可用的包列表
- aptitude upgrade 升級可用的包
- aptitude dist-upgrade 將系統升級到新的發行版
- aptitude install pkgname 安裝包
- aptitude remove pkgname 刪除包
- aptitude purge pkgname 刪除包及其配置文件
- aptitude search string 搜索包
- aptitude show pkgname 顯示包的詳細信息
- aptitude clean 刪除下載的包文件
- aptitude autoclean 僅刪除過期的包文件
-
強制刪除文件
- $ sudo rm -rf <file_path> # 該命令在管理員權限下不提示強制刪去指定文件,慎用!!!
-
.deb 安裝軟件
- 下載通過 $ sudo dpkg -i <package_file>.deb 安裝的文件
(原文https://blog.csdn.net/vivian_wanjin/article/details/83090182)- 卸載命令 $ sudo dpkg -r <package_name> # 保留配置文件
- 卸載命名 $ sudo dpkg --purge <package_name> # 不保留配置文件
- 其中pack_name 是 package_file.deb 對應的 package name,若不知道package name,可以通過 $ dpkg -l 查找,若要查找對應的 package,可以加通配符,如查找包含 fox 的 package dpkg -l fox即可
查到以後,可以運行 $ dpkg -r package_name 卸載。
- 下載通過 $ sudo dpkg -i <package_file>.deb 安裝的文件
-
安裝並使用 pycharm
- 下載安裝包 "pycharm-community-2019.1.3.tar.gz"
- 解壓壓縮包:右擊 選擇“Extract Here”,生成 “pycharm-community-2019.1.3” 文件夾
- 進入生成的文件夾, 執行 ./bin/pycharm.sh 即可開始安裝
- 在安裝過程中,有一個需要注意的地方
- 勾選 : Create a specify for opening files and projects from the command line ...
- 安裝完成後,進入工作目錄,創建程序文件 (main.py)
- Terminal進入工作目錄,執行 $ charm . 可以該目錄爲工程文件打開,同時打開該目錄下所有文件。
- 設置字體大小: File -> Settings... -> Editor -> Font -> Size [18] -> Apply
- 查看環境中使用的Python編譯器路徑 $ which python3 將顯示python3的路徑,然後設置pycharm的解釋器
- 設置python解釋器: File -> Settings... -> Project:<工程名> -> Project Interpreter -> [設置Python解釋器路徑]
- 如果選擇其他的解釋器,需要選中 “Show All...” -> 點擊 “ + ” 添加新的解釋器
- 選中虛擬環境,比如“Virtualenv Environment”
- 選中 “Existing environment”
- 在Interpreter中選擇python路徑即可
- 勾選 “Make available to all projects”
- 點擊“OK”
- 消除屏幕中的波浪線
- 進入 File -> Settings -> Editor -> Color Scheme -> General -> Erros and Warnings -> Weak Warning
- 去除右側的 Effects 勾選項即可
-
-
文件系統
- 目錄下不同文件類型顏色區別
- 白色——表示其他文件
- 紅色——壓縮文件
- 綠色——可執行文件
- 淺藍色——鏈接文件
- 藍色——目錄
- Linux常見的文件類型有:普通文件、目錄文件、字符設備文件和塊設備文件、符號鏈接文件等,如 “drwxrwxrwx ”:表示這是一個目錄; “-rwxrwxrwx”:表示這是一個文件。
- 普通文件的文件權限第一個字符爲 “ - ”
- 目錄文件的文件權限第一個字符爲 “ d ”
- 字符設備文件的文件權限第一個字符爲 “c ”
- 塊設備文件的文件權限第一個字符爲 “ b ”
- 符號鏈接文件的文件權限第一個字符爲 “ s ”
- 用戶權限詳解(參考:https://www.cnblogs.com/garfieldcgf/p/8323489.html)
- 文件權限標識一共由10個字符表示。第1個表示文件類型;緊接着3位表示 文件所有者權限;然後3位表示同組用戶的權限;最後3位表示其他用戶權限。
- “r w x” 分別表示 “讀 寫 執行”,可用數字表示爲 “ 4 2 1”。比如,“rwx”表示 擁有的權限爲 “讀,寫,執行”,或者說擁有的權限是“7”; “r_x” 表示擁有的權限爲 “ 讀, _ ,執行”(“_”表示無對應權限),沒有“寫” 的權限,用數字可表示爲 “5”。
- 舉例說明: “ -rw-r--r-- ” 表示這是一個普通文件。所有者權限爲“可讀、可寫、不能執行”;同組用戶權限爲“可讀、不可寫、不可執行”;其他用戶權限爲“可讀、不可寫、不可執行”。用數字表示,該普通文件的權限爲644
- 修改文件權限
- $ chmod <更改後的三位權限數字> <file_name>
- 舉例: 如 a.txt 權限爲 644( -rw-r--r-- ),使用命令 $ chmod 666 a.txt 之後, a.txt 文件的權限變變爲了666
- 其他參考(https://www.cnblogs.com/garfieldcgf/p/8323489.html)
- 目錄下不同文件類型顏色區別
-
查看網絡情況
-
環境配置路徑配置問題
-
(原文https://www.cnblogs.com/hongzg1982/articles/2101792.html)
-
要搞清bashrc與profile的區別,首先要弄明白什麼是交互式shell和非交互式shell,什麼是login shell 和non-login shell。交互式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作交互式是因爲shell與用戶進行交互。這種模式也是大多數用戶非常熟悉的:登錄、執行一些命令、簽退。當你簽退後,shell也終止了。 shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,並且執行它們。當它讀到文件的結尾,shell也就終止了。bashrc與profile都用於保存用戶的環境信息,bashrc用於交互式non-loginshell,而profile用於交互式login shell。系統中存在許多bashrc和profile文件,下面逐一介紹:
-
/etc/pro 此文件爲系統的每個用戶設置環境信息,當第一個用戶登錄時,該文件被執行.並從 /etc/profile.d 目錄的配置文件中搜集shell的設置.
-
~/.bashrc 該文件包含專用於某個用戶的 bash shell的bash信息,當該用戶登錄時以及每次打開新的shell時,該文件被讀取.
-
/etc/profile 中設定的變量(全局)的可以作用於任何用戶,而 ~/.bashrc 等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關係.
-
/etc/bashrc 爲每一個運行bash shell的用戶執行此文件,當bash shell被打開時,該文件被讀取。有些linux版本中的/etc目錄下已經沒有了bashrc文件。
-
~/. pro 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,它設置一些環境變量,然後執行用戶的.bashrc文件.
-
-
附加:
-
/etc/profile 與 /etc/bashrc 是系統全局環境變量設定
-
~/.profile 與 ~/.bashrc 用戶家目錄下的私有環境變量設定
-
當登入系統時候獲得一個shell進程時,其讀取環境設定檔有三步
-
首先讀入的是全局環境變量設定檔/etc/profile,然後根據其內容讀取額外的設定的文檔,如
/etc/profile.d和/etc/inputrc。 -
然後根據不同使用者帳號,去其家目錄讀取~/.bash_profile,如果這讀取不了就讀取~/.bash_login,這個也讀取不了纔會讀取 ~/.profile,這三個文檔設定基本上是一樣的,讀取有優先關係。
-
然後在根據用戶帳號讀取~/.bashrc。
-
至於~/.profile與~/.bashrc的不區別,都具有個性化定製功能,~/.profile可以設定本用戶專有的路徑,環境變量等,它只能登入的時候執行一次;~/.bashrc也是某用戶專有設定文檔,可以設定路徑,命令別名,每次shell script的執行都會使用它一次
-
-
-
-
-
top命令詳解
- 顯示系統進程以及佔用內存和cpu等資源的實時狀況
-
ubuntu 18.04 無法打開設置
-
Ubuntu 18.04 輸入法崩潰
- 問題描述:無法通過數字選擇不同的輸入文字
- 問題解決方案
- 卸載 "Iterlligent Pinyin"
- 進入 "~/.cache/ibus/libpinyin"文件,
- 重新啓動,並添加""Iterlligent Pinyin"
- 另外,可以安裝其他輸入法,如搜狗輸入法
- $ sudo apt-get install fcitx-bin
- $ sudo apt-get install fcitx-table
- 去搜狗官網下載linux ubuntu的安裝包
- 進入安裝包所在目錄執行 $ sudo dpkg -i <sogoupinyin_*****_amd64.deb>
- 配置一下fcitx (具體參見其他教程)
- 重啓系統即可.
-
-
-
卸載程序命令
-
查看系統中已安裝的所有程序 $ pdkg --list
-
dpkg 是Debian package的簡寫,爲”Debian“ 操作系統 專門開發的套件管理系統,用於軟件的安裝,更新和移除。
-
-
卸載程序
-
$ sudo apt-get remove <程序名> 僅刪除軟件,保留配置文件
-
$ sudo apt-get --purge remove <程序名> 將軟件及其配置文件一併刪除
-
-
-
SSH
-
安全外殼協議。Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應用層基礎上的安全網絡協議。它是專爲遠程登錄會話(甚至可以用Windows遠程登錄Linux服務器進行文件互傳)和其他網絡服務提供安全性的協議,可有效彌補網絡中的漏洞。通過SSH,可以把所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。目前已經成爲Linux系統的標準配置
-
SSH分爲客戶端 openssh-client 和服務器 openssh-server,利用命令確認電腦上是否安裝了客戶端和服務器
-
$ dpkg -l | grep ssh 若顯示
-
openssh-client 說明ssh客戶端已經安裝(系統默認安裝)
-
openssh-server 說明ssh服務器端已經安裝
-
- 如果要開放本機的SSH服務就需要安裝服務器,執行命令即可安裝
-
ssh的登陸方式(原文:https://blog.csdn.net/li528405176/article/details/82810342 )
-
$ ifconfig 查看本機ip
-
口令登錄-----命令格式爲: ssh 客戶端用戶名@服務器ip地址 (如 $ ssh [email protected])
-
通過 Ctrl+D 或者 exit 命令退出遠程登錄
- 首次登陸會顯示公鑰和提示是否登陸,輸入"yes"即可,然後提示輸入目標服務器主機的密碼,即可完成進入目標服務器的Terminal.
- 若用戶名相同,可以 省略用戶名:ssh 服務器ip地址 (如 $ ssh 192.168.1.1)
- SSH服務的默認端口是22,請求會自動送到遠程主機的22端口。我們可以使用 -p 選項來修改端口號,比如連接到服務器的1234端口:ssh -p 1234 客戶端用戶名@服務器ip地址
- 調用圖形界面程序可以使用 -X 選項: ssh -X 客戶端用戶名@服務器ip地址
-
- 公鑰登錄
-
更多內容博客:https://blog.csdn.net/pipisorry/article/details/52269785
-
使用遠程主機不中斷的跑程序:當我們利用ssh在遠程主機上跑程序的時候,只要關閉了終端就會中斷ssh連接,然後遠程主機上正在跑的程序或者服務就會自動停止運行。我們可以利用 nohup + 需要運行的程序 使運行的程序在切斷ssh連接的時候仍然能夠繼續在遠程主機中運行。nohup即no hang up(不掛起)。
除此之外還有很多遠程操作應用,包括 數據傳輸、端口操作(將不加密的網絡連接綁定到ssh端口實現間接加密) 等等,
-
在本機生成密鑰對 $ ssh-keygen -t rsa #-t表示類型選項,這裏採用rsa加密算法
-
然後根據提示一步步的按enter鍵即可(其中有一個提示是要求設置私鑰口令passphrase,不設置則爲空,如果不放心私鑰的安全可以設置一下),執行結束以後會在 /home/當前用戶 目錄下生成一個 .ssh 文件夾,其中包含私鑰文件 id_rsa 和公鑰文件 id_rsa.pub。
-
將公鑰複製到遠程客戶端主機中:$ ssh-copy-id [email protected].*.* 將公鑰寫到遠程主機的 ~/ .ssh/authorized_key/ 文件中
-
以後再登錄這個遠程主機就不用再輸入密碼了.
-
-
$ sudo apt-get update 更新源列表
-
$ sudo apt-get install openssh-client 安裝客戶端程序
-
$ sudo apt-get install openssh-server 安裝服務器端程序
-
$ ps -e | grep ssh 確認ssh服務是否啓動,
-
顯示 sshd 則表示已經啓動.
-
顯示ssh-agent 則表示ssh客戶端已經啓動
-
-
$ sudo /etc/init.d/ssh start 啓動ssh服務器.
-
$ sudo /etc/init.d/ssh stop 停止ssh服務器
-
$ sudo /etc/init.d/ssh restart 重啓 ssh 服務器
-
-
-
-
在Windows系統通過SSH登錄Linux Terminal
-
在windows中下載相應版本的 PuTTY 並安裝,
-
打開 PuTTY,在 下圖的紅框框中填入Linux的IP地址,備註:Linux系統中應安裝了 SSH-server
-
點擊“Open”即可,在彈出的對話框中選擇“是Yes”,然後重新打開PuTTY即可
-
安裝教程(https://blog.csdn.net/u012810488/article/details/41597395)可永久更改登錄界面的字體
-
具體操作爲:
-
首先新建一個session : 在 save selection 下面的框中填入session的名字,點擊“save”
-
選中新建的session
-
點擊:Window -> Appearance -> Font settings -> Change
-
更改相應的字體等設置 Font settings 中的選項
-
勾選 Allow selection of variable-pitch fonts,
-
點擊 apply
-
返回登陸主界面 Session ,輸入IP地址 , Save <session_name>,也可以更改其他默認信息
-
登陸時選擇 <session_name> 就ok了
-
下次登錄選中創建的session,不必輸入IP地址,就可以登錄了,登錄之後已經是自定義的字體了。
-
-
-
無法獲得管理員root 權限
- 輸入 $ su - 和 密碼之後無法獲得管理員權限
- 只需重新設置一下管理員密碼即可
- $ sudo passwd root
- 輸入兩次新密碼即可
- 再次輸入 su - 既可以通過設置的密碼獲取root賬戶了。
-
Ubuntu 無法打開設置菜單
- 執行命令 $ sudo apt install gnome-control-center