① linux怎麼將要計算的字元放第二頁,計算好的放第一頁
頁面的大小即為4K。
(3) PAGE_MASK宏
#define PAGE_MASK (~(PAGE_SIZE-1))
我們以PAGE_SHIFT=12為例來說明PAGE_MASK的值,當PAGE_SHIFT=12時,PAGE_SIZE =4K = 0x0000 1000.
PAGE_SIZE -1 = 0x0000 1000 -1 = 0x0000 0FFF
~(PAGE_SIZE-1) = ~0x0000 0FFF = 0xFFFF F000
也就是說,任何地址與上PAGE_MASK,結果為這個地址所在的頁面的頁面號。PAGE_MASK用於屏蔽掉偏移量域的所有位,而只剩下頁面號域。
總之,得到一個地址所在頁面的頁號有兩種方法,一種方法就是用這個地址與PAGE_MASK相與,相與得到的結果就是頁號;第二種方法就是把這個地址右移PAGE_SHIFT,
② linux如何不使用wc計算文本內容中單詞的總數量,字元數量
文本中的分隔符用tr轉換為換行符'\n',
cat -n 文件名|tail -1 得到的行數就是單詞數量
③ linux運算符 ; & && | 得作用
用;號隔開每個命令, 每個命令按照從左到右的順序,順序執行, 彼此之間不關心是否失敗, 所有命令都會執行。
上一條命令的輸出,作為下一條命令參數
方式: command1 | command2
Linux所提供的管道符「|」將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推
利用一個管道
rpm -qa|grep licq
這條命令使用一個管道符「|」建立了一個管道。管道將rpm -qa命令的輸出(包括系統中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有licq字元的RPM包來。
利用多個管道
cat /etc/passwd | grep /bin/bash | wc -l
這條命令使用了兩個管道,利用第一個管道將cat命令(顯示passwd文件的內容)的輸出送給grep命令,grep命令找出含有「/bin /bash」的所有行;第二個管道將grep的輸出送給wc命令,wc命令統計出輸入中的行數。這個命令的功能在於找出系統中有多少個用戶使用bash
&放在啟動參數後面表示設置此進程為後台進程
方式: command1 &
默認情況下,進程是前台進程,這時就把Shell給占據了,我們無法進行其他操作,對於那些沒有交互的進程,很多時候,我們希望將其在後台啟動,可以在啟動參數的時候加一個'&'實現這個目的。
shell 在執行某個命令的時候,會返回一個返回值,該返回值保存在 shell 變數 ? 中,可以通過 $? 獲取當前變數的值,當 $?==0 時表示執行成功,當時 $?==1 (我認為是非0的數,返回值在0-255間),表示執行失敗。
有時候,下一條命令依賴前一條命令是否執行成功。如:在成功地執行一條命令之後再執行另一條命令,或者在一條命令執行失敗後再執行另一條命令等。shell 提供了 && 和 || 來實現命令執行控制的功能,shell 將根據 && 或 || 前面命令的返回值來控制其後面命令的執行。
語法格式如下:
command1 && command2 [&& command3 ...]
命令之間使用 && 連接,實現邏輯與的功能。
只有在 && 左邊的命令返回真(命令返回值 $? == 0 ),&& 右邊的命令才會被執行。
只要有一個命令返回假(命令返回值 $? == 1 ),後面的命令就不會被執行。
邏輯或的功能
語法格式如下:
command1 || command2 [|| command3 ...]
命令之間使用 || 連接,實現邏輯或的功能。
只有在 || 左邊的命令返回假(命令返回值 $? == 1 ),
|| 右邊的命令才會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。 只要有一個命令返回真(命令返回值 $? == 0 ),後面的命令就不會被執行。 –直到返回真的地方停止執行。
舉例, ping 命令判斷存活主機
注意 &>要連起來寫
參考
④ Linux C - C基礎篇(一)
1) 最高位是符號位,0表示正數,1表示負數。
2) 如果是正數,正常表示(即原碼),如果是負數,先求反碼,再求補碼(補碼為反碼加1)即為他的二進製表示。例如char型的1,用二進製表示為00000001;char型的-1用二進製表示為11111111。
常量,就是在程序運行過程中值無法被改變;變數,就是在程序運行過程中內部存儲的值隨時可以被改變。變數是「可讀、可寫」,而常量,是「只讀」的。
整形常量:12、浮點型常量:12.35、實數型常量:1.3e-5、字元型常量:'a'、字元串型常量:"abc"、標識符常量:#define LEN 10。
變數一般存放在內存中:棧區, 靜態數據區,全局變數區, 堆區。函數中定義的變數,如果不加特殊修飾,都是保存在棧區,函數調用結束,棧空間被自動釋放。
定義變數:
<存儲類型> <數據類型> <變數名>
static/auto/... int/char a
例如:static int a;char c;
存儲類型:
自動類型轉換
將一種類型的數據賦值給另外一種類型的變數時就會發生自動類型轉換,例如:float a = 10;10是int類型的數據,需要先轉換成float類型然後再賦值給變數a。
在不同類型的混合運算中,編譯器也會自動地轉換數據類型,將參與運算的所有數據先轉換為同一種類型,然後再進行計算。轉換的規則如下:
強制類型轉換
自動類型轉換是編譯器根據代碼自己判斷的,有時候我們需要手動的進行數據類型轉換,稱之為強制類型轉換,例如:
(int)(a+b); //將a + b 求得結果的數據類型強制轉換為int型。
運算符的優先順序
特殊運算符>單目運算符>雙目運算符>三目運算>賦值運算>逗號運算
⑤ linux awk字元和數字怎麼比較大小
#因為比較運算符可以對字元串進行處理,於是不會把字元轉為數字
awk'BEGIN{print("a">"1")("a">1)("1"==1)("123">90)(123>90)(0+"123">90)("123"+0>90)("123"+"0">90)}'
執行結果:11101111
#而數學運算符只對數字進行運算,所以會把字元轉為數字,因此可以用+0來做字元轉數字操作
awk'BEGIN{printprint"123"+"0"}'
執行結果:123
awk'BEGIN{print"123"+"abc"}'
執行結果:123
⑥ * 在linux 中是什麼意思
"在linux
中"這句話范圍太廣了,*在shell中表示通配符,表示零個或多個字元。
比如當前目錄下有abc.c、abdd.c、abeff.c。可以用ls
ab*.c來查看。
⑦ linux shell 指令 諸如-d, -f, -e之類的判斷表達式
如果 filename存在,則為真 [ -e /var/log/syslog ]-d filename
如果 filename為目錄,則為真 [ -d /tmp/mydir ]-f filename
如果 filename為常規文件,則為真 [ -f /usr/bin/grep ]-L filename
如果 filename為符號鏈接,則為真 [ -L /usr/bin/grep ]-r filename
如果 filename可讀,則為真 [ -r /var/log/syslog ]-w filename
如果 filename可寫,則為真 [ -w /var/mytmp.txt ]-x filename
如果 filename可執行,則為真 [ -L /usr/bin/grep ]filename1-nt filename2
如果 filename1比 filename2新,則為真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2
如果 filename1比 filename2舊,則為真 [ /boot/bzImage -ot arch/i386
-z string 如果 string長度為零,則為真 [ -z "$myvar" ]-n string 如果 string長度非零,則為真 [ -n "$myvar" ]
string1= string2 如果 string1與 string2相同,則為真 [ "$myvar" = "one two three"]
string1!= string2 如果 string1與 string2不同,則為真 [ "$myvar" != "one two three" ]
num1-ne num2 不等於 [ 3 -ne $mynum ]num1-lt num2 小於 [ 3 -lt $mynum ]
num1-le num2 小於或等於 [ 3 -le $mynum ]num1-gt num2 大於 [ 3 -gt $mynum ]
num1-ge num2 大於或等於 [ 3 -ge $mynum ]
Linux操作系統
是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。
⑧ Linux中如何計算字元串長度
計算字元串長度可用的三種方法: echo 「$str」|awk '{print length($0)}' expr length 「$str」 echo 「$str」|wc -c 但是第三種得出的值會多1,可能是把結束符也計算在內了。 判斷字元串為空的方法有三種: if [ "$str" = "" ] if [ x"$str" = x ]
⑨ 求助:linux 字元串 轉變成數字 並進行加減乘除運算
detaV=$(echo $V1 + $V2 | bc)
加減乘除模冪+ - * / % ^
⑩ linux中用shell時奇怪的字元串拼接和時間計算問題
testt=$(date +%Y-%m-%d)
date2="14/08/12"
test=20
testtt="${test}${date2}"
time1=$(date +%s -d "$testt" )
time2=$(date +%s -d "$testtt" )
time=$(($time1-$time2))
echo $time
改成引號,去掉括弧專!!屬