linux系統管理命令-程式設計開發
阿新 • • 發佈:2019-01-31
程式設計開發
19.01 test命令
是shell環境中測試表達式的命令,可以進行檔案測試,字串測試,整數測試和布林運算,如果測試值返回結果為0表示為真,否則為假;
# test -r /etc/passwd
# echo $?
0
# test -x /etc/passwd
# echo $?
1
#
# var1=123
# var2=456
# test $var1 -eq $var2 不能用=號,=用於字串的比較
# echo $?
1
# str1="abc"
# str2="abc"
# test $str1 = $str2
# echo $?
0
# [ $str1 = $str2 ] 用[]可以代替test指令,但[]兩邊都有空格
# echo $?
0
19.02 expr命令
是Linux中的表示式計算工具,可以完成求值操作
# expr 5 + 5 注意+前後必須有空格
10
計算 ( 2 + 5 ) * ( 4 + 3 ) 每一個符號前後先加空格,然後把特殊的符號轉義
# expr \( 2 + 5 \) \* \( 4 + 3 \)
49
19.03 gcc命令
GNU的c語言編譯器
# gcc hello.c
# gcc hello.c -o hello
19.04 gdb命令
GNU的偵錯程式
# gcc -g hello.c -o hello 首先需要在編譯的時候加-g選項
# gdb
(gdb)file hello
(gdb)start
(gdb)next
(gdb)next ...
(gdb)
19.05 ld命令
是GNU的聯結器程式,將gcc生成的目標檔案連線成可執行程式
# gcc -c hello.c
# ls hello.o
# ld -o hello hello.o -lc -e main
# file hello
19.06 ldd命令
用於列印程式所依賴的共享庫
# ldd /bin/ls
linux-gate.so.1 => (0x0065b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0087b000)
librt.so.1 => /lib/librt.so.1 (0x00582000)
libcap.so.2 => /lib/libcap.so.2 (0x002ac000)
libacl.so.1 => /lib/libacl.so.1 (0x00cbe000)
libc.so.6 => /lib/libc.so.6 (0x0039a000)
libdl.so.2 => /lib/libdl.so.2 (0x0057b000)
/lib/ld-linux.so.2 (0x00378000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0055e000)
libattr.so.1 => /lib/libattr.so.1 (0x0035d000)
19.07 make命令
是GNU的工程化編譯工具,需要配置,編譯,安裝
# tar -zxvf proftpd-1.3.3b.tar.gz -C proftpd
# cd proftpd
# 先閱讀相關的readme,install等幫助資訊
# ./configure --prefix=/usr/local/proftpd-1.3.3b 配置的過程就是檢查當前系統環境是否滿足編譯條件並進行一些基本配置
# make 根據配置呼叫對應的編譯器完成原始碼的編譯
# make install 將編譯完成的二進位制程式幫助文件等安裝到指定的安裝目錄下
19.08 as命令
是GNU的彙編器,可以將彙編程式編譯成可執行程式
# gcc -S hello.c
# ls hello.s
# as -o hello.o hello.s
# ls hello.o
19.09 gcov命令
用於測試程式碼的覆蓋率
# gcc -fprofile-arcs -ftest-coverage -g -o test test.c
# ls test test.gcno
# ./test
# gcov test.c
# cat test.c.gcov 以 #開頭的行是沒有被覆蓋的行
19.10 nm命令
用於顯示指定的目標檔案的符號表
# gcc -c hello.c 只生成目標檔案不連線
# nm hello.o
19.11 perl命令
是perl語言的直譯器
# cat test.pl
$count = 1;
@array = (1, 2, 3);
while ($count <= @array) {
print ("element $count: $array[$count-1]\n");
$count++;
}
# perl test.pl
19.12 php命令
是php語言的命令列介面,可以作為Linux系統的維護指令碼
# cat test.php
<?php
for($i=1;$i<10;$i++){
echo "This is a PHP script. Line Number: $i\n";
}
?>
# php test.php
19.13 protoize命令
是gcc套件中的指令,將GNUc轉換為ANSIc的標準
# protoize hello.c
函式的格式會發生稍微的改變
19.14 unprotoize命令
用於c語言源程式格式的轉換
# unprotoize hello.c
19.15 mktemp命令
被用來建立臨時檔案以供shell指令碼使用,檔名是隨機生成的,防止黑客攻擊
# cat test.sh
#! /bin/bash
TPMFILE=`mktemp /tmp/example.XXXXXXXXXX` || exit 1
echo "program output" >> $TMPFILE
# /bin/bash test.sh
# bash test.sh
# cat /tmp/example.atNJA138138
19.01 test命令
是shell環境中測試表達式的命令,可以進行檔案測試,字串測試,整數測試和布林運算,如果測試值返回結果為0表示為真,否則為假;
# test -r /etc/passwd
# echo $?
0
# test -x /etc/passwd
# echo $?
1
#
# var1=123
# var2=456
# test $var1 -eq $var2 不能用=號,=用於字串的比較
# echo $?
1
# str1="abc"
# str2="abc"
# test $str1 = $str2
# echo $?
0
# [ $str1 = $str2 ] 用[]可以代替test指令,但[]兩邊都有空格
# echo $?
0
19.02 expr命令
是Linux中的表示式計算工具,可以完成求值操作
# expr 5 + 5 注意+前後必須有空格
10
計算 ( 2 + 5 ) * ( 4 + 3 ) 每一個符號前後先加空格,然後把特殊的符號轉義
# expr \( 2 + 5 \) \* \( 4 + 3 \)
49
19.03 gcc命令
GNU的c語言編譯器
# gcc hello.c
# gcc hello.c -o hello
19.04 gdb命令
GNU的偵錯程式
# gcc -g hello.c -o hello 首先需要在編譯的時候加-g選項
# gdb
(gdb)file hello
(gdb)start
(gdb)next
(gdb)next ...
(gdb)
19.05 ld命令
是GNU的聯結器程式,將gcc生成的目標檔案連線成可執行程式
# gcc -c hello.c
# ls hello.o
# ld -o hello hello.o -lc -e main
# file hello
19.06 ldd命令
用於列印程式所依賴的共享庫
# ldd /bin/ls
linux-gate.so.1 => (0x0065b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0087b000)
librt.so.1 => /lib/librt.so.1 (0x00582000)
libcap.so.2 => /lib/libcap.so.2 (0x002ac000)
libacl.so.1 => /lib/libacl.so.1 (0x00cbe000)
libc.so.6 => /lib/libc.so.6 (0x0039a000)
libdl.so.2 => /lib/libdl.so.2 (0x0057b000)
/lib/ld-linux.so.2 (0x00378000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0055e000)
libattr.so.1 => /lib/libattr.so.1 (0x0035d000)
19.07 make命令
是GNU的工程化編譯工具,需要配置,編譯,安裝
# tar -zxvf proftpd-1.3.3b.tar.gz -C proftpd
# cd proftpd
# 先閱讀相關的readme,install等幫助資訊
# ./configure --prefix=/usr/local/proftpd-1.3.3b 配置的過程就是檢查當前系統環境是否滿足編譯條件並進行一些基本配置
# make 根據配置呼叫對應的編譯器完成原始碼的編譯
# make install 將編譯完成的二進位制程式幫助文件等安裝到指定的安裝目錄下
19.08 as命令
是GNU的彙編器,可以將彙編程式編譯成可執行程式
# gcc -S hello.c
# ls hello.s
# as -o hello.o hello.s
# ls hello.o
19.09 gcov命令
用於測試程式碼的覆蓋率
# gcc -fprofile-arcs -ftest-coverage -g -o test test.c
# ls test test.gcno
# ./test
# gcov test.c
# cat test.c.gcov 以 #開頭的行是沒有被覆蓋的行
19.10 nm命令
用於顯示指定的目標檔案的符號表
# gcc -c hello.c 只生成目標檔案不連線
# nm hello.o
19.11 perl命令
是perl語言的直譯器
# cat test.pl
$count = 1;
@array = (1, 2, 3);
while ($count <= @array) {
print ("element $count: $array[$count-1]\n");
$count++;
}
# perl test.pl
19.12 php命令
是php語言的命令列介面,可以作為Linux系統的維護指令碼
# cat test.php
<?php
for($i=1;$i<10;$i++){
echo "This is a PHP script. Line Number: $i\n";
}
?>
# php test.php
19.13 protoize命令
是gcc套件中的指令,將GNUc轉換為ANSIc的標準
# protoize hello.c
函式的格式會發生稍微的改變
19.14 unprotoize命令
用於c語言源程式格式的轉換
# unprotoize hello.c
19.15 mktemp命令
被用來建立臨時檔案以供shell指令碼使用,檔名是隨機生成的,防止黑客攻擊
# cat test.sh
#! /bin/bash
TPMFILE=`mktemp /tmp/example.XXXXXXXXXX` || exit 1
echo "program output" >> $TMPFILE
# /bin/bash test.sh
# bash test.sh
# cat /tmp/example.atNJA138138