Linux下編譯c++
c++98
g++ -o 可執行檔案名 檔案名.cpp
當出現如下報錯資訊的時候,請使用c++11版本的編譯
in C++98 ‘arr’ must be initialized by constructor, not by ‘{...}’
vector<int>arr={ 0, 13, 24, 35, 46, 57, 60, 72, 87};
c++11
g++ -std=c++11 檔案名.cpp -o 可執行檔案名
檢視系統CPU數量
grep 'model name' /proc/cpuinfo | wc -l
運作腳本 ./hello.sh
用/hello.sh而不是 hello.sh,是為了告訴系統,可執行檔案在目前目錄中去尋找。否則Linux系統會去PATH裡尋找有沒有叫 hello.sh的。
shell變量
Shell程式設計中一般分為三種變量:
1、我們自己定義的變量(自定義變量): 僅在目前 Shell 執行個體中有效,其他 Shell 啟動的程式不能通路局部變量。
2、Linux已定義的環境變量(環境變量, 例如:$PATH, $HOME 等..., 這類變量我們可以直接使用),使用
env
指令可以檢視所有的環境變量,而set指令既可以檢視環境變量也可以檢視自定義變量。
3、Shell變量 :Shell變量是由 Shell 程式設定的特殊變量。Shell 變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了 Shell 的正常運作
常用的環境變量:
PATH 決定了shell将到哪些目錄中尋找指令或程式
HOME 目前使用者主目錄
HISTSIZE 曆史記錄數
LOGNAME 目前使用者的登入名
HOSTNAME 指主機的名稱
SHELL 目前使用者Shell類型
LANGUGE 語言相關的環境變量,多語言可以修改此環境變量
MAIL 目前使用者的郵件存放目錄
PS1 基本提示符,對于root使用者是#,對于普通使用者是$
使用 Linux 已定義的環境變量:
比如我們要看目前使用者目錄可以使用:
echo $HOME
指令;如果我們要看目前使用者Shell類型 可以使用
echo $SHELL
指令。可以看出,使用方法非常簡單。
使用自己定義的變量:
#!/bin/bash
#自定義變量hello
hello="hello world"
echo $hello
echo "helloworld!"
Shell 字元串入門
字元串是shell程式設計中最常用最有用的資料類型(除了數字和字元串,也沒啥其它類型好用了),字元串可以用單引号,也可以用雙引号。
單引号字元串:
#!/bin/bash
name='SnailClimb'
hello='Hello, I am '$name'!'
echo $hello
輸出内容:
Hello, I am SnailClimb!
雙引号字元串:
#!/bin/bash
name='SnailClimb'
hello="Hello, I am "$name"!"
echo $hello
Hello, I am SnailClimb!
Shell 字元串常見操作
拼接字元串:
#!/bin/bash
name="SnailClimb"
# 使用雙引号拼接
greeting="hello, "$name" !"
greeting_1="hello, ${name} !"
echo $greeting $greeting_1
# 使用單引号拼接
greeting_2='hello, '$name' !'
greeting_3='hello, ${name} !'
echo $greeting_2 $greeting_3
輸出結果:
擷取字元串長度:
#!/bin/bash
#擷取字元串長度
name="SnailClimb"
# 第一種方式
echo ${#name}
#輸出 10
# 第二種方式
expr length "$name";
輸出結果:
10
10
使用 expr 指令時,表達式中的運算符左右必須包含空格,如果不包含空格,将會輸出表達式本身:
expr 5+6 // 直接輸出 5+6
expr 5 + 6 // 輸出 11
對于某些運算符,還需要我們使用符号"\"進行轉義,否則就會提示文法錯誤。
expr 5 * 6 // 輸出錯誤
expr 5 \* 6 // 輸出30
截取子字元串:
簡單的字元串截取:
#從字元串第 1 個字元開始往後截取 10 個字元
str="SnailClimb is a great man"
echo ${str:0:10} #輸出:SnailClimb
根據表達式截取:
#!bin/bash
#author:amau
var="http://www.runoob.com/linux/linux-shell-variable.html"
s1=${var%%t*}
#h
s2=${var%t*}
#http://www.runoob.com/linux/linux-shell-variable.h
s3=${var%%.*}
#http://www
s4=${var#*/}
#/www.runoob.com/linux/linux-shell-variable.html
s5=${var##*/}
#linux-shell-variable.html