『壹』 在linux中怎麼運行腳本函數
1、同一腳本文件中的函數:
#!/bin/sh
function func1()
{
echo $1
}
func1 "Hello world!"
2、其它腳本文件中的函數:
func.sh文件內容如下(其內中定義了函數func1,需容要1個參數):
#!/bin/sh
function func1()
{
echo $1
}
主程序腳本:
#!/bin/sh
. func.sh
func1 "Hello world!"
『貳』 linux常用命令有哪些
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關機:
shutdown -h now
halt
init 0
第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹形結構顯示目錄下的內容 / 18
2.4mkdir:創建目錄 / 22
2.5touch:創建空文件或改變文件的時間戳屬性 / 27
2.6ls:顯示目錄下的內容及相關屬性信息 / 30
2.7cp:復制文件或目錄 / 39
2.8mv:移動或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號鏈接文件的內容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標准輸入轉換成命令行參數 / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄許可權 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設置許可權掩碼 / 86
2.26老男孩從新手成為技術大牛的心法 / 90
第3章 文件過濾及內容編輯處理命令 / 91
3.1cat:合並文件或查看文件內容 / 91
3.2tac:反向顯示文件內容 / 103
3.3more:分頁顯示文件內容 / 104
3.4less:分頁顯示文件內容 / 107
3.5head:顯示文件內容頭部 / 109
3.6tail:顯示文件內容尾部 / 111
3.7tailf:跟蹤日誌文件 / 114
3.8cut:從文本中提取一段文字並輸出 / 115
3.9split:分割文件 / 117
3.10paste:合並文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個文件的相同欄位合並 / 127
3.13uniq:去除重復行 / 129
3.14wc:統計文件的行數、單詞數或位元組數 / 131
3.15iconv:轉換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉換成UNIX格式 / 134
3.17diff:比較兩個文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內容 / 139
3.20tr:替換或刪除字元 / 140
3.21od:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過濾工具 / 153
4.2sed:字元流編輯器 / 159
4.3awk基礎入門 / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統信息 / 176
5.2hostname:顯示或設置系統的主機名 / 178
5.3dmesg:系統啟動異常診斷 / 179
5.4stat:顯示文件或文件系統狀態 / 181
5.5:統計磁碟空間使用情況 / 183
5.6date:顯示與設置系統時間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監視命令執行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate資料庫 / 199
5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠程文件復制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問 / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個用戶身份執行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁碟與文件系統管理命令 / 257
8.1fdisk:磁碟分區工具 / 257
8.2partprobe:更新內核的硬碟分區表信息 / 265
8.3tune2fs:調整ext2/ext3/ext4文件系統參數 / 266
8.4parted:磁碟分區工具 / 268
8.5mkfs:創建Linux文件系統 / 272
8.6mpe2fs:導出ext2/ext3/ext4文件系統信息 / 274
8.7resize2fs:調整ext2/ext3/ext4文件系統大小 / 275
8.8fsck:檢查並修復Linux文件系統 / 278
8.9dd:轉換或復制文件 / 281
8.10mount:掛載文件系統 / 284
8.11umount:卸載文件系統 / 288
8.12df:報告文件系統磁碟空間的使用情況 / 289
8.13mkswap:創建交換分區 / 293
8.14swapon:激活交換分區 / 294
8.15swapoff:關閉交換分區 / 295
8.16sync:刷新文件系統緩沖區 / 296
第9章 Linux進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統中各個進程的資源佔用狀況 / 313
9.8nice:調整程序運行時的優先順序 / 320
9.9renice:調整運行中的進程的優先順序 / 323
9.10nohup:用戶退出系統進程繼續工作 / 324
9.11strace:跟蹤進程的系統調用 / 325
9.12ltrace:跟蹤進程調用庫函數 / 332
9.13runlevel:輸出當前運行級別 / 334
9.14init:初始化Linux進程 / 335
9.15service:管理系統服務 / 335
第10章 Linux網路管理命令 / 338
10.1ifconfig:配置或顯示網路介面信息 / 338
10.2ifup:激活網路介面 / 343
ifup eth0
10.3ifdown:禁用網路介面 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個網路,所有網卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統的arp緩存 / 350
10.6ip:網路配置工具 / 351
10.7netstat:查看網路狀態 / 358
10.8ss:查看網路狀態 / 362
10.9ping:測試主機之間網路的連通性 / 363
10.10traceroute:追蹤數據傳輸路由狀況 / 366
10.11arping:發送arp請求 / 367
10.12telnet:遠程登錄主機 / 369
10.13nc:多功能網路工具 / 370
10.14ssh:安全地遠程登錄主機 / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊列 / 379
10.17mail:發送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網路探測工具和安全/埠掃描器 / 394
10.22tcpmp:監聽網路流量 / 398
第11章 Linux系統管理命令 / 407
11.1lsof:查看進程打開的文件 / 407
11.2uptime:顯示系統的運行時間及負載 / 411
11.3free:查看系統內存信息 / 411
11.4iftop:動態顯示網路介面流量信息 / 413
11.5vmstat:虛擬內存統計 / 415
11.6mpstat:CPU信息統計 / 419
11.7iostat:I/O信息統計 / 420
11.8iotop:動態顯示磁碟I/O統計信息 / 423
11.9sar:收集系統信息 / 425
11.10chkconfig:管理開機服務 / 430
11.11ntsysv:管理開機服務 / 433
11.12 setup:系統管理工具 / 434
11.13ethtool:查詢網卡參數 / 436
11.14mii-tool:管理網路介面的狀態 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動化RPM包管理工具 / 446
top命令
第12章 Linux系統常用內置命令 / 450
12.1Linux內置命令概述 / 450
12.2Linux內置命令簡介 / 450
12.3Linux常用內置命令實例 / 452
Linux運維人員必會的120個命令
跟老男孩學Linux運維:核心系統命令實戰
『叄』 linux下的命令都是干什麼用的
前三個和最後一個是兩個類型。前三個主要是Linux用來創建新的進程(線程)而設計的,exec()系列函數則是用來用指定的程序替換當前進程的所有內容。所以exec()系列函數經常在前三個函數使用之後調用,來創建一個全新的程序運行環境。Linux用init進程啟動其他進程的過程一般都是這樣的。
下面說fork、vfork和clone三個函數。這三個函數分別調用了sys_fork、sys_vfork、sys_clone,最終都調用了do_fork函數,差別在於參數的傳遞和一些基本的准備工作不同。可見這三者最終達到的最本質的目的都是創建一個新的進程。在這里需要明確一下,Linux內核中沒有獨立的「線程」結構,Linux的線程就是輕量級進程,換言之基本控制結構和Linux的進程是一樣的(都是通過struct task_struct管理)。
fork是最簡單的調用,不需要任何參數,僅僅是在創建一個子進程並為其創建一個獨立於父進程的空間。fork使用COW(寫時拷貝)機制,並且COW了父進程的棧空間。
vfork是一個過時的應用,vfork也是創建一個子進程,但是子進程共享父進程的空間。在vfork創建子進程之後,父進程阻塞,直到子進程執行了exec()或者exit()。vfork最初是因為fork沒有實現燃滑COW機制,而很多情況下fork之後會緊接著exec,而exec的執皮陸臘行相當於之前fork復制的空間全部變成了無用功,所以設計了vfork。而現在fork使用了COW機制,唯一的代價僅僅是復制父進程頁表的代價,所以vfork不應該出現在新的代碼之中。在Linux的manpage中隊vfork有這樣一段話:It is rather unfortunate that Linux revived this specter from the past. The BSD man page states: "This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing semantics of vfork() as it will, in that case, be made synonymous to fork(2)."
clone是Linux為創建線程設計的(雖然也可以用clone創建進程)。所以可以說clone是fork的升級版本,不僅可以創建進程或者線程,還可以指定創建新的命名空間(namespace)、有選擇的繼承父進程的內存、甚至可以將創建出來的進程變成父進程的兄弟進程等等。clone和fork的調用方式也很不悉粗相同,clone調用需要傳入一個函數,該函數在子進程中執行。此外,clone和fork最大不同在於clone不再復制父進程的棧空間,而是自己創建一個新的。
關於Linux命令的介紹,看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html
『肆』 在linux下怎麼運行main函數
1.運行:
本文使用一個簡單的C程序(simple.c)。代碼如下:
int main()
{
return(0);
}
2. 編譯:
~#gcc -o simple simple.c
3. 查看可執行文件的基本信息
~#objmp -f simple
simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0藉助objmp這個工具,可以獲得可執行文件的一些關鍵信息。
『伍』 常用的linux命令
1、cd命令
這是一個非常基本,也是大家經常需要使用的命令,它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。如:
cd
/root/Docements # 切換到目錄/root/Docements
cd ./path #
切換到當前目錄下的path目錄中,「.」表示當前目錄
cd ../path #
切換到上層目錄中的path目錄中,「..」表示上一層目錄
2、ls命令
這是一個非常有用的查看文件與目錄的命令,list之意,它的參數非常多,下面就列出一些我常用的參數吧,如下:
-l
:列出長數據串,包含文件的屬性與許可權數據等
-a
:列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)
-d
:僅列出目錄本身,而不是列出目錄的文件數據
-h
:將文件容量以較易讀的方式(GB,kB等)列出來
-R
:連同子目錄的內容一起列出(遞歸列出),等於該目錄下的所有文件都會顯示出來
註:這些參數也可以組合使用,下面舉兩個例子:
ls -l
#以長數據串的形式列出當前目錄下的數據文件和目錄
ls -lR
#以長數據串的形式列出當前目錄下的所有文件
3、grep命令
該命令常用於分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等,它的簡單語法為
grep [-acinv]
[--color=auto] '查找字元串' filename
它的常用參數如下:
-a
:將binary文件以text文件的方式查找數據
-c
:計算找到『查找字元串』的次數
-i
:忽略大小寫的區別,即把大小寫視為相同
-v
:反向選擇,即顯示出沒有『查找字元串』內容的那一行
# 例如:
#
取出文件/etc/man.config中包含MANPATH的行,並把找到的關鍵字加上顏色
grep --color=auto
'MANPATH' /etc/man.config
# 把ls
-l的輸出中包含字母file(不區分大小寫)的內容輸出
ls -l | grep -i
file
4、find命令
find是一個基於查找的功能非常強大的命令,相對而言,它的使用也相對較為復雜,參數也比較多,所以在這里將給把它們分類列出,它的基本語法如下:
find [PATH]
[option] [action]
# 與時間有關的參數:
-mtime n :
n為數字,意思為在n天之前的「一天內」被更改過的文件;
-mtime +n :
列出在n天之前(不含n天本身)被更改過的文件名;
-mtime -n :
列出在n天之內(含n天本身)被更改過的文件名;
-newer file :
列出比file還要新的文件名
# 例如:
find /root -mtime
0 # 在當前目錄下查找今天之內有改動的文件
# 與用戶或用戶組名有關的參數:
-user name :
列出文件所有者為name的文件
-group name :
列出文件所屬用戶組為name的文件
-uid n :
列出文件所有者為用戶ID為n的文件
-gid n :
列出文件所屬用戶組為用戶組ID為n的文件
# 例如:
find
/home/ljianhui -user ljianhui # 在目錄/home/ljianhui中找出所有者為ljianhui的文件
# 與文件許可權及名稱有關的參數:
-name filename
:找出文件名為filename的文件
-size [+-]SIZE
:找出比SIZE還要大(+)或小(-)的文件
-tpye TYPE
:查找文件的類型為TYPE的文件,TYPE的值主要有:一般文件(f)、設備文件(b、c)、
目錄(d)、連接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode
:查找文件許可權剛好等於mode的文件,mode用數字表示,如0755;
-perm -mode
:查找文件許可權必須要全部包括mode許可權的文件,mode用數字表示
-perm +mode
:查找文件許可權包含任一mode的許可權的文件,mode用數字表示
# 例如:
find / -name
passwd # 查找文件名為passwd的文件
find . -perm 0755
# 查找當前目錄中文件許可權的0755的文件
find . -size +12k
# 查找當前目錄中大於12KB的文件,注意c表示byte
5、cp命令
該命令用於復制文件,之意,它還可以把多個文件一次性地復制到一個目錄下,它的常用參數如下:
-a :將文件的特性一起復制
-p
:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份
-i
:若目標文件已經存在時,在覆蓋時會先詢問操作的進行
-r
:遞歸持續復制,用於目錄的復制行為
-u
:目標文件與源文件有差異時才會復制
例如 :
cp -a file1 file2
#連同文件的所有特性把文件file1復製成文件file2
cp file1 file2
file3 dir #把文件file1、file2、file3復制到目錄dir中
6、mv命令
該命令用於移動文件、目錄或更名,move之意,它的常用參數如下:
-f
:force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i
:若目標文件已經存在,就會詢問是否覆蓋
-u
:若目標文件已經存在,且比目標文件新,才會更新
註:該命令可以把一個文件或多個文件一次移動一個文件夾中,但是最後一個目標文件一定要是「目錄」。
例如:
mv file1 file2
file3 dir # 把文件file1、file2、file3移動到目錄dir中
mv file1 file2 #
把文件file1重命名為file2
7、rm命令
該命令用於刪除文件或目錄,remove之間,它的常用參數如下:
-f
:就是force的意思,忽略不存在的文件,不會出現警告消息
-i
:互動模式,在刪除前會詢問用戶是否操作
-r
:遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數
例如:
rm -i file #
刪除文件file,在刪除之前會詢問是否進行該操作
rm -fr dir #
強制刪除目錄dir中的所有文件
8、ps命令
該命令用於將某個時間點的進程運行情況選取下來並輸出,process之意,它的常用參數如下:
-A :所有的進程均顯示出來
-a
:不與terminal有關的所有進程
-u :有效用戶的相關進程
-x
:一般與a參數一起使用,可列出較完整的信息
-l
:較長,較詳細地將PID的信息列出
其實我們只要記住ps一般使用的命令參數搭配即可,它們並不多,如下:
ps aux #
查看系統所有的進程數據
ps ax #
查看不與terminal有關的所有進程
ps -lA #
查看系統所有的進程數據
ps axjf #
查看連同一部分進程樹狀態
9、kill命令
該命令用於向某個工作(%jobnumber)或者是某個PID(數字)傳送一個信號,它通常與ps和jobs命令一起使用,它的基本語法如下:
kill -signal PID
signal的常用參數如下:
註:最前面的數字為信號的代號,使用時可以用代號代替相應的信號。
1:SIGHUP,啟動被終止的進程
2:SIGINT,相當於輸入ctrl+c,中斷一個程序的進行
9:SIGKILL,強制中斷一個進程的進行
15:SIGTERM,以正常的結束進程方式來終止進程
17:SIGSTOP,相當於輸入ctrl+z,暫停一個進程的進行
例如:
#
以正常的結束進程方式來終於第一個後台工作,可用jobs命令查看後台中的第一個工作進程
kill -SIGTERM
%1
#
重新改動進程ID為PID的進程,PID可用ps命令通過管道命令加上grep命令進行篩選獲得
kill -SIGHUP PID
10、killall命令
該命令用於向一個命令啟動的進程發送一個信號,它的一般語法如下:
killall [-iIe]
[command name]
它的參數如下:
-i
:互動式的意思,若需要刪除時,會詢問用戶
-e :表示後面接的command
name要一致,但command name不能超過15個字元
-I :命令名稱忽略大小寫
# 例如:
killall -SIGHUP
syslogd # 重新啟動syslogd
11、file命令
該命令用於判斷接在file命令後的文件的基本數據,因為在Linux下文件的類型並不是以後綴為分的,所以這個命令對我們來說就很有用了,它的用法非常簡單,基本語法如下:
file filename
#例如:
file ./test
12、tar命令
該命令用於對文件進行打包,默認情況並不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓。它的常用參數如下:
-c :新建打包文件
-t
:查看打包文件的內容含有哪些文件名
-x
:解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中
-j
:通過bzip2的支持進行壓縮/解壓縮
-z
:通過gzip的支持進行壓縮/解壓縮
-v
:在壓縮/解壓縮過程中,將正在處理的文件名顯示出來
-f filename
:filename為要處理的文件
-C dir
:指定壓縮/解壓縮的目錄dir
上面的解說可以已經讓你暈過去了,但是通常我們只需要記住下面三條命令即可:
壓縮:tar -jcv -f
filename.tar.bz2 要被處理的文件或目錄名稱
查詢:tar -jtv -f
filename.tar.bz2
解壓:tar -jxv -f
filename.tar.bz2 -C 欲解壓縮的目錄
註:文件名並不定要以後綴tar.bz2結尾,這里主要是為了說明使用的壓縮程序為bzip2
13、cat命令
該命令用於查看文本文件的內容,後接要查看的文件名,通常可用管道與more和less一起使用,從而可以一頁頁地查看數據。例如:
cat text | less #
查看text文件中的內容
# 註:這條命令也可以使用less
text來代替
14、chgrp命令
該命令用於改變文件所屬用戶組,它的使用非常簡單,它的基本用法如下:
chgrp [-R]
dirname/filename
-R
:進行遞歸的持續對所有文件和子目錄更改
# 例如:
chgrp users -R
./dir # 遞歸地把dir目錄下中的所有文件和子目錄下所有文件的用戶組修改為users
15、chown命令
該命令用於改變文件的所有者,與chgrp命令的使用方法相同,只是修改的文件屬性不同,不再詳述。
16、chmod命令
該命令用於改變文件的許可權,一般的用法如下:
chmod [-R] xyz
文件或目錄
-R:進行遞歸的持續更改,即連同子目錄下的所有文件都會更改
同時,chmod還可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(刪除)、=(設置)跟rwx搭配來對文件的許可權進行更改。
# 例如:
chmod 0755 file #
把file的文件許可權改變為-rxwr-xr-x
chmod g+w file #
向file的文件許可權中加入用戶組可寫許可權
18、vim命令
該命令主要用於文本編輯,它接一個或多個文件名作為參數,如果文件存在就打開,如果文件不存在就以該文件名創建一個文件。vim是一個非常好用的文本編輯器,它裡面有很多非常好用的命令,在這里不再多說。你可以從這里下載vim常用操作的詳細說明。
19、gcc命令
對於一個用Linux開發C程序的人來說,這個命令就非常重要了,它用於把C語言的源程序文件,編譯成可執行程序,由於g++的很多參數跟它非常相似,所以這里只介紹gcc的參數,它的常用參數如下:
-o
:output之意,用於指定生成一個可執行文件的文件名
-c
:用於把源文件生成目標文件(.o),並阻止編譯器創建一個完整的程序
-I :增加編譯時搜索頭文件的路徑
-L
:增加編譯時搜索靜態連接庫的路徑
-S :把源文件生成匯編代碼文件
-lm:表示標准庫的目錄中名為libm.a的函數庫
-lpthread
:連接NPTL實現的線程庫
-std=
:用於指定把使用的C語言的版本
# 例如:
#
把源文件test.c按照c99標准編譯成可執行程序test
gcc -o test
test.c -lm -std=c99
#把源文件test.c轉換為相應的匯編程序源文件test.s
gcc -S test.c
20、time命令
該命令用於測算一個命令(即程序)的執行時間。它的使用非常簡單,就像平時輸入命令一樣,不過在命令的前面加入一個time即可,例如:
time ./process
time ps aux
在程序或命令運行結束後,在最後輸出了三個時間,它們分別是:
user:用戶CPU時間,命令執行完成花費的用戶CPU時間,即命令在用戶態中執行時間總和;
system:系統CPU時間,命令執行完成花費的系統CPU時間,即命令在核心態中執行時間總和;
real:實際時間,從command命令行開始執行到運行終止的消逝時間;
來自 <https://www.cnblogs.com/yunliu0603/p/10118189.html>
『陸』 Linux系統中如何執行「./configure」命令
1、打開終端輸入一下的命令$crontab -e。
(6)linux執行命令函數擴展閱讀
configure'腳本有大量的命令行選項.對不同的軟體包來說,這些選項可能會有變化,但是許多基本的選項是不會改變的.帶上'-- help'選項執行'configure'腳本可以看到可用的所有選項。
盡管許多選項是很少用到的,但是當你為了特殊的需求而configure一個包時,知道他們的存在是很有益處的.下面對每一個選項進行簡略的介紹:
cache-file=FILE
'configure'會在你的系統上測試存在的特性(或者bug!).為了加速隨後進行的配置,測試的結果會存儲在一個cache file里.當configure一個每個子樹里都有'configure'腳本的復雜的源碼樹時,一個很好的cache file的存在會有很大幫助。
help
輸出幫助信息.即使是有經驗的用戶也偶爾需要使用使用'--help'選項,因為一個復雜的項目襪悄會包含附加的選項。例如,GCC包里的'configure'腳本就包含了允許你控制是否生成和在GCC中使用GNU匯編器的選項。
no-create
'configure'中的一個主要函數會製作輸出文件。此選項阻止'configure'生成這個文件.你可以認為這是一種演習(dry run),盡管緩存(cache)仍然被改寫了。
quiet/--silent
當'configure'進行他的測試時,會輸出簡要的信息來告訴用戶正在作什麼。這樣作是因為'configure'可能會比較慢,沒有這種輸出的話用戶將會被扔在一旁疑惑正在發生什麼。使用這兩個選項中的任何一個都會把你扔到一旁。
『柒』 LINUX+NGINX下的PHP shell_exec()函數執行linux命令 2019-08-08
LINUX+NGINX下的PHP shell_exec()函數執行linux命令
環境說明
手燃衫頭有一台linux的測試伺服器,最近因為業務需要,需要通過php訪問另一台伺服器去執行某些命令。
由於另一台伺服器已經對這台伺服器開了私鑰,所以在終端上是可以直接執行命令而不需要輸入密碼的。
問題
PHP無法使用exec命令,沒有任何返回值。
解決途徑
1.php.ini的配置有問題。
由於php是7.0以上的版本,取消了安全模式,所以考慮PHP.ini文件配置。
打開php配置文件,裡面有一行disabel_function的值,此處記錄了禁止運行的函數,在裡面講exec和shell_exec,system等函數刪除。
2.許可權問題
修改以後PHP可以運行部分命令了,但是部分外部程序和命令仍然不能運行。使用sudo返回失敗。
於是運行「whoami」查看,環境下php-frm的運行角色鎮段唯是www。
於是修改sudoers文件。
vi /etc/sudoers
將www添加到
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
下面:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
www ALL=(ALL) NOPASSWD:ALL
然後找到Default requiretty這一行,把他注釋掉
# Default requiretty
ps:意思就是sudo默認需要tty終端,注釋掉就可以在後台執行了.
重啟nginx和php-fpm
service nginx restart
service php-fpm restart
這樣,PHP就可以在需要御培執行外部命令的時候使用sudo利用root身份執行命令,而不會報錯或者執行失敗了!
『捌』 linux命令的語法包括函數命令嗎
Linux命令的語法一般包括命令、選項和參數,而函好好數命令是一種腳本編程語言的語法,可以在Shell腳本中調用和使用。在命令行中,通常不將函數命令作為可執行命令調用,而是通過Shell腳本等御悉方式調用並執行函數命令。因此,在一般的命令行語法中,函數命令是不包括在內的。但是在Shell腳本的語法規則中,函數命令是需要掌握和使友拆鉛用的一種語法。
『玖』 怎麼在linux中調用命令行中的命令,比如我想在一個程序中用命令行運行另一個程序
Linux編程中在命令行啟動另一個可執行文件或調用命令用system函數最簡單了,這個函數原理是在你編寫的那個程序的內部啟動另一個程序或命令,從而創建一個新進程,並等待這個進程執行完畢退出。如果正常執行,system函數將返回被執行程序或命令的退出碼;如果無法運行這個程序或命令,將返回錯誤代碼127;如果是其他錯誤,返回-1。這個函數的原型是:
#include <stdlib.h>
int system(const char *string);
參數string是將要執行的程序文件名或路徑,如果是啟動一個命令就是一個命令字元串。
還有一種執行外部程序的方法是exec系列函數,一般是在fork的子進程裡面調用exec系列函數,那主進程里直接調用exec系列不行嗎,為什麼要fork再在子進程里調用呢?因為exec系列的函數(包括execl函數)都是將當前進程替換成新進程,也就是說新進程啟動後原來的進程就不存在了,exec系列函數後面的那些代碼就不會再執行了。如果你不放在fork子進程裡面,那主進程在執行execl函數後就完全不存在了,所以exec系列函數的使用都是先fork然後在子進程裡面調用。因為exec系列函數都要使用fork調用,所以我一般是用system函數。
『拾』 linux 常見命令 lsof,ps,ln...
[TOC]
可以列出被進程所打開的文件的信息。被打開的文件可以是
1.普通的文件
2.目錄抽象為特殊文件
3.網路文件系統的文件,抽象為文件
4.字元設備文件在linux抽象為文件
5.(函數)共享庫
6.管道,命名管道
7.符號鏈接
8.底層的socket字流,網路socket,unix域名socket
9.在linux裡面,很多東西都抽象為文件,提供了統一的訪問介面
屬性第一個字元:
rwx=0x111,二進製表示
列出所有進程
-ef f:father
ps –el ,
e:every :顯示所有進程信息,等價於A
a:all :顯示除了當前終端進程外的其他進程
l: long 長格式顯示進程信息。
linux 線程狀態:
ps工具標識進程的5種狀態碼:
chmod 對象 +/- 模式
對象:碧賀u(user),g(group),o(other),a(all)
模式:r,w,x
由鉛粗於inode號碼與文件名分離,這種機制導致了槐慧鎮一些Unix/Linux系統特有的現象。
軟體不關閉情況下更新:寫入同名不同inode的文件,下次啟動由於老的inode已經丟失,操作系統回收原來的Block。
綜上,總結一下軟鏈接和硬鏈接的區別:
參考: 阮一峰的網路日誌:理解inode
Ctrl+z 暫停進程執行
uname -m 顯示機器的處理器架構(2)
uname -r 顯示正在使用的內核版本
jobs: 查看後台任務
fg +jobNum: 將後台任務調到前台
未完,不定期更新中...