您的位置:首页 > 运维架构 > Shell

Linux常用命令及shell命令总结

2018-01-11 15:06 513 查看
一、命令格式:

bash命令的一般格式是:

命令名 【选项】 【参数1】 【参数2】...

使用bash命令式,应该注意一下7点:

①.命令名必须是小写英文字母,并且往往是表示相应功能的英文单词或单词的缩写。

②.一般格式中,方括号括起来的部分是可选的,即该项对命令行来讲不是必须的,可有可无,

依具体情况而定。

③.选项是对命令的特别定义,以"_"开始,多个选项可用"_"连接起来。

④.命令行参数提供命运行的信息或者命令执行过程中总所使用的文件名。

⑤.如果命令行中没有提供参数,命令将从标准输入文件(即键盘)上接收数据,输入结果显示在标准输出文件(即显示器)上,而错误信息则显示在标准输出文件(即显示器)上。可使用重定向功能对这些文件进行重定向。

⑥.命令在正常执行行后返回一个0值,表示执行成功;如果命令执行过程中出错,没有完成全部工作,则返回一个非零值(在shell中可用变量$?查看)。

⑦.联机帮助对每个命令的准确语法都做了说明。

二、简单命令

1.who命令将列出所有正在使用系统的用户,所用终端名的注册到系统时间。

2.echo 命令将命令行中的参数显示到标准输出上。

3.date命令在屏幕上显示或设置系统的日期和时间。

4.cal命令显示公元1~9999年中任意一年或任意一个月的日历。

5.clear命令清楚屏幕上的信息。

6. passwd命令:Linux的安全特性允许用户控制自己的口令。

三、文件操作命令

1.cat命令连接文件并打印到标准输出设备上

①一般格式 cat [选项] 文件

②示例(设置m1 和 m2 是当前目录下的两个文件)

$cat m1       (在屏幕上显示文件m1的内容)

$cat m1 m2 (同时显示文件m1和m2的内容)

$cat m1 m1>mfile  (将文件m1和m2合并后放入文件mfile中)

2.more命令显示文件内容,每次显示一屏

①-num 这个选项指定一个整数,表示一屏显示多少行

3.head命令在屏幕上显示指定文件的开头若干行。

4.comm命令对两个已排序文件进行逐行比较。

示例:$comm -12 m1 m2 (比较文件m1和m2,并且只显示他们共有的行)

5.cp命令将源文件或目录复制到目标文件或目录中

示例

$cp mfile /home/mengqc/exam1 

将文件mfile 复制到目录/home/mengqc下,并改名为exam1;

$cp -r /home/mengqc /home/liuzh

将目录/home/mengqc 下的所有文件及其子目录复制到目录/home/liuzh中;

$ cp -i /home/mengqc/m*.c /home/liuzh

交互式将目录/home/mengqc中以m打头的所有.c文件复制到目录/home/liuzh中;

6.rm命令删除文件和目录

7.mv命令对文件或目录重新命名,或者将文件从一个目录转移到另一个目录中。

8.mkdir命令用来创建目录

9.rmdir命令可以从一个目录中删除一个或者多个空的子目录.

10.cd命令改变工作目录

11.pwd命令显示出当前工作目录的绝对路径。

12.ls命令列出指定目录的内容。

-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);

-A:显示除影藏文件“.”和“..”以外的所有文件列表;

-C:多列显示输出结果。这是默认选项;

-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;

-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;

-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;

-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;

-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;

-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;

--file-type:与“-F”选项的功能相同,但是不显示“*”;

-k:以KB(千字节)为单位显示文件大小;

-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

-m:用“,”号区隔每个文件和目录的名称;

-n:以用户识别码和群组识别码替代其名称;

-r:以文件名反序排列并输出目录内容列表;

-s:显示文件和目录的大小,以区块为单位;

-t:用文件和目录的更改时间排序;

-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

-R:递归处理,将指定目录下的所有文件及子目录一并处理;

13.in命令用来创建连接

14.chmod命令用于改变或设置文件或目录的存取权限。

-c,--changes

只输出被改变文件的信息

-f,--silent,--quiet

当chmod不能改变文件模式时,不通知文件的用户 

--help

输出帮助信息。

-R,--recursive

可递归遍历子目录,把修改应到目录下所有文件和子目录

--reference=filename

参照filename的权限来设置权限

-v,--verbose

无论修改是否成功,输出每个文件的信息

--version

输出版本信息。

who

u

用户

g



o

其它

a

所有用户(默认)

opcode

+

增加权限

-

删除权限

=

重新分配权限

 

permission

r



w



x

执行

 

s

设置用户(或组)的ID号

t

设置粘着位(sticky bit),防止文件或目录被非属主删除

u

用户的当前权限

g

组的当前权限

o

其他用户的当前权限

15.ps命令查看当前系统中运行的进程信息

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。

2)ps -A 显示所有进程。

3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或
4000
常驻服务的标示。

4)ps -e 此参数的效果和指定"A"参数相同。

5)ps e 列出程序时,显示每个程序所使用的环境变量。

6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。

7)ps -H 显示树状结构,表示程序间的相互关系。

8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。

9)ps s 采用程序信号的格式显示程序状况。

10)ps S 列出程序时,包括已中断的子程序资料。

11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。

12)ps u  以用户为主的格式来显示程序状况。

13)ps x  显示所有程序,不以终端机来区分。

16.kill命令用来终止一个进程的运行

17.sleep命令使进程暂停执行一段时间

18.gzip命令对文件进行压缩和解压缩

19.unzip命令对zip格式的压缩文件进行解压缩

九九乘法表

1、for循环的两种方法



for((i=1;i<=9;i++))

do

for((j=1;j<=i;j++))

 do

echo -ne"$i*$j=$((i*j))\t"

done

Echo

done

 ②

for i  in {1,2,3,4,5,6,7,8,9}

do

    for j in {1,2,3,4,5,6,7,8,9}

    do

        ((p=$i*$j))

        echo -ne $i\*$j=$p"\t"

    done

echo

done    

2、while的表示方法

i=1;

j=1;

while((i<=9))

do

 while((j<=i))

 do

  let "temp=i*j"

  echo -ne "$i*$j=$temp\t"

  let j++

  done

  let i++

  let j=1

  echo ""

Done

3、until的表述方法

i=1

until ((i>9))

do

 let j=1

 until ((j>i))

 do

 let "temp=i*j"

 echo -ne "$i*$j=$temp\t"

 let j++

done

 let i++

 echo ""

done

九九乘法表

1、for循环的两种方法



for((i=1;i<=9;i++))

do

for((j=1;j<=i;j++))

 do

echo -ne"$i*$j=$((i*j))\t"

done

Echo

done

 ②

for i  in {1,2,3,4,5,6,7,8,9}

do

    for j in {1,2,3,4,5,6,7,8,9}

    do

        ((p=$i*$j))

        echo -ne $i\*$j=$p"\t"

    done

echo

done    

2、while的表示方法

i=1;

j=1;

while((i<=9))

do

 while((j<=i))

 do

  let "temp=i*j"

  echo -ne "$i*$j=$temp\t"

  let j++

  done

  let i++

  let j=1

  echo ""

Done

3、until的表述方法

i=1

until ((i>9))

do

 let j=1

 until ((j>i))

 do

 let "temp=i*j"

 echo -ne "$i*$j=$temp\t"

 let j++

done

 let i++

 echo ""

done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: