SHELL中的命令使用讲解

                            SHELL编程简介

主讲内容:

.shell执行选项

-

.shell中的vim编辑器

(A)vim XX,编辑之后,按ESC,用Shift:进行保存。返回命令。
(B) 文本文件编辑器,ls显示当前文件所在的所有文件,:wq退出保存,:q!强制性退出,三种模式:命令,编辑,(输入),末行模式。i,a,o::i可以在当枪光标位置插入,a在当前光标位置下一个位置插入,o|在当光前标位置插入另一行编辑模式。R,i::R随时进入替换模式,i是指替换一个字符,一个个替换。
(C)快捷键模式 ::
yy(),nyy,dd ndd,p,u,s,x,/,n,gg,G,0,$
yy:(复制当前光标所在行)
nyy:复制当前光标所在的N行
dd:(剪):删除当前行
ndd:剪切N|行
p:粘贴当前光标的下一行
u:撤销
x:删除键
/:查找的快捷键,()
n:下移行查找,N上移行查找
gg:瞬间移动(文件首第一行)
G:瞬间移动到(文件尾最后一行)
0: 移动到最前一行
$:移动到最后一行
w保存,q退出。。
set nu:设置行号,
 :+常数:调到指定行
syntax on/off:打开和关闭语法提示

命令的其它组成::
"#"root的提示符,"$"普通用户提示符.
ctrl+c::强制性无条件推出
!!上一次刚刚运行的命令,命令历史history,,!+命令动词。
命令+--help;;帮助文档
loc^c,updatedb,,数据库的文件查找.
文本文件查看:
cat,more,less,head,tail
cat wenjianming

> >> < >>..重定向符 。。输入   输出〉 〉〉。。没有文件时可以创建文件,,储存结果,>>可以追加文件,,不会覆盖,〉回覆盖以前的文件

sudo::
sudo 命令,只是一步操作
su -,输入密码,,进行用户环境切换 ,exit退出 。
fdisk -l,查看当前磁盘分区

 

rpm查询功能:
-i用来安装软件包,后来用来家软件包
-q是用来查询指定的软件包 是否在系统中安装过的信息
-ql
--nodeps是用来忽略依赖软件包之间的关系
--force不考虑依赖关系,强制安装
单杠选项
rm -rf +名称,,删除
rpm -qa 是用来查询Linux系统中的所有软件
rpm -q+包的名称,查询指定软件包是否安装
rpm -qi+包的名称,查询纸带那个软件包的详细信息
rpm -ivh +软件包的名子,安装软件包

rpm -ql+包的名称,查询指定名称软件中所包括的文件列表
rpm -qf+文件名称,查询指定文件所属的软件包
rpm -qpi+包文的名称,查询指定RPM包文件的详细信息
rpm -qpl+包文的名称,查询指定RPM包中包含的文件列表
打包::
tar
-c创建一个软件包,-x揭开一个软件包。
-v显示包里的信息(打开包),
-f一丁根的是包名,-z调用gzip
-j调用bzip2
-c解压到指定路径
-t再不揭开的情况下。了解包里的信息

 符号和echo:
echo:显示结果,命令。
$#代表的是数量,,
$*表示所有参数的位置
$?表示命令执行后返回的状态,用于检查上一个命令的执行是否正确;在linux中,命令退出状态为0表示命令正确,任何非0值表示命令执行错误
$$表示当前进程的进程号
$!表示后台运行的最后一个进程号
$0表示当前执行进程名
自定义变量的设置:$ DAY=sunday
自定义变量的查看与引用 :$ echo $DAY
自定义的变量的输出:$ export DAY
自定义变量的清除:$ unser DAY
Bash的命令历史与命令重复
历史命令的查看:$ history
用户命令历史保存文件:~/ .bash_history
命令历史的清除:$ history -c
"双引号":弱引用
'单引号':强引用
`白引号 `:
~:默认为家目录
#:
\;转移字符,将来有特殊意义的字符还原

echo ${变量名:-/+/=/?字符串}
-:变量存在,输出值,,不存在输出字符串
+:变量存在,输出字符串,不存在输出空白
=:存在值,,就负值给他,不存在输出字符串
?:文件名存在输出值,不存在提示
echo ${path#/*/}
#:从头开始匹配满足条件的字符,把第一个的字符删除掉,把剩下的的字符显示出来
##; 从头开始匹配满足条件的字符,把最长的字符删除掉把剩下的的字符显示出来
%:从后往前开始匹配满足条件的字符,把最短的字符删除掉,把剩下的的字符显示出来
%%:从后往前开始匹配满足条件的字符,把第一个的字符删除掉,把剩下的的字符显示出来
例题:path="hjf/hf/jfsdp/jfd.fk/"
   echo $path (回车)
  echo ${path#/*/}(回车)
 echo ${test/aa/bb}和${test//aa/bb}
/:将第一个满足条件的替换
//:将全部满足条件的替换

流的控制

1. #!/bin/bash(头文件)
if 判断表达式
   then
        语句块
 elif
      判断表达式
then
        语句块
else

fi
2.实例:
if test "$1>$2"
   then
          echo $1
     else
           echo $2
   fi
3.数字的判断:
gt大于
  lt小于
  eq等于
  le小于等于
    ge大于等于
字符的判断:
=表示等于。判断是否是为零
-n是否有长度
-z是否为空

文件的判断:
-b是否是块式文件
-d是否是一个目录
-f是否是普通文件
-c是否是字符式文件
-h是否是符号连接文件
-e文件是否存在
-r文件是否可读
-w文件是否可写
-x文件是否可以执行
-s判断文件是否是空文件
格式:-* 加文件名

-nt判断文件一是否比文件二新
-ot判断文件一是否比文件二旧
用于两个文件之间
case 变量 in
  值1)
  |语句1;;
值2
语句1;;
。。。。。。。
w)
语句w;;
esac

1。for语法:
for 变量名 in list
do 
  ....
done
for 变量名
do 
  ....
done
2。whlie语法:
while 变量名 (当满足条件才执行)
do 
  ....
done
3。until 变量名(当满足条件就不执行了)
do 
  ....
done

用户和管理组:

建立用户帐号:~#adduser 名字
查看:/home/文件下
7个字段 :用户名,密码标识类,uid号,组gid,用户信息,用户家目录,用户所使用的shall。
groups查询指定用户属于哪个组,id 指定的组中包含哪些用户,finger+用户名,显示用户信息。
—a,添加。。—d,删除。

  awk:流的编译器
awk '{print $0}’ 复制全部
awk '{print $1}’ 复制第一列
用-F 环境变量,默认是空格
FILENAME,当前输入文件的文件名
FNR 当前输入文件的记录数
FS  字段分隔符 (默认是空格,支持正则表达式来设定分隔符)
NF 当前记录的字段、
NR 在工作中的记录数
OFS  输出文件的分隔符
ORS  输出记录分隔字符(默认为换行 )
RS 输入记录分隔字符
BEGIN 用来执行初始化操作
END 结束代码快,用来输出
awk -F "[\t ]+" ‘{print $1  "\t"’$2}' /etc/fstab
支持特殊运算符
支持循环语句
函数:(自定义函数和系统自带函数)
%-d:左对齐修饰符

awk的操作符(按优先级升序排列) 

= 、+=、 -=、 *= 、/= 、 %= 
|| 
&& 
> >= < <= == != ~ !~ 
xy (字符串连结,'x''y'变成"xy") 
+ - 
* / % 
++ -- 

awk的函数 

int(x) 对x取整 
rand 取 0到1之间的随机数 
srand(x) 设置x为rand的新输入值 
cos(x) 给出x的余弦值 
sin(x) 给出x的正弦值 
atan2(x,y) 给出y/x的正切值 
exp(x) 给出e的x次幂 
log(x) 给出x的常用对数值(基为e) 
sqrt(x) 给出x的正平方根值 
exit(x) 结束awk程序,若有x值,则返回x,否则返回0. 
index(s,t) 返回t在s中的第一个开始位置,如t不是s的子串,则返回Tansley

awk内置变量 

变量名 含义 

ARGC 命令行参数个数 
ARGV 命令行参数数组 
FILENAME string=当前输入的文件名 
FNR 在当前文件中当前记录数(对输入文件起始为1) 
FS 输入字段分隔符 
NF 当前记录的字段数 
NR 当前记录数(为全部输入文件) 
OFMT 数值的输出格式(默认为%.6g) 
OFS 输出字段的分隔符(默认为空格) 
ORS 输出记录分隔符(默认为换行符) 
RS 输入记录分隔符(默认为换行符) 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux,有两种类型的命令shell命令和外部命令。 1. Shell命令Shell命令Linux命令行提示符(Shell)的内置命令,是通过Shell程序(比如Bash、Zsh等)执行的。Shell命令提供了用于操作文件、目录、进程等操作系统资源的功能。它们是操作系统的一部分,不需要额外安装。例如,cd命令用于改变当前工作目录,ls命令用于列出目录内容,mkdir命令用于创建目录等。 2. 外部命令:外部命令是不同于Shell的独立的可执行程序,这些程序通过Shell命令行调用来执行特定任务。外部命令通常是由第三方开发者编写的,并且可以通过软件包管理器或手动安装在系统。例如,grep命令用于在文件查找指定的文本,gcc命令用于编译C代码,ping命令用于测试网络连接等。 区别: - 执行速度:由于Shell命令Shell的一部分,它们可以直接调用操作系统资源,因此比外部命令执行速度更快。 - 功能扩展:外部命令通常由第三方开发者编写,可以提供更多功能和选项,而Shell命令的功能相对较少。 - 灵活性:外部命令的输入和输出可以通过Shell的重定向功能进行处理,可以与其他命令进行组合,灵活性更高。 总结:Shell命令Linux Shell的内置命令,提供基本的操作系统资源操作功能;外部命令是独立的可执行程序,通过Shell命令行调用,可以提供更多高级功能。在实际使用,我们可以根据需要选择使用Shell命令还是外部命令来完成任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值