【Linux】shell 指令

目录

一、shell 指令

1.1 体验shell指令 

1.2 命令格式

1.3 shell中的通配符

1.4 输入输出重定向

1.5 命令置换

1.6 基本系统维护命令

1.7 Linux的进程管理命令

1.8 文件系统相关命令

1.9 Linux网络配置管理

二、shell 编程

2.1 shell 脚本的基础知识

2.2 shell 变量

2.3 shell 程序和语句

2.3.1 说明性语句

2.3.2 功能性语句

2.3.3 结构性语句 

(1)条件语句  if…then…fi

(2)多路分支语句 

 (3)循环语句

 2.4 函数的调用


一、shell 指令

        shell命令是用户向系统内核发出控制请求,与之交互的文本流。shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。

1.1 体验shell指令 

1.立即关机与重启
使用系统中的图形界面
使用shell命令
    在命令行键入一下命令,系统立即关机
    sudo shutdown -h now
    在命令行键入以下命令,系统立即重启启动
    sudo shutdown -r now
    sudo reboot now
2.定时关机重启
    a.一位老师在对学生进行上机测试,时间限定在45分钟内,否则计算机将自动关机。
    sudo shutdown -h +45 “That is all,game over.”
    b.系统正在安装软件,安装时间大概需要持续40分钟左右,软件安装之后需要重新启动电脑。用户可以不必一直等候在机旁。
使用下面的命令,计算机会在60分钟后自动重启。
    sudo shutdown -r +60

1.2 命令格式

        shell提示符标识了命令行的开始。用户在提示符后面输入一条命令并按Enter键,完成向系统提交命令。通常shell命令提示符采用以下的格式: 

username@hostname:direction$
用户名    主机名  目录名
1)username:用户名,显示当前登录用户的账户名  (执行的命令是 whoami)
2)hostname: 主机名,显示登录的主机名,例如若远程登录后,则显示登录的主机名;(执行的命令是hostname)
3)direction: 目录名,显示当前所处的路径,当在根目录下显示为“/”,当在用户主目录下显示为“~“;(执行的命令是pwd)
4)通常一条命令包含三个要素:命令名称、选项、参数。命令名称是必须的,选项和参数都可能是选项。命令格式如下:
        $ Command [-Options] Argument1 Argument2...
        指令      选项      参数1    参数2 ...
    $:Shell提示符,如果当前用户为超级用户,提示符为“#”,其他用户的提示符均为“$”;
    Command:命令名称,Shell命令或程序,严格区分大小写
    Options:命令选项,用于改变命令执行动作的类型,由“-”引导,可以同时带有多个选项;
    Argument:命令参数,指出命令作用的对象或目标,有的命令允许带多个参数
5)shell命令格式
    1)一条命令的三要数之间用空格隔开;
    2)若将多个命令在一行书写,用分号(;)将各命令隔开;
    3)如果一条命令不能在一行写完,在行尾使用反斜杠(\)表明该条命令结束。
6)不带选项和参数
    1)ls命令未带任何参数,列出当前目录中的所有文件,只显示文件名称
    2)命令不带选项或参数,通常意为使用默认选项或参数

1.3 shell中的通配符

        当需要用命令处理一组文件,例如file.txt、file2.txt、file3.txt....,用户不必意义输入文件名,可以使用shell通配符。shell命令的通配符含义如下:

通配符             含义                                  实例
*	        匹配任意长度的字符串         用file_*.txt,匹配file_wang.txt、file_lee.txt、file3_liu.txt
?           匹配一个长度的字符           用file_?.txt,匹配file_1.txt、file_2.txt、file_3.txt
[...]       匹配其中指定的一个字符       用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t。txt
[-]         匹配指定的一个字符范围       用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt
[^...]      除了其中指定的字符均可匹配   用file_[^otr].txt,除了file_o.txt、file_t.txt、file_r.txt的其它文件

***管道***:当您将 ls /usr/bin 的输出通过管道 | 传递给 wc -w 时,wc -w 会计算 ls 命令输出的每一行中的单词数量。由于 ls 命令默认会为每个文件或目录输出一行,所以这个组合命令实际上统计的是 /usr/bin 目录下的文件和目录总数。

管道可以把一系列命令链接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,
第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成一个管道。
    ls /use/bin | wc -w

1.4 输入输出重定向

1.输入/输出重定向是改变shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。
2.linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
3.用户可以为当前操作改变输入或输出,迫使某个特定命令的输入或输出来源为外部文件。 
    重定向符 		含义						        实例
    > file		将file文件重定向为输出源,新建模式 	      ls /usr > Lsoutput.txt,将ls /usr的执行结果,
                                                        写到Lsoutput.txt文件中,若有同名文件将被删除

    >> file		将file文件重定向为输出源,追加模式	      ls /usr >> Lsoutput.txt,将ls /usr的执行结果,
                                                        追加到Lsoutput.txt文件已有内容后
 
    < file		将file文件重定向为输入源		         wc < file1,将file1中的内容作为输入传给wc命令
    
    2> 或 &>	将由命令产生的错误信息输入到文件中	      ls noexistingfile.txt  2> err.log,使用ls命令,
                                                        查看一个不存在的文件时,将系统错误提示保存在err.log文件中

示例: cat命令功能为在标准输出上显示文件。下面通过一个实例,可以更好地理解重定向的功能。

1)cat            #使用标准输入/出设备
    have a good day!                #用户使用标准输入设备——键盘,键入字符串,并按Enter键
    have a good day!                #系统在标准输出——显示器上,显示用户刚刚输入的字符串

2)cat > file1.txt      #输出重定向,将输出定向到文件file1.txt
    have a good day!               #用户使用标准输入设备——键盘,键入字符串,并按Enter键
                                   #用户输入的字符串被保存在file1.txt文件中

3)cat < file1.txt    #输入重定向,将cat命令的输入指定为file1.txt文件
    have a good day!                #系统在标准输出显示器上,显示cat命令从文件中读出的字符串

1.5 命令置换

命令替换是将一个命令的输出作为另一个命令的参数。命令格式如下所示。
1.其中,命令command2的输出将作为命令command1的参数。需要注意,命令置换的单引号为ESC键下方的“`”键 
            command1  `command2`
2.pwd命令用于显示当前目录的绝对路径。在上面的命令行中,使用命令置换符,将pwd的运行结果作为ls命令的参数。最终,命令执行结果是显示当前目录的文件内容。
            linux@ubuntu:~$ ls  `pwd`
            Desktop  Examples  historycommandlist  mywork

1.6 基本系统维护命令

1.使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:
    man  commandname
2.passwd
    a. 出于系统安全考虑,Linux系统中的每一个帐号都必须同时具备用户名和密码。
    b. 可以使用passwd命令,为已有账户重新修改用户口令。
    c. 需要说明的是,超级用户root可以修改所有其他用户的口令,而普通用户只能修改自己的用户口令,
    如果确要修改超级用户或其他用户口令的话,需要具有超级用户的权限。
    d. passwd命令的一般语法格式为:
        passwd  username
    单独使用passwd命令,意为修改当前用户自己的口令。下面命令实例用于修改用户自己的口令。

3.su
    a. su命令用于临时改变用户身份,具有其他用户的权限。普通用户可以使用su命令临时具有超级用户的权限;
        超级用户也可以使用普通用户身份完成一些操作。当需要放弃当前用户身份,可以使用exit命令切换回来。su命令的一般语法格式为:
            su  [-c | -m - ]  username
    b.选项“-c”表示执行一个命令后就结束;-m表示仍保留环境变量不变;-表示转换用户身份时,同时使用该用户的环境。
        单独使用su命令,默认为要转换为超级用户root。下面命令实例临时获取超级用户root的权限。

4.echo
    echo命令用于在标准输出——显示器上显示一段文字,一般起到提示作用。

5.date
    a. date命令用于显示和设置系统日期和时间。date命令的一般语法格式为:
        date  [-d | -s|-u ]  datestr
    b. 选项-s表示按照datestr日期显示格式设置日期;单独使用date命令,用于显示系统时钟中当前日期。

6.df
    df命令用于查看磁盘空间的使用情况。查看磁盘空间是用户应当经常做的事情,
        因为谁也不希望看到根或/var分区在不经意间填满,以便及时清理。df命令的一般格式为:
            df  [-a | -T | -h | -k ]  Filesystem
    其中,参数Filesystem表示物理文件系统。各选项的含义如表所示。
        选项          			含义
        -a           显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等
        -T	     显示物理文件系统的文件格式类型
        -h	     物理文件系统大小按兆字节为单位显示
        -k	     物理文件系统大小按千字节为单位显示

7.du
    列出目录和文件所使用的磁盘块数,每块占512个字节。
    常用参数:
        -a :仅列出空闲的文件数 
        -h :列出磁盘的使用情况(KB) 
        -s :列出总的空闲空间(KB) 
    例:
        #du –h /etc

1.7 Linux的进程管理命令

1.ps命令查看进程
    显示进程(process)的动态
    语法:
        ps [options]
    常见的参数:
        -A   列出所有的行程 
        -w   显示加宽可以显示较多的资讯 
        -au  显示较详细的资讯 
        -aux 显示所有包含其他使用者的行程 

2.top命令
    监视进程
    通常会全屏显示,而且会随着进程状态的变化不断更新
    整个系统的信息也会显示,为查找问题提供了便利
    可以显示系统总共有多少CPU和内存资源以及负载平衡等信息。

3.pstree命令
    1.将所有行程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本进程为根,
        如果有指定使用者id,则树状图会只显示该使用者所拥有的进程。 
    2.参数: 
        -a 显示该进程的完整指令及参数,如果是被记忆体置换出去的进程则会加上括号 
        -c 如果有重覆的进程名,则分开列出

4.使用kill命令终止进程
    使用kill命令终止进程
        kill  [-signal]  PID 
    signal是信号,PID是进程号
    kill 命令向指定的进程发出一个信号signal,在默认的情况下,kill 命令向指定进程发出信号15,
    正常情况下,将杀死那些不捕捉或不忽略这个信号的进程

1.8 文件系统相关命令

1.file
    命令功能用于判定一个文件的类型。file命令一般语法格式为:
        file  [ filename ]

2.mkdir
        1.mkdir命令用于创建一个目录。mkdir命令一般语法格式为:
        mkdir  [ -p ]   directory_name 
        2.其中,directory_name为要创建的目录名,并且不能是已有的目录,通常不允许嵌套创建子目录。
        3.使用选项“-p”表示可以嵌套创建子目录,即多层目录。

3.rmdir
    命令用于删除一个目录。rmdir命令一般语法格式为:
        rmdir  [ -p ]   directory_name

4.链接文件
    a.硬链接是利用Linux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gui林

你的热爱是我更新的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值