⑴ ubuntu終端命令的幾個重要初學者命令
打開終端:Ctrl+Alt+T
目錄與文件相關命令
pwd:用於顯示當前位置的絕對路徑。格式:pwd,默認用戶根目錄為/home/你的用戶名。
ls:用於顯示當前目錄下的文件,默認只顯示非隱藏文件。格式:ls。
cd:用於改變你的工作目錄。格式:cd 工作目錄(一般和ls一起用,tab鍵補齊),和cd /命令是進入根目錄;cd ..命令是進入上一層目錄;cd -命令是回到之前的目錄輸入。
cp:復制命令,格式:cp 文件1路徑 文件2路徑,和復制命令格式cp -r 目錄1路徑 目錄2路徑
rm:刪除命令,格式:rm 文件路徑,刪除目錄時使用 rm -r 目錄路徑
rmdir:刪除空目錄,非空目錄使用rm -r格式
mkdir:在當前目錄下創建新目錄,格式:mkdir 文件夾名
man:有關命令幫助,查找某個命令的詳細用法。格式:man 某個命令。ubuntu中文版man手冊配置方法:man默認是英文的,但ubuntu的源里也有中文版的。以下是配置方法。終端輸入sudo apt-get install manpages-zh,安裝後修改配置文件sudo gedit /etc/manpath.config,將所有的/usr/share/man替換為/usr/share/man/zh_CN,保存即可。
清屏等終端快捷鍵及常用命令
快捷鍵 功能
Tab 自動補全
Ctrl+a 游標移動到開始位置
Ctrl+e 游標移動到最末尾
Ctrl+k 刪除此處至末尾的所有內容
Ctrl+u 刪除此處至開始的所有內容
Ctrl+d 刪除當前字元
Ctrl+h 刪除當前字元前一個字元
Ctrl+w 刪除此處到左邊的單詞
Ctrl+y 粘貼由Ctrl+u, Ctrl+d, Ctrl+w刪除的單詞
Ctrl+l 相當於clear,即清屏
Ctrl+r 查找歷史命令
Ctrl+b 向回移動游標
Ctrl+f 向前移動游標
Ctrl+t 將游標位置的字元和前一個字元進行位置交換
Ctrl+& 恢復 ctrl+h 或者 ctrl+d 或者 ctrl+w 刪除的內容
Ctrl+S 暫停屏幕輸出
Ctrl+Q 繼續屏幕輸出
Ctrl+Left-Arrow 游標移動到上一個單詞的詞首
Ctrl+Right-Arrow 游標移動到下一個單詞的詞尾
Ctrl+p 向上顯示緩存命令
Ctrl+n 向下顯示緩存命令
Ctrl+d 關閉終端
Ctrl+xx 在EOL和當前游標位置移動
Ctrl+x@ 顯示可能hostname補全
Ctrl+c 終止進程/命令
Shift+上或下 終端上下滾動
Shift+PgUp/PgDn 終端上下翻頁滾動
Ctrl+Shift+n 新終端
alt+F2 輸入gnome-terminal打開終端
Shift+Ctrl+T 打開新的標簽頁
Shift+Ctrl+W 關閉標簽頁
Shift+Ctrl+C 復制
Shift+Ctrl+V 粘貼
Alt+數字 切換至對應的標簽頁
Shift+Ctrl+N 打開新的終端窗口
Shift+Ctrl+Q 管壁終端窗口
Shift+Ctrl+PgUp/PgDn 左移右移標簽頁
Ctrl+PgUp/PgDn 切換標簽頁
F1 打開幫助指南
F10 激活菜單欄
F11 全屏切換
Alt+F 打開 「文件」 菜單(file)
Alt+E 打開 「編輯」 菜單(edit)
Alt+V 打開 「查看」 菜單(view)
Alt+S 打開 「搜索」 菜單(search)
Alt+T 打開 「終端」 菜單(terminal)
Alt+H 打開 「幫助」 菜單(help)
# <ESC>+d從游標開始處刪除到行尾。Delete
#!!- 上一條命令
#!-n- 倒數第N條歷史命令
#!-n:p- 列印上一條命令(不執行)
#!?string?- 最新一條含有「string」的命令
#!-n:gs/str1/str2/- 將倒數第N條命令的str1替換為str2,並執行(若不加g,則僅替換第一個)
另外一些小技巧包括:在終端窗口命令提示符下,連續按兩次 Tab 鍵、或者連續按三次 Esc 鍵、或者按 Ctrl+I 組合鍵,將顯示所有的命令及工具名稱。Application 鍵即位置在鍵盤上右 Ctrl 鍵左邊的那個鍵,作用相當於單擊滑鼠右鍵。
軟體包管理命令
安裝軟體:apt-get install 軟體1 軟體2
卸載軟體:apt-get remove 軟體1 軟體2
卸載並清除配置:apt-get remove --purge 軟體名
更新軟體信息資料庫 apt-get update
進行系統升級 apt-get upgrade
搜索軟體包 apt-cache search softname1 softname2 softname3……
安裝deb軟體包 dpkg -i xxx.deb
刪除deb軟體包 dpkg -r xxx.deb
連同配置文件一起刪除 dpkg -r --purge xxx.deb
查看deb軟體包信息 dpkg -info xxx.deb
查看deb文件拷貝詳情 dpkg-Lxxx.deb
查看系統中已安裝deb軟體包信息 dpkg-l
重新配置deb軟體包 dpkg-reconfigure xxx
系統信息命令
df(顯示文件系統中還有多少剩餘空間): 這個命令顯示所有已掛載設備的空間使用量。使用df -h可能會更好,因為-h代表human-readable,即用兆位元組M和千兆位元組G來顯示設備空間使用量,而默認的是用千位元組K來表示的。
(顯示目錄中文件或目錄的具體大小): 這個命令能列出文件和目錄的具體使用情況,遠遠比df詳細。(以floppy文件夾為例)
free: 顯示內存使用情況,同樣默認是以千位元組K表示的,若要以兆位元組M表示,請加參數,即free -m。
uname -a(顯示所有的系統信息): 輸出系統所有信息,包括主機名,內核名字及版本,硬體信息等等。
lsb_release -a(顯示當前用的版本)
回到頂部
ROS相關
查看ROS版本號:現在終端中輸入:roscore,然後再打開一個終端輸入:rosparam list,再輸入:rosparam get /rosdistro即可得到ros的版本號
⑵ Ubuntu下使用Qtcreator編寫C程序,發現包括socket等多個庫不能自動補全,應如何設置
解決方法:
1、打開Qt Creator -> 【tools】 -> 【options】
在里頭找到environment -> Keyboard
2、找到【TextEdit】
3、修改其中的【CompleteThis】命令,把快捷鍵【Ctrl】+【Space】 改為 【Alt】+【/】
若是初學Linux的話建議看看《Linux就該這么學》這本書。
⑶ ubuntu基本操作
ls , 即 list, 列出目錄下的所有項示例:
查看當前目錄 ls
查看 /home/shaofa 目錄 ls /home/shaofa
以詳細模式查看 ls -l /home/shaofa 其中,-l 為參數,參數一般以 - 開頭
1 在輸入命令和路徑時,按 TAB 鍵可以自動補全ls /ho ls /home
2 輸入歷史可以翻閱 按 ↑ ↓ 箭頭鍵可以上下翻閱
3 宿主機 與 虛擬機之間可以拷貝粘貼,一般情況下,文本和文件都可以拷貝
pwd , 即 print working directory 顯示當前工作目錄
cd , 即 change directory , 切換目錄
示例:切換到用戶主目錄
cd 切換到某個目錄
cd /home/shaofa/example
幾個特殊的目錄:
~ 代表當前用戶的主目錄
. 代表當前目錄
.. 代表上一級目錄
cd ~ 切換到主目錄
cd ~/example 切換到主目錄下的example目錄
cd ../www 切換到上級目錄、再到www子目錄
mkdir ,即 make directory 創建目錄
mkdir abc
mkdir -p abc/123/test
使用 -p 參數,可以將路徑的層次目錄全部創建
rmdir ,即 remove directory 刪除空目錄
rmdir abc
如果目錄非空,則刪除失敗
tar , 即 tape archive 檔案打包
創建檔案包
tar -cvf example.tar example
其中,
c , 表示 create 創建檔案
v , 表示 verbose 顯示詳情
f , 表示 file
也可以多個目錄打包 tar -cvf xxx.tar file1 file2 file3
還原檔案包
tar -xvf example.tar
tar -xvf example.tar -C outdir
其中,-C 參數指定目標目錄,默認解到當前目錄下
先前的tar格式並沒有壓縮,體積較大
並檔並壓縮
tar -zcvf example.tar.gz example
解壓縮
tar -zxvf example.tar.gz
tar -zxvf example.tar.gz -C outdir
通常我們所見的,都是 *.tar.gz 這種格式
軟鏈接,即 Windows 下的 "快捷方式"
使用 ln 命令 (link) 來創建軟鏈接
ln -s source link
其中,-s 表示 soft 軟鏈接 ( 默認為硬 )比如
ln -s example example2
軟鏈接的特點:
1 刪除軟體接,對原文件沒有影響
2 刪除原文件,則軟鏈接失效
以 ls -l 查看文件詳情時,可以看到目標路徑
比如,ls -l /
可以發現,/bin 實際指向的是 /usr/bin 目錄
比如,添加一個用戶
sudo useradd -m test1
其中,sudo, 表示以管理員身份執行
1 添加用戶
sudo useradd -m test1
其中,-m參數表示在 /home 下添加用戶目錄
2 修改用戶密碼
sudo passwd test1
3 刪除用戶
sudo userdel test1
1 在登錄系統時,默認不允許以 root 用戶登錄
2 只有特殊的用戶,才能執行 sudo
比如,yanjingliang可以執行sudo,但test1不行
Linux下,把能執行sudo命令的用戶叫 sudoer
超級用戶 root
類似於 Windows 下的 Administrator 用戶
切換到 root 用戶,有全部許可權,可以直接 useradd 等命令
1首次使用時,需要給 root 設置密碼
sudo passwd root
2 切換到 root 用戶
su root
其中,su 表示 switch user
3 退出
exit
su root 僅僅對當前會話 (終端) 有效,不影響當前桌面環境,root 權力太大,需要小心使用
Linux 下可以創建多個用戶,可以用組進行管理用戶。
比如:
男生組 boys
ming bo gang qiang
女生組 girls
fang hong yue yuan
創建組 groupadd boys
創建用戶 useradd -m -g boys ming
其中,-g表示在添加用戶,同時將用戶加到boys組
修改現有用戶到新的組 usermod -g boys shaofa
其中,usermod表示修改用戶信息
如何查看用戶和組?
cat /etc/group
每一行表示一個group的信息,名稱 + ID
如何查看用戶列表?
cat /etc/passwd
每一行表示一個用戶的信息
用戶不多時,管理的時候並不使用組的概念
useradd a1
useradd b1
一個root,兩個普通用戶a1, b1 ,夠用了!
默認地,會給a1用戶建立一個同名的組a1 ,也就是說這個組里只有他一個人。
默認地,無法以root登錄 Ubuntu的桌面環境。本文檔介紹如何設置,才能以root來登錄面。一、設置root密碼
首次執行時,需要修改root密碼
sudo passwd root
此時,root已經設置了密碼,但是還不能用root登錄桌面。
二、修改配置
按以下步驟,執行
1:
su root 在終端里 切換到 root用戶
2 :
gedit /etc/pam.d/gdm-autologin
在這一行前面加一個#
#auth required pam_succeed_if.so user != root quiet_success
關閉並保存
3:
gedit /etc/pam.d/gdm-password
在這一行前面加一個#
#auth required pam_succeed_if.so user != root quiet_success
關閉並保存
4:
關閉虛擬機,重啟後生效
三、以root登錄桌面
在登錄界面,點下面的』未列出'
手工輸入用戶名root,登錄
考慮以下幾個方面:
- owner : 文件的屬主 owner
- r : 文件是否可讀 read
- w : 文件是否可寫 write
- x: 文件是否可以執行 excute
使用 ls 命令查看一個文件
ls -l simple.txt
-rw-r--r--. 1 shaofa shaofa 13 4月 21 03:48 simple.txt
其中,rw-r--r-- 表示該文件的訪問許可權
chmod , 即change file mode 修改文件的訪問許可權
比如,一個文件abc.txt ,想讓別人也能修改
chmod o+w simple.txt
其中,o ,表示 other 別人
+w ,表示增寫 write 許可權
chmod a+w abc.txt
所有人 all 添加w許可權
chmod a-w abc.txt
所有人減去w許可權
chmod u+w abc.txt
僅用戶 user 自己的許可權 +w
chmod o-w simple.txt
修改別人 other 的許可權 -w
只有文件的屬主或者root 可以修改文件許可權
省略寫法
chmod +w simple.txt
chmod -w simple.txt
默認是修改自己和本組的許可權
chown , 即change owner 修改文件的屬主
一般來說,每個用戶只操作自己的用戶目錄
所以 chown 命令並不常用
示例:
1 在 /opt 目錄下建立一個文件夾 software
2 將 software 目錄分配給用戶 shaofa
su root
mkdir /opt/software
chown -R shaofa /opt/software
ls -ld /opt/software
只有文件的 owner 和 root 才有權更改屬主
腳本 Script ,一種解釋執行的程序
Linux 下常見的三種腳本程序
- Shell 腳本 *.sh
- Perl 腳本 *.pl
- python 腳本 *.py
腳本程序,本質是一個文本文件
1 它是一個文本文件
2 它具有可執行許可權
腳本程序都是由解釋器來執行的
Shell腳本解釋器: /bin/sh
Perl腳本解釋器: /bin/perl
Python腳本解釋器:/bin/python3
執行一個腳本時,以下兩種方式等效
./hello.py
/bin/python3 hello.py
Shell腳本,按Shell的語法寫出來的腳本
是 Linux 自帶的腳本語言
相當於Windows下的 DOS 批處理腳本
1 編輯一個文本文件,保存為 hello.sh
#!/bin/sh
echo "hello,world"
2 添加可執行許可權
chmod +x hello.sh
3 執行程序
./hello.sh
/bin/sh hello.sh
注意:
1 第一行必須聲明解釋器
#!/bin/sh
2 必須有 x 許可權,才能夠執行
比如,一個程序只有作者執行,別人不能執行
rwxr--r--
3 執行程序時,必須加上路徑
./hello.sh
/home/shaofa/hello.sh
Python腳本,比Shell要強大一些,對於 C / java 工程師,
1 編輯一個文本文件,
#!/bin/python3
print("hello,word")
保存為 hello.py
2 添加可執行許可權 chmod +x hello.py
3 執行程序 ./hello.py
環境變數,就是存在當前環境中的變數
定義環境變數 export OUTDIR=/opt/
顯示環境變數 echo ${OUTDIR}
查看所有環境變數 printenv
環境變數的使用:
可以在當前終端中使用
可以在 SHELL 腳本中調用
在命令行中定義的環境變數,只對當前SHELL終端有效
當關閉終端後,重啟後就消失了
用戶環境變數:定義在 ~/.profile 中
在主目錄下查看隱藏文件 ls -la
其中,a 表示 all ,顯示所有文件
註:在Linux下,以 . 開頭的文件為 隱藏文件
1 用文本編輯器打開 ~/. profile
gedit ~/.profile
2 添加
export JAVA_HOME=/opt/jdk1.8
保存並關閉
3 注銷,重新登錄後生效
echo $JAVA_HOME
原理:當用戶打開終端時,會自動運行 .profile ,將變數注入到當前環境中。
注意:
1 以點號 . 開頭的文件為隱藏文件
ls -a 查看所有文件
2 此配置只對當前用戶有效
因為每個用戶都有自己的配置文件 .profile
3 有的Linux系統上,使用 .bash_profile
系統環境變數:定義在 /etc/profile 中
此中的環境變數對 所有用戶 有效
以 root 身份執行
gedit /etc/profile
但是,一般不直接修改 /etc/profile
而是在 /etc/profile.d/ 創建一個自定義的腳本
1 用 gedit 創建一個腳本
gedit /etc/profile.d/myprofile.sh
2 定義環境變數
export TOMCAT=/opt/tomcat
3 注銷並重新登錄
重新登錄後,環境變數生效
PATH,最常見的一個環境變數
用於描述可執行程序的搜索路徑
查看path中的配置目錄 echo $PATH
多個路徑之間以冒號分隔
usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
默認地,系統從以下目錄中搜索可執行程序
/usr/bin 比如,/usr/bin/tar
/usr/sbin 比如,/usr/sbin/useradd
/usr/local/bin
/usr/local/sbin
其中, sbin 為超級用戶 root 才能執行的程序
/usr/ 下系統自帶的程序, /usr/local/ 是用戶安裝的程序
演示:修改PATH環境變數。。。
1 編輯 /etc/profile.d/myprofile.sh
設定 PATH 環境變數
export PATH=$PATH:/opt/tomcat/bin
2 注銷,重新登錄後生效
在終端里,以命令行方式來配置網路
常用命令: ifconfig , netstat 等
默認地,Ubuntu 下面不帶 ifconfig 命令
需要使用 apt 軟體包管理器
apt install net-tools 安裝一個軟體包
apt remove net-tools 移除一個軟體包
apt search xxx 搜索
apt list | grep xxx 列表
如果出現:
E: 無法定位軟體包問題」
解決:輸入 sudo apt-get update 更新一些軟體源。
1 查看網路配置
ifconfig
其中,if 表示 interface 網路介面
會列出所有的網路介面,及各個介面的狀態
2 開啟/禁用網路
sudo ifconfig xxx up
sudo ifconfig xxx down
vi / vim , 一個基於控制台的文本編輯器
gedit , 一個基於GUI的文本編輯器
其中,vim 是 vi 的升級版, 演示使用 vim 命令
1 打開文本編輯
vim abc.txt
如果目標文件存在,則打開編輯;如果不存在,會新建一個文件
如果系統上沒有 vim ,就安裝一下:
sudo apt install vim
2 切換模式
編輯模式 Insert Mode: 按 i 鍵
命令模式 Command Mode: 按 ESC 鍵
3 退出編輯
1、按 ESC 鍵,進入命令模式
2、輸入 :wq 保存並退出
3、輸入 :q 退出
4、輸入 :q! 強制退出 ( 放棄保存 )
Linux文本文件的編輯
1 桌面環境:gedit
2 終端環境:
- 少量修改 : vim
- 大量修改 : 在 Windows上編輯,然後上傳到Linux
推薦:在 Windows上編輯,然後上傳到 Linux
使用 notepad ++ 或者其他的專業編輯器
文本文件的換行符
Windows : \r\n
Linux : \n
可以在 Notepad ++ 里觀察到此區別
視圖 | 顯示符號 | 顯示行尾符
換行符的轉換:
編輯 | 文檔格式轉換 | 轉換為 UNIX格式
注意:只有在編輯 SHELL 腳本時,才需要轉換
其他格式的文件一般都不需要轉換,如*.xml, *.java
在 Ubuntu上面運行:
dos2unix xxx.sh
也可以將 xxx.sh轉成 UNIX的換行風格( \n )
如果系統里沒有這個命令,可以安裝一下:
sudo apt install dos2unix
Shell腳本的編輯 。。
1 用 Notepad++打開編輯 mytest.sh
2 轉成 Unix格式 \n
3 上傳至Linux
4 chmod +x mytest.sh
5 運行 ./mytest.sh
程序 Program:指一個程序文件,如 notepad.exe
進程 Process:當一個程序運行起來,在操作系統內創建一條記錄,
用於描述和控制它的運行
比如,打開多個 notepad.exe ,則得到多個進程
查看進程命令:
ps -ef
其中,各個欄位的含義:
UID : 執行者
PID : 進程ID
PPID : 父進程ID
STIME : 啟動時間
CMD : 啟動時調用的命令行