linux 操作學習記錄

2021-06-29 02:28:08 字數 2320 閱讀 9345

1、.bash_profile 修改後 要使修改生效 需要執行 . .bash_profile 命令

2、vim沒有顏色,解決辦法:開啟shell配置檔案,.bash_profile或.bashrc加入 

term=xterm 

export term

3、要輸入./才能找到檔案,修改.bash_profile的path這行 加上:.   如:

path=$path:$home/bin:.

4、.suffixes:.c .o 關聯.c 和 .o 檔案

可以使用標號 .c.o:

5、gdb生成core檔案, 在.bashrc檔案中加入一句 ulimit -c unlimited

6、庫檔案編譯方法,編譯時gcc 要加上 -fpic選項產生與位置無關的**,連線時 -shared,表示生成乙個庫檔案,庫檔案以lib開頭,.so為副檔名。

為了讓linux在當前目錄找so檔案,需要在bash_profile中新增export ld_library_path=$ld_library_path:.

或者將so檔案放入linux的系統目錄 /usr/lib/下

在呼叫庫時,gcc連線時新增 -l引數指明so檔案存放路徑,-l引數指明so檔案

如libtest.so檔案在當前路徑下:gcc -l. -ltest -o a a.o

7、sockaddr_in

structsockaddr_in

;

sin_family指代協議族,在socket程式設計中只能是af_inet

sin_port儲存埠號(使用網路位元組順序)

sin_addr儲存ip位址,使用in_addr這個資料結構

sin_zero是為了讓sockaddr與sockaddr_in兩個資料結構保持大小相同而保留的空位元組。

s_addr按照網路位元組順序儲存ip位址

8、address already in use的解決方法

當客戶端保持著與伺服器端的連線,這時伺服器端斷開,再開啟伺服器時會出現: address already in usr

可以用netstat -anp | more 可以看到客戶端還保持著與伺服器的連線(還在使用伺服器bind的埠)。這是由於client沒有執行close,連線還會等待client的fin包一段時間。解決方法是使用setsockopt,使得socket可以被重用,是最常用的伺服器程式設計要點。具體的做法為是,在socket呼叫和bind呼叫之間加上一段對socket的設定:

int opt = 1;

setsockopt(socket_fd,sol_socket,so_reuseaddr,&opt,sizeof(opt));

附 :setsockopt的用法。

setsockopt(設定socket狀態) 

相關函式 

getsockopt

表頭檔案 

#include;

#include;

定義函式 

int setsockopt(int s,int level,int optname,const void * optval,,socklen_toptlen);

函式說明 

setsockopt()用來設定引數s所指定的socket狀態。引數level代表欲設定的網路層,一般設成sol_socket以訪問socket層。引數optname代表欲設定的選項,有下列幾種數值:

so_debug 開啟或關閉排錯模式

so_reuseaddr 允許在bind()過程中本地位址可重複使用

so_type 返回socket形態。

so_error 返回socket已發生的錯誤原因

so_dontroute 送出的資料報不要利用路由裝置來傳輸。

so_broadcast 使用廣播方式傳送

so_sndbuf 設定送出的暫存區大小

so_rcvbuf 設定接收的暫存區大小

so_keepalive 定期確定連線是否已終止。

so_oobinline 當接收到oob 資料時會馬上送至標準輸入裝置

so_linger 確保資料安全且可靠的傳送出去。

引數 optval代表欲設定的值,引數optlen則為optval的長度。

返回值 

成功則返回0,若有錯誤則返回-1,錯誤原因存於errno。

附加說明 

ebadf 引數s並非合法的socket處理**

enotsock 引數s為一檔案描述詞,非socket

enoprotoopt 引數optname指定的選項不正確。

efault 引數optval指標指向無法訪問的記憶體空間

Linux學習記錄 ftp使用者操作

1 新增使用者 useradd useradd d www s sbin nologin guo d 指定家目錄 s 使用者登陸後所使用的shell g 指定使用者所屬的群組 2 修改密碼 passwd guo enter兩次後輸入新密碼和確認密碼 3 刪除使用者 userdel guo 簡單的刪除...

Linux 操作 記錄

格式 crunch options 解釋 最短長度 最長長度 在命令列使用crunch你可能必須指定字符集設定,否則將使用預設的字符集設定。預設的設定為小寫字符集,大寫字符集,數字和特殊字元 符號 如果不按照這個順序,你將得到自己指定結果。必須指定字元型別或加號的值。注意 如果你想在你的字符集中包含...

Linux操作記錄

1 獲取某請求響應 curl curl 127.0.0.1 802 檢視網路狀態 netstat netstat ln 或者netstat anop grep pidpid是程序號 3 檢視某服務程序 ps ps ef grep tomcat4 檢視tomcat動態日誌 tail tail f lo...