Linux下程式設計基礎

2021-07-02 12:13:35 字數 2906 閱讀 7753

我是一名大三學生,學的雖然是計算機,可是大三之前感覺什麼都沒有學會,什麼東西都像蜻蜓點水一般。後來越接近於畢業找工作,才慢慢的意識到這個問題,我到底這四年學到了什麼。由於專業是物聯網工程,就下定決心繼續從事這個行業。

首先第乙個需要熟練掌握的就是linux下的程式設計,我記得有一次看人家部落格提到說,每天用部落格總結會對自己的學習以及日後的鞏固起到很大的作用。所以我就開始寫了我的第一篇部落格。不管以後是成是敗,我還是那句話,自己選的路跪著也要走完。

(1)系統安裝和登陸命令: 

login  登陸

shutdown 關機(安全的關機)

halt  關機並且是強制性的

reboot 重新啟動系統

install 安裝

mount 掛載  (檔案與目錄之間建立聯絡稱之為掛載)

exit 退出

last 內建的跟蹤程式(可以顯示出已經登入的使用者的名稱 ,連線到計算機的方式,剩下的就是持續了多久)

(2)檔案處理命令:

mkdir  建立乙個資料夾

grep  查詢檔案或者資料夾

dd複製檔案到某個檔案(dd if=/temp/tempfile of=/dev/fd0)

find  也是查詢

mv  移動命令

lslist的意思 

diff  比較差異(甚至可以不是乙個檔案)

cat 顯示檔案的內容

ln建立連線(ln -s sourcefile targetfile)

dfdisk free(檢查檔案系統的磁碟空間占用情況)

top 能夠實時的顯示各個程序占用資源的情況

free  顯示總共的空閒或者使用過的物理記憶體和交換記憶體並且包括核心使用過的快取

quota 顯示出使用者硬碟容量以及限制,

lp輸出檔案

adduser 增加使用者

groupadd 增加組

kill 終止程序

crontab 任務排程(用crontab -e來為當前使用者建立任務排程)

(4)網路操作命令:

ifconfig 顯示當前的網路介面,以及輸出結果

ip和ifconfig作用相差不大,不過前者已經好久沒有更新過了,建議使用第二種

ping 請求與host端的鏈結

netstat 輸出網路鏈結,路由表,介面狀態

telnet 寫telnet協議的使用者介面

ftp 網路檔案傳輸程式

route 路由

rlogin 開啟ssh客戶端

nslookup 質疑internet名稱伺服器的相互作用

passwd 密碼

su 超級使用者

umask 設定檔案模式創造性的掩蓋

chgrp 改變組

chmod  改變模式(許可權)

chattr 改變在乙個linux檔案系統下的檔案指向

who 檢視使用者名稱以及其他資訊

(6)其他命令:

tar 講檔案打包成乙個檔案包

unzp 解壓縮zip檔案

gunzip 解壓縮gzip gunzip zcat檔案

mtools 用於模擬ms-dos的指令

接下來使用到的命令我會一一在這詳細記錄:

首先是解壓縮的tar 一般來說解壓乙個tar 檔案 用到的是 tar -zvxf  這些選項,本身是不能解壓縮的,所以必須要呼叫-z使用gzip來解壓縮。

cat > myprogram 這是採用管道的方法將指令碼直接寫入myprogram必須要以#!來規定使用sh還是bash,不過一般看網上有人建議使用bash,我試了一下好像不行,所以還是使用sh。編寫完成之後按crtl+d的方式退出編輯模式。最後還要更改許可權使用chmod 755 filename 來修改。最後run 是./filename 。指令碼檔案一般用來執行重複性的工作,當進入系統時要檢視有無信件,現有的使用者群,之類的完成這些工作的命令都是固定的所以採用指令碼,每次批處理就可以。

更改環境變數是path=$path:/some/directory

shell的內部命令:

:空,永遠返回true. 執行乙個指令碼檔案bg  把程式轉後台執行 exit  退出當前shell fg  把掛起的程序在前台執行

fc 編輯當前命令列歷史列表jobs 顯示後台程序執**況 ulimit 顯示或設定shell資源      hash  顯示命令執行的次數和位置 source 執行乙個指令碼檔案

umask 顯示或設定預設建立模式 pwd 顯示出目錄位置 break 結束乙個迴圈的執行continue 結束本次迴圈exec 目前程式中執行另外的程式

export 設定環境變數read 從鍵盤讀入一行資料 return 退出函式並帶返回值 set  設shell變數到標準顯示 stop把後台執行的程式暫停

test 評估條件表示式 unset 從shell記憶體中刪除變數 eval 讀取引數執行的結果readonly使變數唯讀

shift 名航引數左移乙個times 顯示shell執行過程時間  trap 捕獲訊號時執行命令   wait 等待到子程序執行完畢

alias 設定命令別名history 顯示歷史命令清單kill 終止乙個程序

以上命令,用於編寫shell程式

shell中有兩種命令分組的方法:,()

執行()中的命令時將再建立乙個新的子程序,然後這個子程序執行()裡的命令,當使用者在執行某個命苦時,若不想讓命令執行對狀態集合的改變,影響後面語句的執行時,就應該把這些命苦放在()中,這樣就能保證所有的改變只對子程序產生改變,而父程序不受影響。

用於將順序執行的命令輸出結果用於另乙個命令的輸入(管道方式)。當使用者使用{},()時需要在其前面加上轉義符\以便shell指導他們不是用於命令執行的終止。

bash函式的實質是命令集合或批處理檔案,在shell中定義的函式都是由若干條shell命令組成的命令集合,與shell程式形式相似,可看做是一條復合命令,不同之處在於他是多程序,函式定義的基本格式為:

[function]函式名()

Linux學習(三) Linux程式設計基礎 下

庫顯示規則 開始的行,make程式會將其交給系統的shell程式去執行 hello hello.c gcc o hello hello.c 隱含規則 變數 舉例 指示符include指令 根據乙個變數的值決定處理或者忽略makefile中的某一特定部分 定義乙個多行變數 注釋 兩種形式 靜態庫 r ...

Linux下C語言程式設計基礎 Makefile

假設我們有下面這樣的乙個程式,源 如下 main.c include mytool1.h include mytool2.h int main int argc,char argv mytool1.h ifndef mytool 1 h define mytool 1 h void mytool1 ...

Linux下socket程式設計基礎1 初探

int socket int domain,int type,int protocol 呼叫socket 返回的描述字存在於協議族空間中,但是沒有乙個具體的位址,所以需要呼叫下面的bind 函式設定具體位址,否則當呼叫connect listen 時這個埠系統會隨機分配。int bind int s...