shell 命令笔记

本文详细介绍了Shell的基本语法,包括系统变量、特殊字符的功能及其用途,并解释了如何使用groupadd、groupdel等命令进行用户组管理,同时还涵盖了tar命令的使用方法以及Locate命令的快速文件搜索技巧。

Shell语法:

系统变量

$0这个程序的执行名字
$n
这个程序的第n个参数值,n=1...9
$*
这个程序的所有参数
$#
这个程序的参数个数
$$
这个程序的PID
$!
执行上一个背景指令的PID
$?
上一个指令的返回值

数据或程序控制使用的特殊字符

>(file)          输出重定向到文件
>>(file)        
输出重定向到文件,内容加到已存在的文件尾部
<(file)         
输入重定向到文件
;               
命令分隔符
|                
管道符,把一条命令的输出重定向为另一命令的输入
&               
放在命令之后强迫命令在后台执行
``              
命令替换,重定向一条命令的输出为另一命令的参数

1.6. 特殊字符

字符

含意

~

home目录

`

命令替代符(archaic)

#

注释

$

变量表达式

&

后台任务

*

字串通配符

(

shell的开始

)

shell的结束

\

引用下一字符

|

管道符

[

字符集通配符的开始

]

字符集通配符的开始

{

命令的开始括号

}

命令的结束括号

;

Shell 命令分隔符

'

Strong quote强引用

<">

Weak quote弱引用

输入重定向

输出重定向

/

路径目录分隔符

?

单个字符的通配符

!

逻辑管道符“非”

 

文件比较运算符

运算符                     描述                                示例

-e  filename                如果filename存在,则为真           [-e /var/log/syslog]
-d  filename               
如果filename为目录,则为真
        [-d /tmp/mydir]
-f  filename               
如果filename为常规文件,则为真
     [-f /usr/bin/grep ]
-L  filename               
如果filename为符号链接,则为真
      [-L /usr/bin/grep ]
-r  filename               
如果filename可读,则为真
             [ -r  /var/log/syslog ]
-w  ilename                
如果filename 可写,则为真
          [ -w /var/mytmp.txt ]
-x   filename              
如果filename可执行,则为真          [-L  /usr/bin/grep ]

group用户组的管理

groupadd 选项 用户组

可以使用的选项有:
-g GID
指定新用户组的组标识号(GID)。
-o
一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1
2
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101

groupdel 用户组

删除用户组

groupmod 选项 用户组

常用的选项有:
-g GID
为用户组指定新的组标识号。
-o
-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n
新用户组 将用户组的名字改为新名字
1
# groupmod -g 102 group2
此命令将组group2的组标识号修改为102
2
# groupmod -g 10000 -n group3 group2
此命令将组group2的标识号改为10000,组名修改为group3

newgrp用户组间切换

tar命令

格式: tar 选项 文件目录列表
功能
对文件目录进行打包备份

选项:

-c
建立新的归档文件
-r
向归档文件末尾追加文件
-x
从归档文件中解出文件
-O
将文件解开到标准输出
-v
处理过程中输出相关信息
-f
对普通文件操作
-z
调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z
调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

实例: tar -zvxf  *.taz
实例1 目的:用tar打包一个目录下的文件

命令:#tar -cvf /mnt/lgx/a1.doc
结果:产生一个以.tar为扩展名的打包文件

实例2 目的:用tar解开打包文件
命令:#tar -xvf /mnt/lgx/a1.doc.tar
附加说明:在通常情况下,tar打包与gzip(压缩)经常联合使用,效果更好。方法是:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (产生a1.doc.tar文件)
然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)

实例3 目的:解压a1.doc.tar.gz文件
方法1
#gzip -dc /mnt/lgx/a1.doc.tar.gz
(产生a1.doc.tar文件)
#tar -xvf /mnt/lgx/a1.doc.tar
(产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
#gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自动调用gzip解压缩功能
#tar -xzvf /mnt/lgx/a1.doc.tar.gz

经过tar打包后,也可用compress命令压缩(注:gzipcompress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用uncompress 文件名格式解压,然后用tar -xvf 文件名解包。也可直接调用tar -Zxvf 文件名解包。

Locate命令

使用权限:所有使用者  
使用方式: locate
[-q] [-d ] [--database=]  
locate [-r ] [--regexp=]  
locate [-qv] [-o ] [--output=]  
locate [-e ] [-f ] <[-l ] [-c]  
<[-U ] [-u]>  
locate [-Vh] [--version] [--help]  
说明:
 
locate
让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。
 
在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用
 
# locate your_file_name  
的型式就可以了。 参数:
 
-u
-U
建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。
 
-e  
 
排除在寻找的范围之外。
 
-l  
如果 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
 
-f  
将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。

基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
当学习Shell命令时,以下是一些重要的注意事项和学习建议: 1. 基本语法:Shell命令通常由命令名称和参数组成。命令名称是要执行的操作,而参数则提供了命令所需的信息。了解Shell命令的基本语法是学习的第一步。 2. 命令帮助:大多数Shell都提供了内置的命令帮助功能。通过使用命令后跟`--help`或`-h`选项,或者使用`man`命令(例如`man ls`)来获取有关特定命令的详细信息。 3. 常用命令:有一些常见的Shell命令对于日常使用非常有用。这些包括`cd`(更改目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`rm`(删除文件或目录)等。逐步学习和掌握这些命令是很重要的。 4. 管道和重定向:Shell命令非常强大,可以通过管道和重定向符号将多个命令组合在一起。了解如何使用管道(`|`)将一个命令的输出作为另一个命令的输入,并使用重定向符号(`>`、`>>`、`<`)来控制输入和输出。 5. 脚本编写:Shell脚本是一种将多个命令组合在一起以自动化任务的方法。学习如何编写简单的Shell脚本可以提高工作效率。 6. 实践和练习:最重要的是进行实践和练习。尝试使用不同的Shell命令来完成各种任务,并在实际场景中应用所学知识。 记住,Shell命令的学习是一个逐步的过程。开始时可能会有些困惑,但随着实践和经验的积累,你会变得越来越熟练。希望这些提示对你有帮助!如有任何具体问题,随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值