系统相关
首页 > 系统相关> > Linux shell编程

Linux shell编程

作者:互联网

Shell 简介

Linux shell是一种特殊的交互式工具,核心是命令行提示符,命令行提示符是shell负责交互的部分,它允许用户输入文本命令,然后解释命令,并且在内核中执行。

shell包含了一组内部命令,用这些命令可以完成诸如文件操作、进程操作、用户管理等操作。

 

将多条shell命令写入一个.sh文件中---Shell脚本。文件后缀.sh。

 

默认使用的shell是bash,shell是解释型语言,内部命令==shell自带的命令。

 

#!/bin/bash                 ## 脚本的声明:要使用哪个shell解释器

#my frist script!           ## 在shell中##代表注释
echo "Hello World!"
~                                                                               
~                

 

脚本的执行

[root@myserver myshellscripts]# sh hello.sh 
Hello World!
[root@myserver myshellscripts]# sh -x hello.sh           ## 便于排查错误
+ echo 'Hello World!'
Hello Whorld!
[root@myserver myshellscripts]# chmod +x hello.sh 
[root@myserver myshellscripts]# ls
hello.sh
[root@myserver myshellscripts]# ./hello.sh 
Hello Whorld!
[root@myserver myshellscripts]# 

 

shell常用的指令

 

重定向输入输出:> < --stdin

  输入: >

>>:表示追加, >表示覆盖

[root@myserver test]# vim a.txt
[root@myserver test]# ls
a.txt
[root@myserver test]# cat a.txt
[root@myserver test]# echo "123456"
123456
[root@myserver test]# echo "123456" >a.txt 
[root@myserver test]# cat a.txt 
123456

 

 

输出: <

[root@myserver test]# vim b.txt
[root@myserver test]# cat < a.txt > b.txt
[root@myserver test]# cat b.txt 
123456
[root@myserver test]# 

 

相当于键盘键入:--stdin

echo “新密码”|passwd --stdin 用户名

 

 

管道: |

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

[root@myserver test]# cat a.txt 
123123
[root@myserver test]# echo "123456" >> a.txt 
[root@myserver test]# cat a.txt 
123123
123456
[root@myserver test]# cat a.txt |grep 123
123123
123456
[root@myserver test]# ifconfig | grep "ens33"
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
[root@myserver test]# 

 

逻辑与: &&

  连接命令,当前面命令执行完城后继续执行后面的命令,如果前面命令执行失败,则后面命令不执行。

[root@myserver test]# ls && ls -l
a.txt  b.txt
total 8
-rw-r--r--. 1 root root 14 Nov 21 17:31 a.txt
-rw-r--r--. 1 root root  7 Nov 21 13:15 b.txt
[root@myserver test]# aa && ls
bash: aa: command not found...

 

逻辑或: ||

  连接命令,当前面命令执行完城后不执行后面的命令,如果前面命令执行失败,则后面命令执行。

[root@myserver test]# aa && ls
bash: aa: command not found...
[root@myserver test]# aa || ls
bash: aa: command not found...
a.txt  b.txt
[root@myserver test]# ls || ls -l
a.txt  b.txt
[root@myserver test]# 

 

条件判断:  []

     -d :检测目录

     -f  :检测文件

[root@myserver test]# ls
a.txt  b.txt
[root@myserver test]# [ -d /test/as ] || mkdir as
[root@myserver test]# ls
as  a.txt  b.txt
[root@myserver test]# 

 

标签:shell,Linux,编程,ls,myserver,test,txt,root
来源: https://blog.csdn.net/qq_27760077/article/details/109853373