Linux常用指令總結及程式設計操作

2021-10-08 00:02:54 字數 3486 閱讀 1068

系統操作

sudo

#以其他身份執行命令,預設root

date

cal 2020

clear

#清屏shutdown -h now #關閉系統

init 0

telinit 0

shutdown -r now #重啟

reboot

#重啟logout

#登出

目錄操作

cd ***		#在當前目錄下進入***目錄

#藍色為資料夾,白色為檔案,綠色為可執行檔案

cd..

#返回上一目錄

cd../..

#返回上兩級目錄

cd - #返回上次所在目錄

pwd#檢視當前路徑

檢視目錄

ls

#顯示當前目錄中的檔案

ls -l #顯示當前目錄檔案機資訊

ls -a #顯示所有檔案(包括隱藏)

建立

touch ***.***	#當前目錄下建立***.***檔案

mkdir *** #在當前目錄下建立***目錄(-p確保檔案已存在)

複製

cp *** target  		#將***複製到target目錄(不包括目錄),指定絕對目錄

cp -a *** target #將***的所有檔案及目錄複製到target

重新命名和移動

mv *** yyy			 #將當前目錄下的***檔案重新命名為yyy

mv *** source targrt #將***檔案從source目錄移動到target目錄,向外移指明絕對目錄

刪除操作

rm ***			#刪除當前目錄下的***(目錄非空時無法刪除)

rmdir *** #刪除當前目錄下的***目錄

rm -rf *** #刪除***目錄及目錄下的內容

#指定絕對目錄

apt軟體工具

apt-get

install *** #安裝或更新乙個deb包

apt-get update #公升級列表中的軟體包

apt-get upgrade #公升級所有已安裝的軟體

開啟檔案

vim ***				#用vim開啟當前目錄下的***檔案,若沒有則建立
一般模式/*** 向下查詢***,n上乙個重複操作(繼續向下查詢)

?*** 向上查詢***,n繼續向上查詢

編輯模式

在一般模式下按下i,o,a,r任意字母進入編輯模式

此時可以編輯**

按下esc退出編輯模式回到一般模式

命令列模式

按下: / ? 可進入命令列模式,使用命令列**進行儲存退出等操作

:w 				#儲存

:q #退出

:wq #儲存並退出

zz(shift+zz)

:set nu #顯示行號

:set nonu #取消顯示行號

使用g++命令

g++ ***.***				#預設編譯方式,生成a.out

g++ -std=c++14 ***.*** #指定使用的編譯方式

g++ ***.*** -o yyy #指定得到執行檔案的名稱

雖然任何乙個程式都可以使用g++命令進行編譯,但當程式規模變得很大,存在多個資料夾,原始檔,類,個檔案之間還存在依賴關係,此時使用g++指令就會變得非常複雜,此時我們便選擇使用cmake來管理專案

在乙個cmake工程中,我們使用cmake命令生成makefile檔案,再用make命令根據makefile的內容編譯整個工程,makefile可理解為系統自動生成的編譯指令

首先在專案目錄下建立cmakelists.txt,用於告訴cmake要在此目錄下做的事

# 宣告要求的 cmake 最低版本

cmake_minimum_required( version 2.8 )

# 宣告乙個 cmake 工程,括號內為工程的名稱

project( helloworld )

# 新增乙個可執行程式,括號內為可執行程式名,加入編譯的檔名

# 語法:add_executable( 程式名 源**檔案 )

add_executable( hello helloworld.cpp )

上述語法必須遵從

編譯步驟

cmake .

#分析該工程(當前目錄),此時會生成中間檔案如makefile

make

#對工程進行編譯

#通過後,在該目錄下就得到cmakelists.txt中宣告的hello檔案

./hello #執行

實際上,完成的程式我們是不想保留中間檔案的,所以一般我們在專案目錄下建立乙個build檔案儲存中間檔案,完成後刪除build檔案再發布原始碼即可

mkdir build

cd build

cmake ..

#對上一目錄分析

make

在c++的程式編譯中,只有帶main函式的檔案才會被編譯成可執行檔案另一些檔案只會被打包成庫,供其他程式呼叫,c++的庫稱為library

乙個庫可以是許多演算法,程式的集合,需要標頭檔案(.h)和原始檔(.cpp)

linux中的庫分靜態庫(***.a)和共享庫(***.so),靜態庫每次呼叫都會生成乙個副本,共享庫只有乙個副本,更節省空間

add_library( hlib hello_lib.cpp )

#靜態庫

add_library( hlib shared hello_lib.cpp )

#共享庫

編譯後會生成libhlib.a或libhlib.so檔案,就是得到的庫

要使得編譯的可執行檔案能跟庫鏈結,需在cmakelists.txt新增

add_executable( usehello usehello.cpp )

target_link_libraries( usehello hlib )

#使usehello與hlib鏈結

再使用cmake和make命令即可

Linux實操篇 常用指令

linux基礎篇 linux實操篇 vi和vim編輯器 linux實操篇 常用指令 linux實操篇 linux使用者 linux實操篇 許可權管理 linux實操篇 程序管理 pwd 顯示當前工作目錄的絕對路徑。ls 顯示檔案和目錄 基本語法 常用選項 cd 切換目錄 基本語法 常用引數 mkdi...

linux常用指令總結

service start nohup 1 dev null 2 1 含 釋 nohup no hang up 不掛起,一般和 連用 後台執行 dev null 空洞,即扔掉,不需要 1 標準輸出 預設是標準輸出,即 1 dev null 也可以寫成 dev null 2 錯誤輸出 重定向 乙個尖括...

常用Linux指令及用法

boot 啟動目錄,核心存放地 etc 配置檔案存放地 tem 程式產生的臨時檔案 home 使用者的目錄,新增使用者賬號時,使用者的家目錄都存放在此目錄 lib 可執行檔案和常用linux命令 sbin 系統管理員的命令和工具 user 應用程式和檔案的安裝地 mnt 掛接其他檔案系統 root ...