日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux命令必知必会

發布時間:2025/3/18 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux命令必知必会 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[TOC]

top命令

監控系統的運行狀態,并且可以按照cpu、內存、執行時間進行排序。

第一行中,03:30:22是當前時間,up 39 min是系統運行的運行了多長時間,1 user指出了當前有幾個用戶登錄到系統,load average指的是系統負載,這后面的三個值分別是1分鐘,5分鐘,15分鐘的系統負載平均值。

如果僅僅需要第一行中的信息,可以使用uptime命令。

第二行中,Task指出了當前系統有多少個進程,以及各種狀態的進程統計信息。

第三行是%Cpu(s),代表了CPU占用比例,其中:

  • us 用戶模式(user mode)
  • sy 系統模式(system mode)
  • ni 優先值(low priority user mode(nice))
  • id 空閑CPU百分比(idle task)
  • wa 等待輸入輸出的CPU事件百分比(I/O waiting)
  • hi servicing IRQs
  • si servicing soft IRQs
  • st steal (time given to other DomU instances)

ni是優先值(nice value),也就是任務的優先值。優先值為負數,則說明任務有更高的優先級,正數值說明任務有更低的優先級,該值為0意味著進程的優先級沒有調整。

最后兩行為內存信息,前者Mem為物理內存占用信息,后者Swap為交換分區占用信息。

使用-M參數可以更加友好的顯示內存占用信息。默認是以kb展示的,看起來比較費勁,使用-M之后會根據數值大小,以G/M為單位展示。

最下面是進程的信息區域:

  • PID 進程的PID
  • USER 用戶名,任務屬主
  • PR 任務的優先級
  • NI 優先值
  • VIRT 虛擬映像(kb),任務當前使用的虛擬內存數量
  • RES 常駐物理內存占用量,RES=CODE+DATA
  • SHR 共享內存大小(kb)
  • S 進程狀態(D-不可中斷的睡眠,R-運行,S-睡眠,T-停止,Z-僵尸進程)
  • %CPU CPU使用量
  • %MEM 內存使用量
  • TIME+ CPU時間,百分之一
  • COMMAND 程序名稱

參考linux top命令詳解

pgrep/pkill 命令

根據名稱或者其它屬性查詢(發送信號)進程信息。

pgrep命令根據提供的條件查詢進程的pid,查詢條件是and方式的,對于同一個選項,使用『,』分隔可以按照or方式查詢。

pgrep -u root sshd # 查詢進程名為sshd,并且屬主是root的進程 pgrep -u root,daemon # 查詢屬主是root或者daemon的進程

pkill 使用與pgrep類似,不過它不是用來查詢進程pid,而是給進程發送信號,默認會發送 SIGTERM信號。

例如:

$ pgrep -u root named # 查找named進程的pid $ pkill -HUP syslogd # 告訴syslogd重新讀取配置文件

要查看有哪些信號可用,可以使用kill -l列出所有的信號以及其數值。

except命令

  • send 發送一個字符串給進程。
  • expect 等待來自進程返回的字符串。
  • spawn 開始一個命令。

實現控制臺SSH直接登陸Linux服務器

#!/usr/bin/expectset timeout 20set ip "IP地址" set user "用戶名" set password "密碼"spawn ssh "$user\@$ip"expect "$user@$ip's password:" send "$password\r"interact

參考 [6 Expect Script Examples to Expect the Unexpected (With Hello World)

](http://www.thegeekstuff.com/2010/10/expect-examples/)

pstack命令

pstack是一個shell腳本,用于打印正在運行的進程的棧跟蹤信息,它實際上是gstack的一個鏈接。

該命令只需要提供一個參數,進程的pid即可。

$ sudo pstack $(pgrep -uroot php-fpm) [sudo] password for guanyy: #0 0x000000380d8e86f3 in __epoll_wait_nocancel () from /lib64/libc.so.6 #1 0x00000000007ec4a4 in fpm_event_epoll_wait () #2 0x00000000007e1517 in fpm_event_loop () #3 0x00000000007dc887 in fpm_run () #4 0x00000000007e3bd8 in main ()

pstack是gdb的一部分,如果系統沒有pstack命令,使用yum搜索安裝gdb即可。

strace命令

strace命令用于跟蹤系統調用和信號。主要用于診斷,調試程序,使用該命令能夠打印出進程執行的系統調用信息。

在 Mac 下使用dtruss命令代替

找出應用程序啟動時讀取的配置文件

$ strace php 2>&1 | grep php.ini open("/usr/local/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/local/lib/php.ini", O_RDONLY) = 4 lstat64("/usr/local/lib/php.ini", {st_mode=S_IFLNK|0777, st_size=27, ...}) = 0 readlink("/usr/local/lib/php.ini", "/usr/local/Zend/etc/php.ini", 4096) = 27 lstat64("/usr/local/Zend/etc/php.ini", {st_mode=S_IFREG|0664, st_size=40971, ...}) = 0

這里的2>&1 是將標準錯誤輸出重定向到標準輸出。

查找為什么程序沒有打開指定文件

$ strace -e open,access 2>&1 |grep your-filename

-e參數指定了一個限定表達式用于指定要跟蹤的事件和如何跟蹤它們。

[qualifier=][!]value1[,value2]...

這里的qualifier可選值為: trace, abbrev, verbose, raw, signal, read, write。默認的qualifier是trace。

查看進程正在執行什么操作

root@dev:~# strace -p 15427 Process 15427 attached - interrupt to quit futex(0x402f4900, FUTEX_WAIT, 2, NULL Process 15427 detached

-p指定了strace跟蹤的進程的pid,這樣就避免了每次執行strace時需要重啟程序。

查看進程的哪些操作比較耗時

root@dev:~# strace -c -p 11084 Process 11084 attached - interrupt to quit Process 11084 detached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ----------------94.59 0.001014 48 21 select2.89 0.000031 1 21 getppid2.52 0.000027 1 21 time ------ ----------- ----------- --------- --------- ---------------- 100.00 0.001072 63 total

-c參數用于統計進程做了哪些系統調用,調用的時間統計等,并對這些信息做一個匯總顯示。

查看為什么xxx無法連接到服務器

$ strace -e poll,select,connect,recvfrom,sendto nc www.news.com 80 sendto(3, "\\24\\0\\0\\0\\26\\0\\1\\3\\255\\373NH\\0\\0\\0\\0\\0\\0\\0\\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) ...

參考5 simple ways to troubleshoot using Strace

nc命令

該命令用于創建任意的TCP/UDP連接或者是監聽連接。

建立一個基本的C/S模型(文件遠程復制)

在Server1上,使用nc命令創建一個服務端:

server1 $ nc -l 1234

在Server2上,使用nc作為客戶端連接到server1

server2 $ nc server1的IP地址 1234

這樣就建立起一個簡單的C/S連接,在server2中輸入任何內容,在server1都可以接受到(同步顯示)。

上面的例子可以改造實現文件遠程發送

server1 $ nc -l 1234 > filename.out

在server2上

server2 $ nc server1的IP地址 1234 < filename.in

-l 指定了nc應該作為server端監聽指定的端口

模擬HTTP請求

# echo -n "GET / HTTP/1.0\r\n\r\n" | nc php.net 80 HTTP/1.1 400 Bad Request Server: nginx/1.6.2 Date: Tue, 16 Dec 2014 08:09:35 GMT Content-Type: text/html Content-Length: 172 Connection: close<html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <hr><center>nginx/1.6.2</center> </body> </html>

端口掃描

端口掃描的作用還是比較大的,使用nc可以方便的進行端口掃描。

# nc -z letv.com 1-100 Connection to letv.com 22 port [tcp/ssh] succeeded! Connection to letv.com 80 port [tcp/http] succeeded!

這里的1-100指定了掃描的端口范圍,-z參數告訴nc命令只報告開放的端口。

默認nc命令發送的是tcp請求,通過指定參數-u可以發送udp請求。

目錄傳輸

下面例子中,將server2的phpredis-master目錄拷貝到server1。

server1:

# nc -l 1234|tar zxvf -

server2:

# tar zcvf - phpredis-master|nc server1的IP地址 1234

參考Linux nc命令詳解

pstree命令

該命令用于顯示進程樹,以樹的形式顯示正在運行的進程,樹的根節點是指定的pid(忽略則為init進程)。

[root@cdn ~]# pstree -p $(pgrep -uroot php-fpm) php-fpm(5445)─┬─php-fpm(5446)├─php-fpm(5447)├─php-fpm(5448)├─php-fpm(7540)├─php-fpm(21639)└─php-fpm(24727)

ss命令

ss命令用于顯示socket的統計信息。

顯示socket的匯總信息

-s選項用于顯示匯總信息。

# ss -s Total: 247 (kernel 290) TCP: 214 (estab 68, closed 130, orphaned 0, synrecv 0, timewait 130/0), ports 135Transport Total IP IPv6 * 290 - - RAW 0 0 0 UDP 11 7 4 TCP 84 81 3 INET 95 88 7 FRAG 0 0 0

查看所有打開的網絡端口

-l選項用于列出當前正在監聽的socket。

# ss -l State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.1:smux *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 50 *:3306 *:* LISTEN 0 1024 :::11211 :::*

使用ss -pl可以查看使用網絡端口的進程名稱,這里的-p選項用于顯示進程信息。

# ss -pl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.1:smux *:* users:(("snmpd",1256,8)) LISTEN 0 50 *:3306 *:* users:(("mysqld",17651,10)) LISTEN 0 1024 :::11211 :::* users:(("memcached",1849,34)) LISTEN 0 1024 *:11211 *:* users:(("memcached",1849,33)) LISTEN 0 511 127.0.0.1:6379 *:* users:(("redis-server",1403,4))

使用ss -pl|grep 端口號查看端口被那個進程占用。

顯示所有的TCP/UDP Socket

參數-a(--all)用于顯示所有的socket,-t指的是TCP, -u是UDP, -w是RAW, -x是UNIX。

# ss -t -a # ss -u -a # ss -w -a # ss -x -a

參考[ss: Display Linux TCP / UDP Network and Socket Information

](http://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html)

w/who命令

w命令用于查看當前哪些用戶登錄到系統和他們正在做什么,who命令僅用于查看哪些用戶登錄系統。

# w15:39:08 up 126 days, 22:35, 3 users, load average: 0.02, 0.05, 0.02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.58.92.228 13:29 1:35m 0.03s 0.03s -bash root pts/1 10.58.93.56 10:32 5:06m 0.00s 0.00s -bash root pts/4 10.58.88.20 12:29 0.00s 0.20s 0.00s w # who root pts/0 2014-12-18 13:29 (10.58.92.228) root pts/1 2014-12-18 10:32 (10.58.93.56) root pts/4 2014-12-18 12:29 (10.58.88.20)

iostat

報告CPU的統計信息,設備、分區、網絡文件系統(NFS)的I/O統計信息。

# iostat Linux 2.6.32-903.279.9.1.el6.x86_64 (localhost) 2014年12月18日 _x86_64_ (2 CPU)avg-cpu: %user %nice %system %iowait %steal %idle0.35 0.00 0.34 0.42 0.15 98.74Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn vda 4.01 0.35 56.76 3866731 622586087 dm-0 3.29 0.09 26.33 989378 288796192 dm-1 3.45 0.05 27.60 554922 302727584 dm-2 0.32 0.21 2.83 2296845 31060799

這里對幾個性能指標進行解釋:

  • tps 每秒發送的I/O請求數
  • Blk_read/s 每秒讀取的block數
  • Blk_wrtn/s 每秒寫入的block數
  • Blk_read 讀取的block數
  • Blk_wrtn 寫入的block數

通過指定-d參數可以設定自動按照指定時間間隔顯示統計信息。例如,下列命令每隔2s顯示一次。

$ iostat -d 2

iptraf 命令:實時網絡統計

交互式的IP網絡實時監控工具,圖形化界面,比較方便。

# iptraf

界面如下:

參考20 Linux System Monitoring Tools Every SysAdmin Should Know

查看Linux的版本(Red Hat/Cent OS)

在RedHat和Cent OS下,使用如下命令查看當前系統的版本。

$ cat /etc/centos-release CentOS release 6.3 (Final)

time命令: 統計程序執行時間

用于統計程序執行時間,這些事件包含程序從被調用到終止的時間,用戶CPU時間,系統CPU時間。

$ time ls bakup PDO-1.0.3.tgz rinetd.tar.gz yaf-2.2.9.tgz channel.xml package2.xml PDO_MYSQL-1.0.2 xhprof-0.9.4 zendopcache-7.0.3 go-pear.phar package.xml PDO_MYSQL-1.0.2.tgz xhprof-0.9.4.tgz zendopcache-7.0.3.tgz PDO-1.0.3 rinetd yaf-2.2.9real 0m0.002s user 0m0.000s sys 0m0.001s

tee命令

tee命令用于將標準輸入拷貝到標準輸出。

$ echo "hello,world"|tee -a test.txt

上述命令將hello,world字符串輸出到test.txt文件中,-a 默認情況下,tee命令會使用>覆蓋輸出到文件,使用-a屬性,會使用>>追加方式

netstat命令

查看端口占用情況

# netstat -apn
  • -a(--all) 顯示所有的socket信息(包括監聽和未監聽)
  • -p(--program) 顯示每個socket所屬于的進程名稱和PID
  • -n(--numeric) 顯示數字形式的地址而不是符號化的主機名、端口或者用戶名

perf命令

perf命令是隨Linux內核代碼一同發布和維護的性能診斷工具,由內核社區負責維護和發展。Perf不僅可以用于應用程序性能統計分析,也可以應用于內核代碼的的性能統計和分析。

在Cent OS系統上,如果沒有該命令的話,可以使用yum進行安裝。

# yum install perf

perf命令非常強大,詳細介紹的話篇幅比較長,可以閱讀這篇文章 [Perf -- Linux下的系統性能調優工具][]。

用法: perf [--version] [--help] COMMAND [ARGS]最常用的perf命令:annotate 讀取perf.data (使用perf record創建)文件并且顯示標注的代碼archive Create archive with object files with build-ids found in perf.data filebench 進行基準測試的框架工具集buildid-cache Manage build-id cache.buildid-list List the buildids in a perf.data filediff Read perf.data files and display the differential profileevlist List the event names in a perf.data fileinject Filter to augment the events stream with additional informationkmem Tool to trace/measure kernel memory(slab) propertieskvm Tool to trace/measure kvm guest oslist 列出所有事件類型的符號lock 分析鎖事件mem 分析對內存的訪問record 運行一個命令并且記錄它的分析結果到perf.data文件中report 讀取perf.data文件并且顯示分析結果sched Tool to trace/measure scheduler properties (latencies)script Read perf.data (created by perf record) and display trace outputstat 運行一個命令并且收集性能計數統計信息test 運行可用性測試timechart Tool to visualize total system behavior during a workloadtop 系統分析工具.trace 受strace啟發創建的工具probe 定義一個新的動態跟蹤點See 'perf help COMMAND' for more information on a specific command.

perf stat

perf stat通過概括精簡的方式提供被調試程序運行的整體情況和匯總數據。

創建如下C程序test.c

#include <stdio.h>int main() {int i = 1;while (1) {if (i == 100000) break;i ++;}return 0; }

編譯gcc test.c -o test。

$ perf stat ./testPerformance counter stats for './test':0.837322 task-clock # 0.747 CPUs utilized 1 context-switches # 0.001 M/sec 0 CPU-migrations # 0.000 M/sec 98 page-faults # 0.117 M/sec 269,259 cycles # 0.322 GHz [90.39%]897,270 stalled-cycles-frontend # 333.24% frontend cycles idle 226,746 stalled-cycles-backend # 84.21% backend cycles idle 764,602 instructions # 2.84 insns per cycle # 1.17 stalled cycles per insn267,843 branches # 319.881 M/sec 3,467 branch-misses # 1.29% of all branches [80.37%]0.001121130 seconds time elapsed

第一個task-clock是CPU利用率,該值比較高,說明該程序屬于CPU密集型。第二個context-switches是進程上下文切換次數,頻繁的切換次數應該是要避免的。

perf top

用于實時顯示當前系統的性能統計信息。該命令主要用來觀察整個系統當前的狀態,比如可以通過查看該命令的輸出來查看當前系統最耗時的內核函數或某個用戶進程。

執行該命令需要root權限。

使用方法如下

$ sudo perf top

程序會與top命令類似,動態輸出以下內容

Samples: 1K of event 'cpu-clock', Event count (approx.): 807169539.60% [kernel] [k] __do_softirq13.46% [kernel] [k] _raw_spin_unlock_irqrestore9.37% [kernel] [k] VbglGRPerform8.47% [kernel] [k] e1000_xmit_frame6.01% [kernel] [k] finish_task_switch5.82% [kernel] [k] e1000_clean5.15% [kernel] [k] native_read_tsc4.75% [kernel] [k] kmem_cache_free1.32% [kernel] [k] tick_nohz_idle_enter1.28% libc-2.17.so [.] __strstr_sse21.22% libc-2.17.so [.] __memset_sse20.82% libc-2.17.so [.] __GI___strcmp_ssse30.42% libpython2.7.so.1.0 [.] 0x000000000007e7c60.42% libc-2.17.so [.] __strchrnul0.39% [kernel] [k] e1000_alloc_rx_buffers0.38% libz.so.1.2.7 [.] 0x0000000000002d760.24% [kernel] [k] tick_nohz_idle_exit0.21% [kernel] [k] kfree

perf report/record

使用 top 和 stat 之后,您可能已經大致有數了。要進一步分析,便需要一些粒度更細的信息。比如說您已經斷定目標程序計算量較大,也許是因為有些代碼寫的不夠精簡。那么面對長長的代碼文件,究竟哪幾行代碼需要進一步修改呢?這便需要使用 perf record 記錄單個函數級別的統計信息,并使用 perf report 來顯示統計結果。

創建新的C程序test3,代碼如下

#include <stdio.h>void test();int main() {test();return 0; }void test() {long i;for (i = 0; i < 10000000; i ++) {}puts("finished"); }

編譯后,執行如下命令

$ perf record ./test3 $ perf report

輸出以下內容

Samples: 68 of event 'cpu-clock', Event count (approx.): 1700000097.06% test3 test3 [.] test1.47% test3 [kernel.kallsyms] [k] __do_softirq1.47% test3 [kernel.kallsyms] [k] queue_work_on

從中可以看到,大部分時間都消耗在了test函數中。

perf record命令增加-g參數可以記錄函數的調用圖信息。更多詳情參考: [Perf -- Linux下的系統性能調優工具][]

lsof命令: 列出打開的文件

工具lsof是一個可以列出操作系統打開的文件的工具,在Linux系統中,任何事物都是以文件的形式存在,通過文件不僅可以訪問常規文件,還可以訪問網絡連接和硬件設備。

在終端下直接輸入lsof命令,會列出當前系統打開的所有文件,因為它需要列出核心內存和各種文件,所以必須使用root用戶運行才能顯示詳細的信息。

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 253,0 4096 2 / init 1 root rtd DIR 253,0 4096 2 / init 1 root txt REG 253,0 150352 10973 /sbin/init init 1 root mem REG 253,0 65928 264638 /lib64/libnss_files-2.12.so init 1 root mem REG 253,0 1922112 265339 /lib64/libc-2.12.so init 1 root mem REG 253,0 93224 277540 /lib64/libgcc_s-4.4.6-20120305.so.1 init 1 root mem REG 253,0 47064 267086 /lib64/librt-2.12.so ...

這里的COMMAND是進程名稱,PID,USER分別指的是進程的ID和進程所有者,FD是文件描述符,TYPE是文件類型,DEVICE是磁盤名稱,SIZE是文件大小,NODE是索引節點(文件在磁盤上的標識),NAME是打開文件的確切名稱。

對于FD的值,cwd表示當前工作目錄,Lnn表示類庫引用,mem表示內存映射文件,rtd表示根目錄,pd表示父目錄,txt表示進程的數據和代碼。

常用參數及說明

  • lsof filename 顯示打開指定文件的所有進程
  • lsof -a 表示兩個參數都必須滿足時才顯示結果
  • lsof -c string 顯示COMMAND列中包含指定字符的進程所有打開的文件
  • lsof -u username 顯示所屬user進程打開的文件
  • lsof -g gid 顯示歸屬gid的進程情況
  • lsof +d /DIR/ 顯示目錄下被進程打開的文件
  • lsof +D /DIR/ 同上,但是會搜索目錄下的所有目錄,時間相對較長
  • lsof -d FD 顯示指定文件描述符的進程
  • lsof -n 不將IP轉換為hostname,缺省是不加上-n參數
  • lsof -i 用以顯示符合條件的進程情況
  • lsof -p PID 選擇指定PID
  • lsof -i[46] protocol[:service|port]

    46: IPv4 or IPv6 protocol: TCP or UDP hostname: Internet host name hostaddr: IPv4地址 service: /etc/service中的 service name (可以不只一個) port: 端口號 (可以不只一個)

參考: [百度文庫][]

unzip命令

unzip命令用于解壓.zip文件,常用參數如下

  • -f 只更新磁盤上已經存在的文件
  • -u 更新磁盤上存在的文件,文件不存在則創建
  • -o 如果文件已經存在則直接覆蓋,不提示
  • -d 指定解壓到的目錄

例如,解壓test.zip到/var/www目錄,部署web站點

# unzip -u -o -d /var/www test.zip # chown -R www:www /var/www

使用pushd和popd命令快速切換目錄

經常會有這么一種情況,我們會在不同目錄中進行頻繁的切換,如果目錄很深,那么使用cd命令的工作量是不小的,這時可以使用pushd和popd命令快速切換目錄。

$ pwd /Users/mylxsw/codes/php/lecloud/api $ pushd . ~/codes/php/lecloud/api ~/codes/php/lecloud/api $ cd ../album/ $ pwd /Users/mylxsw/codes/php/lecloud/album $ popd ~/codes/php/lecloud/api $ pwd /Users/mylxsw/codes/php/lecloud/api

SCP

在服務器和本地計算機之間傳遞文件

usage: scp [-12346BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file][-l limit] [-o ssh_option] [-P port] [-S program][[user@]host1:]file1 ... [[user@]host2:]file2

從服務器下載文件

scp username@服務器地址:/path/文件名 本地保存路徑

上傳文件到服務器

scp 本地文件路徑 username@服務器地址:/保存到服務器的路徑

Tip: 如果要操作的對象是整個目錄的話,需要添加-t參數。

使用范例:

localhost:Downloads mylxsw$ scp guanyy@10.10.10.10:/home/guanyy/download.db ./ guanyy@10.10.10.10's password: download.db 100% 25MB 24.7MB/s 00:01

Mac OS 清理DNS緩存

dscacheutil -flushcache

Cent OS服務器安裝PHP的pecl

想要安裝某個PHP擴展,但發現服務器上沒有pecl,因此需要安裝pecl。

$ sudo yum install php-pear

安裝pear之后,pecl就有了。

在當前目錄下查找大小超過100MB的文件

find . -type f -size +100M

轉換iso格式為dmg

hdiutil convert -format UDRW -o ubuntu-16.04-desktop-amd64.img ubuntu-16.04-desktop-amd64.iso

查看磁盤設備

diskutil list

卸載磁盤: diskutil umountDisk /dev/disk1

拷貝鏡像到U盤

dd if=yourimage.img of=/dev/sdb1

使用基于文本的圖形界面配置命令setup

安裝setup命令

$ sudo yum install setuptool

安裝之后,需要安裝一些常見的系統配置組件,也是使用yum:

$ sudo yum install system-config-services system-config-firewall system-config-network-tui

更多的配置組件可以使用yum search system-config命令查看,進入配置界面直接使用setup命令。

使用sed批量操作文件

下面這個命令實現了批量把符合.env*規則的文件中,刪除包含APP_TIMEZONE的行,追加兩行新的配置

find . -name '.env*' -exec sed -i '' -e '/APP_TIMEZONE/d' -e '$ a \ DB_TIMEZONE=+08:00\ APP_TIME_ZONE=PRC\ ' {} \;

下面的命令實現了批量替換符合.env*規則的文件中的APP_TIME_ZONE為APP_TIMEZONE

find . -name '.env*' -exec sed -i '' -e 's/APP_TIME_ZONE/APP_TIMEZONE/' {} \;

查看路由規則

[root@tristan]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.99.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.99.254 0.0.0.0 UG 0 0 0 eth0 [root@tristan]# ip route show 192.168.99.0/24 dev eth0 scope link 127.0.0.0/8 dev lo scope link default via 192.168.99.254 dev eth0

總結

以上是生活随笔為你收集整理的Linux命令必知必会的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。