㈠ ubuntu下如何編譯C語言
1、首先打開ubnutu開發環境,直接輸入組合鍵ctrl+alt+t調出命令行界面。
㈡ 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 : 啟動時調用的命令行
㈢ ubuntu16.04編輯器vi該怎麼使用
在使用vi之前我們需要先對vim做簡單的了解,在vi編輯中存在3種編輯狀態,
第一種:命令模式(command mode)
也就是說在這個界面我們可以執行命令來完成我們所需要完成的操作,比如我們直接在終端輸入命令:vi
,這里我們可以看到系統進入了vi的系統界面,顯示了vi版本及一些簡單的幫助功能。當我們輸入:「vi + 文件名」
時則進入了文件編輯狀態,比如說我們寫一個hello.cpp文件,在命令行輸入:vi hello.java
游標顯示的地方為命令編輯處,這里我們可以對文件進行命令操作,比如說對文件內容進行移動,字元、字或行的刪除,再或者進入編輯狀態、保存退出等操作,而左下角則顯示著新建的文件名
第二種:插入模式(Insert mode)
在vi中,只有進入插入模式才能對文件內容進行寫入編輯,方法很簡單,只要在命令模式(command
mode)下輸入「i」鍵即可進入插入模式(Insert
mode),這也是很多新手剛接觸vi時摸不著頭腦的地方,小編之前也是,想該個配置,半天都不知道怎麼輸入內容。
比如小編寫個簡單的helloword:
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
寫完之後按「esc」鍵即可退出「插入模式(Insert mode)」
第三種:底行模式(last line mode)
就是在vi文本最後編輯處的操作,即左下角文件名顯示的上一格,通常是用來對文件的保存或退出vi編輯的。
方法是在命令行模式(command mode)下,按一下「:」冒號鍵即可進入底行模式(last line mode)了。
在左下角我們可以看到有個「:」出現則說明你已經進入底行模式(last line mode)
最後我們對文本進行保存操作
:w xxx(這里的「XXX」是將文件以指定的文件名「XXX」進行保存)
: wq (輸入「wq」,則進行存檔並退出vi)
: q! (輸入「q!」, 則不存檔並強制退出vi)
這里小編輸入wq保存當前文件,我們來看下是不是已經創建看hello.java文件,在終端輸入命令:ls ,我們可以看到那個白色的文件名就是我們剛創建的hello.java文件,如果你希望看詳細信息則輸入命令:ls -l 即可。
這樣我們就完成了整個文件在vi編輯器中的操作過程了。
特別注意,在插入模式(Insert mode)中如果你想刪除輸錯的字元用「backspace」是無效的哦,游標只會往前移動,並不會刪除字元,在vi中直接在命令模式使用字元命令即可對文件內容進行修改:
「x」:每按一次,刪除游標所在位置所在位置的那個字元。
「X」:大寫的X,每按一次,刪除游標所在位置的「前面」一個字元。
當然如果你想在插入模式(Insert mode)刪除也是可行的,要用「del」鍵,刪除游標所在位置的那個字元。
㈣ Ubuntu中的Vi命令下如何進入編輯模式
ubuntu中的vi命令進入編輯模式一般有六種方法。
1、在vi中進入編輯模式,又稱插入模式,一般直接按鍵盤上的字母鍵a、i、o。具體含義如下表。
a在游標後插入文本,A在本行行末插入文本;
i在游標前插入文本,I在本行開始插入文本;
o在游標下插入新行,O在游標上插入新行;
2、如上圖所示,退出插入模式即可編輯模式,直接按鍵盤上的ESC鍵,另外還可以通過鍵盤上的":"進入末行模式。