当前位置: 首页 > news >正文

(10)shell 编程入门

1. 输入重定向

1.1 覆盖文件

[root@YL Desktop]# cat EOF_txt 
123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123
[root@YL Desktop]# cat <<EOF >EOF_txt 
> qwertyuiop
> asdfghjkl
> zxcvbnm
> EOF
[root@YL Desktop]# cat EOF_txt 
qwertyuiop
asdfghjkl
zxcvbnm

1.2 文件追加内容

[root@YL Desktop]# cat <<EOF >>EOF_txt > zhinehida
> eewrwe
> EOF
[root@YL Desktop]# cat EOF_txt 
qwertyuiop
asdfghjkl
zxcvbnmzhinehida
eewrwe

2.输出重定向

[root@YL Desktop]# cat EOF_txt 
qwertyuiop
asdfghjkl
zxcvbnmzhinehida
eewrwe
[root@YL Desktop]# echo 12345 > EOF_txt 
[root@YL Desktop]# cat EOF_txt 
12345

3. --stdin 获取输入

--stdin 获取键盘输入

[root@YL Desktop]# useradd stu00001
[root@YL Desktop]# echo 123456 | passwd --stdin stu00001
Changing password for user stu00001.
passwd: all authentication tokens updated successfully.

4. | 管道符

|  将前面那命令的执行结果  作为后边命令的输入

[root@YL Desktop]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.153.153  netmask 255.255.255.0  broadcast 192.168.153.255inet6 fe80::5cb5:4e44:d8ae:7fbb  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:d4:7e:24  txqueuelen 1000  (Ethernet)RX packets 19198  bytes 3536300 (3.3 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4469  bytes 554745 (541.7 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 126  bytes 10704 (10.4 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 126  bytes 10704 (10.4 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:e8:12:1e  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@YL Desktop]# ifconfig | grep ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500[root@YL tmp]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin[root@YL tmp]# cat /etc/passwd | grep -E "(root|stu00001)"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
stu00001:x:1001:1001::/home/stu00001:/bin/bash
[root@YL tmp]# [root@YL tmp]# cat /etc/rc.local |grep -v ^#touch /var/lock/subsys/local
[root@YL tmp]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.touch /var/lock/subsys/local

5. 逻辑与 &&   ,逻辑或 ||

[root@YL tmp]# abc &&ls
bash: abc: command not found...
[root@YL tmp]# abc || ls
bash: abc: command not found...
anaconda.log        ssh-FvBIowmB3IFG                                                              test02                      vmware-root_647-3988163046
hsperfdata_root     storage.log                                                                   tracker-extract-files.0     vmware-root_655-4021587944
ifcfg.log           systemd-private-054c5050cdde4cf3b69725c64edac914-bolt.service-4nmPWU          tracker-extract-files.1000  vmware-root_660-2697467306
ks-script-IsrDcS    systemd-private-054c5050cdde4cf3b69725c64edac914-colord.service-85kbmq        vmware-root_595-4013788883  vmware-root_671-3988556280
packaging.log       systemd-private-054c5050cdde4cf3b69725c64edac914-cups.service-AiBNw0          vmware-root_604-2731152132  vmware-root_677-3980363868
program.log         systemd-private-054c5050cdde4cf3b69725c64edac914-fwupd.service-lkywXZ         vmware-root_606-2722828934  yum.log
sensitive-info.log  systemd-private-054c5050cdde4cf3b69725c64edac914-rtkit-daemon.service-4EU0M0  vmware-root_620-2697598252

6. []条件判断

判断目录或者文件是否存在

[root@YL tmp]# # 0 代表最后一条命令执行正确,反之
[root@YL tmp]# [ -d /hahaha ]
[root@YL tmp]# echo $?
1
[root@YL tmp]# # 判断根下有没有/hahaha目录
[root@YL tmp]# [ -d /mnt ]
[root@YL tmp]# echo $?
0

7. find查找

查找文件或目录

[root@YL tmp]# find / -name my.cnf
/etc/my.cnf
[root@YL tmp]# find / -name mysql.cnf
[root@YL tmp]# [root@YL tmp]# find / -name hosts
/etc/hosts
/etc/avahi/hosts

8. 自定义指令环境变量

[root@YL tmp]# #自定义$PATH
[root@YL tmp]# cd /tmp
[root@YL tmp]# ls
anaconda.log        ssh-FvBIowmB3IFG                                                              test02                      vmware-root_647-3988163046
hsperfdata_root     storage.log                                                                   tracker-extract-files.0     vmware-root_655-4021587944
ifcfg.log           systemd-private-054c5050cdde4cf3b69725c64edac914-bolt.service-4nmPWU          tracker-extract-files.1000  vmware-root_660-2697467306
ks-script-IsrDcS    systemd-private-054c5050cdde4cf3b69725c64edac914-colord.service-85kbmq        vmware-root_595-4013788883  vmware-root_671-3988556280
packaging.log       systemd-private-054c5050cdde4cf3b69725c64edac914-cups.service-AiBNw0          vmware-root_604-2731152132  vmware-root_677-3980363868
program.log         systemd-private-054c5050cdde4cf3b69725c64edac914-fwupd.service-lkywXZ         vmware-root_606-2722828934  yum.log
sensitive-info.log  systemd-private-054c5050cdde4cf3b69725c64edac914-rtkit-daemon.service-4EU0M0  vmware-root_620-2697598252
[root@YL tmp]# vim abc.sh
[root@YL tmp]# vim abc.sh
[root@YL tmp]# cat abc.sh 
#!/bin/bash
echo 123
[root@YL tmp]# #所有人均可执行该文件
[root@YL tmp]# chmod +x abc.sh
[root@YL tmp]# ll
total 28
-rwxr-xr-x. 1 root root   21 Oct 26 17:34 abc.sh
-rw-r--r--. 1 root root 2341 Oct 14 23:52 anaconda.log
drwxr-xr-x. 2 root root   18 Oct 14 22:55 hsperfdata_root
-rw-r--r--. 1 root root  415 Oct 14 23:40 ifcfg.log
-rwx------. 1 root root  836 Oct 14 23:04 ks-script-IsrDcS
-rw-r--r--. 1 root root    0 Oct 14 23:40 packaging.log
-rw-r--r--. 1 root root   44 Oct 14 23:52 program.log
-rw-r--r--. 1 root root    0 Oct 14 23:40 sensitive-info.log
drwx------. 2 root root   25 Oct 26 14:04 ssh-FvBIowmB3IFG
-rw-r--r--. 1 root root    0 Oct 14 23:40 storage.log
drwx------. 3 root root   17 Oct 24 16:22 systemd-private-054c5050cdde4cf3b69725c64edac914-bolt.service-4nmPWU
drwx------. 3 root root   17 Oct 24 16:22 systemd-private-054c5050cdde4cf3b69725c64edac914-colord.service-85kbmq
drwx------. 3 root root   17 Oct 24 16:22 systemd-private-054c5050cdde4cf3b69725c64edac914-cups.service-AiBNw0
drwx------. 3 root root   17 Oct 26 14:04 systemd-private-054c5050cdde4cf3b69725c64edac914-fwupd.service-lkywXZ
drwx------. 3 root root   17 Oct 24 16:22 systemd-private-054c5050cdde4cf3b69725c64edac914-rtkit-daemon.service-4EU0M0
-rw-r--r--. 1 root root 4937 Oct 26 16:31 test02
drwx------. 2 root root    6 Oct 26 15:49 tracker-extract-files.0
drwx------. 2 yl   yl      6 Oct 15 00:08 tracker-extract-files.1000
drwx------. 2 root root    6 Oct 20 22:18 vmware-root_595-4013788883
drwx------. 2 root root    6 Oct 17 18:03 vmware-root_604-2731152132
drwx------. 2 root root    6 Oct 20 22:41 vmware-root_606-2722828934
drwx------. 2 root root    6 Oct 24 15:07 vmware-root_620-2697598252
drwx------. 2 root root    6 Oct 14 23:59 vmware-root_647-3988163046
drwx------. 2 root root    6 Oct 24 16:22 vmware-root_655-4021587944
drwx------. 2 root root    6 Oct 24 13:34 vmware-root_660-2697467306
drwx------. 2 root root    6 Oct 24 16:05 vmware-root_671-3988556280
drwx------. 2 root root    6 Oct 14 23:40 vmware-root_677-3980363868
-rw-------. 1 root root    0 Oct 14 22:50 yum.log
[root@YL tmp]# abc.sh
bash: abc.sh: command not found...
[root@YL tmp]# sh abc.sh
123
[root@YL tmp]# #将指令文件定义到环境变量中
[root@YL tmp]# PATH=$PATH:/tmp
[root@YL tmp]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@YL tmp]# abc.sh
123
[root@YL tmp]# cd ..
[root@YL /]# abc.sh
123

9. if 条件语句

[root@YL tmp]# vim a1.sh 
[root@YL tmp]# cat a1.sh 
#!/bin/bash
NAME=abc
if [ $NAME == 'abc' ]thenecho $NAME
fi
[root@YL tmp]# sh a1.sh 
abc
[root@YL tmp]# vim a1.sh 
[root@YL tmp]# cat a1.sh 
#!/bin/bash
NAME=abc
if [ $NAME == 'abcd' ]thenecho $NAME
fi
[root@YL tmp]# sh a1.sh 
[root@YL tmp]# 

[root@YL tmp]# vim a2.sh
[root@YL tmp]# cat a2.sh
#!/bin/bash
NAME=abc
if [ $NAME == 'abcd' ];thenecho $NAMEelif [ $NAME == 'ab' ];then echo "my name is $NAME"elif [ $NAME == 'abcd' ];thenecho "my name is $NAME"elseecho "error"
fi
[root@YL tmp]# sh a2.sh 
error

http://www.dtcms.com/a/532841.html

相关文章:

  • 深入剖析C++文件操作的底层机制
  • 高端网站价格网架球加工厂家
  • 响应式网站文章网站建设字体变色代码
  • python+vue图书在线阅读推荐平台设计(源码+文档+调试+基础修改+答疑)
  • git仓库基本使用
  • 网站维护需要多久时间上海做网站建设公司排名
  • 在婚恋网站上做红娘怎么样什么都可以看的浏览器
  • 做平台网站要什么条件重庆网站建设重庆网站设计
  • 江苏系统建站怎么用咖啡网页设计素材
  • 网站建设软件免费使用密码访问wordpress文章
  • 物联网设备通信协议参数的能耗自适应调整机制
  • PySide6 win10 记事本从零到一——前言
  • win7 iis网站无法显示石家庄尚武科技
  • 建设网站哪家公司好网站建设公司招聘
  • UFS Reset 介绍
  • ESP8266无线开关
  • 生鲜电商网站建设一共有多少网站
  • 泰州网站建设案例海淘网站主要关键词
  • 网站 第三方登录做公众号用什么网站吗
  • 【FPGA】三八译码器——板级验证
  • Bugku-Web题目-charlottesweb- WolvCTF 2023
  • TCMalloc原理解析(下)
  • 短波红外相机入门核心场景和选型要求
  • centos做网站服务器吗南京品牌网站设计
  • 【Qt】启动新窗口--C/S传输信息
  • vf建设银行网站wordpress根据点击量最高查询文章
  • 统一日志管理架构设计
  • 綦江网站网站seo找准隐迅推
  • 建设网站前准备资料微信如何注册小程序
  • 解释无损极化,有损极化;纯电容电流-无损极化,吸收电流-有损极化