Linux

本文介绍了Shell编程中的关键元素,如文件描述符、输出重定向、历史记录、命令执行控制、变量类型、脚本执行、环境变量设置以及后台任务管理。此外,还涉及了awk的基本用法和不同类型的配置文件.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell

常见的shell元素

文件描述与输出重定向:ls
在shell程式中,最常使用的FD大概有三个:
0:标准正确输入
1:标准正确输出
2:标准错误输出
混合输出:
&>b.txt
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道. nginx -V
例子. 当前目录下只有a.txt,没有b.txt
[root@localhost ~]# ls a.txt b.txt 1>file.out 2>&1
[root@localhost ~]# cat file.out
ls: b.txt: No such file or directory 
a.txt
#历史   history
#别名   alias
#命令排队执行
;   命令分割,在一行中执行多条语句
&&   一行中执行多条语句,前面成功后后面再执行
||   一行中执行多条语句,前面不成功后面再执行
通配符
{} ? *

调用历史命令

[root@localhost ~]#vim /root/.bashrc
设置便量:
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"

Shell脚本规范

[root@localhost ~]#vim helloworld.sh
#!/usr/bin/bash
printf "helloworld\n"
~                                                                                                                            
~                                                                                                                            
~                                                                                                                            
[root@localhost ~]# sh helloworld.sh 
helloworld
#执行脚本的方式
1.sh 脚本.sh
2.bash 脚本.sh
3../脚本.sh #须要执行权限
4.source 脚本.sh
#语法
第一行:#!/usr/bin/bash

变量的类型

#预定义、环境、自定义、位置变量

#预定义变量
$?   最后一次执行的命令的返回状态。如果这个变量的值为 0,则证明上一条命令正确执行;如果这个变量的值为非 0 ,则 证明上一条命令执行错误。
$$   当前进程的进程号(PID)
$!   后台运行的最后一个进程的进程号(PID)
[root@localhost ~]# ls
{1...20}  anaconda-ks.cfg  file.txt  helloworld.sh
[root@localhost ~]# echo $?
0

#输出当前进程的PID
[root@localhost ~]#vim variable.sh 
#!/bin/bash
echo "The current process is $$" 

[root@localhost ~]# sleep 30000 &
[1] 12165
[root@localhost ~]#echo $!
[1] 12165
#自定义变量
定义:变量名称=值
[root@localhost ~]#a=100
[root@localhost ~]#echo $a
100
#环境变量
shell   在开始执行是已经定义好的
env   查看所有环境变量
set   查看所有变量
[root@localhost ~]#IPADDR=10.36.177.178
[root@localhost ~]#echo $IPADDR
10.36.177.178
补充
系统级别的文件,配置之后所有用户都会生效
/etc/profile # 配置环境变量的文件
/etc/bashrc
用户级别的文件,配置完成之后只针对当前用户生效
$HOME_DIR
.profile
.bashrc
##将前台进程放到后台执行
bg %num
##查看任务
jobs
##将后台进程放到前台执行
fg %num
##awk的一些简单用法
#默认以空格为分隔符,打印第一列
awk -F':' '{print $1}'
#以空格为分隔符,打印第二行(NR==2)的第二列
awk 'NR==2{print $2}'
#以:为分割符,打印第一列
awk -F':' '{print $1}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值