# 常用Linux Shell指令 ## stat [filename]             显示指定文件的详细信息,比ls更详细 ## top 动态显示当前耗费资源最多进程信息 ## ps                显示瞬间进程状态 ps -aux ## du       查看目录大小 du -h /home带有单位显示目录信息 ## df 查看磁盘大小 df -h 带有单位显示磁盘信息 ## man 命令不会用了,找男人  如:man ls ## shutdown * -r             关机重启 *      -h             关机不重启 *      now          立刻关机 ## halt   关机 ## reboot 重启 ## | 将一个命令的**标准输出**作为另一个命令的**标准输入**。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。 * grep -r "close" /home/* | more  在home目录下所有文件中查找,包括close的文件,并分页输出。 ## tar * tar -zcvf /home/abc.tar.gz /home/abc     打包,并用gzip压缩 * tar -zxvf /home/abc.tar.gz 用gzip解壓縮 ## chown * sudo chown \[-R\] owner\[:group\] {File|Directory} * sudo chown root:root jdk-7u21-linux-i586.tar.gz : 以jdk-7u21-linux-i586.tar.gz为例。切換用户root,组root ## iptables -L 查看防火墙设置 ## route -n 查看路由表 ## netstat * netstat -lntp 查看所有监听端口 * netstat -antp 查看所有已经建立的连接 * netstat -s 查看网络统计信息进程 ## crontab -l 查看当前用户的计划任务服务 ## chkconfig –list 列出所有系统服务 ## 文件基本權限 | R| W | X | | -------- | -------- | -------- | | 讀 | 寫 | 可執行 | | 4|2 |1| jdk-7u21-linux-i586.tar.gz文件的权限为-rw-rw-r-- #### -rw-rw-r--一共十个字符,分成四段。 * 第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录 * 第二三四个字符“rw-”表示**当前所属用户**的权限。所以用数值表示为4+2=6 * 第五六七个字符“rw-”表示**当前所属组**的权限。所以用数值表示为4+2=6 * 第八九十个字符“r--”表示**其他用户**权限。所以用数值表示为2 所以操作此文件的权限用数值表示为662 例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765 * sudo chmod u+x g+w o+r  filename 上面的例子可以用数值表示 * sudo chmod 765 filename ## Redirect stderr to stdout (`&1`), and then redirect stdout to a file: ``` command >out 2>&1 e.g. ls /usr/share/doc >out.txt 2>&1 ``` ## #!/bin/bash的作用 ? #!/bin/bash是shell指令碼的第一行,稱為釋伴(shebang)行。 這裏#符號叫做hash,而! 叫做 bang。它的意思是命令通過 /bin/bash 來執行。 ## 如何讓 shell 就指令碼得到來自終端的輸入? read命令可以讀取來自終端(使用鍵盤)的資料。read命令得到使用者的輸入並置於你給出的變數中。例子如下: ``` # vi /tmp/test.sh  #!/bin/bash  echo ‘Please enter your name’  read name echo 「My Name is $name」  # ./test.sh Please enter your name  LinuxTechi  My Name is LinuxTechi  ``` ## 如何執行算術運算 ? 兩種方法來執行算術運算: 1. 使用expr命令(# expr 5 + 2) 2. 用一個\$[表示式] 例如: test=\$\[16 + 4\] ## 在shell指令碼如何定義函式呢 ? 式是擁有名字的程式碼塊。當我們定義程式碼塊,我們就可以在我們的指令碼呼叫函式名字,該塊就會被執行。 ``` $ diskusage () { df -h ; }  ``` Reference: https://www.cnblogs.com/ccy1106/p/6637661.html https://itw01.com/VW7XEFX.html