Linux 常用的一些操作(程序員用的的實用操作)

Linux 常用的一些操作(程序員用的的實用操作)

1、查看linux中某個端口是否被佔用

1> 使用lsof

lsof -i:端口號 查看該端口是否被佔用

2> 使用netstat

netstat -antpu |grep 80 過濾端口80的使用狀態

2、linux中源碼包編譯安裝後,不受systemctrl控制,啟動/關閉服務方式:

啟動:/usr/local/nginx/sbin/nginx【沒有報錯提示,代表成功了】

關閉:/usr/local/nginx/sbin/nginx -s stop

報錯:Address already in use 【把http關掉】

注意:同一個端口在使用過程中,不能同時被兩個程序佔用

3、正常yum安裝的非源碼包,受systemctrl控制,可以systemctrl控制啟動/關閉

啟動:systemctrl restart httpd

關閉:systemctrl stop httpd

啟動:service start httpd

關閉:service stop httpd

4、Linux裡面$#、$0、$1、$2、$@、$*、$$、$?、$!、$_的含義

$#:傳給腳本的變量總個數

$0:表示腳本本身的名字

$1:傳給該shell腳本的第一個變量

$2:傳給該shell腳本的第二個變量

$@:傳給腳本的所有變量

$*:是以一個單字符串顯示所有傳遞給腳本的變量,與位置變量不同,這個變量可超過9個

$$:腳本運行的當前進程ID號

$?:顯示最後命令的執行狀態,0表示執行成功,非0值表示執行失敗

$!:代表最後一個後臺進程的進程號,【可用於腳本進度條,執行完腳本後殺死該進程,殺死進度條】

$_:代表上一命令的最後一個參數

5、Linux裡面隱藏所敲打的命令【常用於屏蔽顯示密碼及位數】

stty -echo 隱藏鍵盤輸入命令

stty echo 顯示鍵盤輸入命令

6、Linux裡面的三種引號

雙引號(“ ”):界定一個完整的字符串

單引號(‘ ’):界定一個完整的字符串,且實現屏蔽特殊符號

反引號(` `):引用命令、提取命令結果 `命令`==$(命令)

7、bc計算器裡的scale取結果位數

bc [選項]

-i:強制進入交互式模式; -l:定義使用的標準數學庫; -w:對POSIX bc環境信息; -v:顯示指令版本信息; -h:顯示指令的幫助信息。

# echo "scale=2;10/3"|bc -l # scale只對除法、取餘、乘冪有效;規避辦法:在最終結果加括號後除1

3.33

# echo "scale=2;(3.666*4.562)/1"|bc -l #採用結果除1巧妙地把想要的結果變出來了

16.72

8、Linux系統裡面ssh操作

[root@room8pc205 ~]# ssh -X [email protected] //這是正常情況下用ssh命令遠程到虛擬機(ip:192.168.4.100)上

[root@room8pc205 ~]# ssh -X -p 1992 [email protected] //這是在虛擬機(ip:192.168.4.100)在ssh服務配置文件最後增加了端口號Port 1992的情況下遠程訪問方式,-X 是以支持圖形界面遠程,-p [端口號] 這是表示從對方ssh配置文件設置的特定端口連接對方的ssh, [email protected]是以root身份遠程。

9、Linux系統裡面scp操作

[root@room8pc205 ~]# scp a.txt 192.168.4.100:/opt/ //這是正常情況下用scp命令傳輸文件到對方的/opt目錄下

[root@room8pc205 ~]# scp -P 1992 a.txt 192.168.4.254:/opt/ //這是在對方的ssh加了端口號1992後,傳輸文件到對方的/opt目錄下

10、Linux裡面char與varchar的區別

在mysql教程中char與varchar都是用來存儲字符串的,但是他們的保存方式不一樣,char有固定的長度,而varchar屬於可變長的字符類型。

char(M)類型的數據列裡,每個值都佔用M個字節,如果某個長度小於M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)在varchar(M)類型的數據列裡,每個值只佔用剛好夠用的字節再加上一個用來記錄其長度的字節(即總長度為L+1字節)。

適宜使用char類型的情況:

  1. 存儲很短的信息,比如門牌號碼101,201……這樣很短的信息應該用char,因為varchar還要佔個byte用於存儲信息長度,本來打算節約存儲的現在得不償失。
  2. 固定長度的。比如使用uuid作為主鍵,那用char應該更合適。因為他固定長度,varchar動態根據長度的特性就消失了,而且還要佔個長度信息。
  3. 十分頻繁改變的column。因為varchar每次存儲都要有額外的計算,得到長度等工作,如果一個非常頻繁改變的,那就要有很多的精力用於計算,而這些對於char來說是不需要的。

使用varchar注意事項:

還有一個關於varchar的問題是,varchar他既然可以自動適應存儲空間,那我varchar(8)和varchar(255)存儲應該都是一樣的,那每次表設計的時候往大的方向去好了,免得以後不夠用麻煩。這個思路對嗎?答案是否定的。mysql會把表信息放到內存中(查詢第一次後,就緩存住了...,linux下很明顯,但windows下似乎沒有,不知道為啥),這時內存的申請是按照固定長度來的,如果varchar很大就會有問題。所以還是應該按需索取;由於某種原因char 固定長度,所以在處理速度上要比varchar快速很多,但是對費存儲空間,所以對存儲不大,但在速度上有要求的可以使用char類型,反之可以用varchar類型來實例。

建意:

  • myisam 存儲引擎 建議使用固定長度,數據列代替可變長度的數據列。
  • memory存儲引擎 目前都使用固定數據行存儲,因此無論使用char varchar列都沒關係,
  • innodb 存儲引擎 建意使用varchar 類型


分享到:


相關文章: