linux基础 - SHELL1(下)

简介: linux基础 - SHELL1(上)

三、shell高级

1.重定向

>覆盖

>>追加

管道符

netstat -ano | grep 22

2.其他符号

&就是将一个命令从前台转到后台执行

3.信息符号

1 表示正确输出的信息

2 表示错误输出的信息

2>&1表示所有输出的信息

root@ou-virtual-machine:~# cat a.txt 1>> zhengque.txt
root@ou-virtual-machine:~# cat zhengque.txt

root@ou-virtual-machine:~# asdasfad 2>> errfile.txt
root@ou-virtual-machine:~# cat errfile.txt

写一个shell文件里面有正确的shell语句和错误的

root@ou-virtual-machine:~# bash shell.exe 1>zhengque.txt 2>cuowu.txt
root@ou-virtual-machine:~# cat zhengque.txt 
asdsad
root@ou-virtual-machine:~# cat cuowu.txt 
shell.exe: line 3: asdlkalsf: command not found

/dev/zero #输出无数个0

/dev/null #垃圾桶文件

所有信息进入垃圾桶文件,所有进程后台运行

cat cuowu.txt >> /dev/null 2>&1 &

4.if语句

#!/bin/bash
if [ $1 == 'nan' ]
then
    echo "your sex is man"
fi

5.else

#!/bin/bash
if [ $1 == 'nan' ]
then
    echo "your sex is man"
else
    echo "error!"
fi
~

6.case语句

#!/bin/bash
case "$1" in
        "start")
                echo "server running start..."
                ;;
        "stop") 
                echo "server stop..."
                ;;
        "restart")
                echo "server restarting..."
                ;;
        *)      
                echo "*******************"
                ;;
esac

7.for语句

遍历文件

#!/bin/bash
for i in $(ls /root)
do
        echo "${i}"
done

遍历数组

#!/bin/bash
arr=(1 2 3 11 421 1424124123 13213 1231 2312 412 11111)
for i in ${arr[*]}
do
        echo "${i}"
done

8.while语句

#!/bin/bash
arr=(1 2 3 11 421 1424124123 13213 1231 2312 412 11111)
a=0
while [ ${a} -lt 11 ]
do
        echo "${arr[${a}]}"
        a=$((${a} + 1))
done

9.break语句

#!/bin/bash
arr=(1 2 3 11 421 1424124123 13213 1231 2312 412 11111)
a=0
while [ ${a} -lt 11 ]
do
        echo "${arr[${a}]}"
        read num
        if [ $num == 'a' ]
        then
                break
        fi
        a=$((${a} + 1))
done

break n 跳出第n个循环(由内向外)

#!/bin/bash
for var1 in {1..5}
do
        for var2 in {10..14}
        do
                if [ $var1 -eq 2 ] && [ $var2 -eq 10 ]
                then
                        break 2
                else
                        echo "$var1 $var2"
                fi
        done
done

还有两个简单的我就不演示了

10.函数

#!/bin/bash
#define a function
hanshu(){
        echo "hello i am a func!"
}
#use function
hanshu

简单传参

#!/bin/bash
#define a function
hanshu(){
        n=$1
        echo "hello i am a func! ${n}"
}
#use function
hanshu aaa
hanshu bbb
hanshu ou


三、核心命令

1.grep命令

-c 匹配内容 文件名 #计算匹配内容在文件里面有多少次出现

root@ou-virtual-machine:~# grep -c aaaa a.txt 
root@ou-virtual-machine:~# cat a.txt

2.正则数组

{数组开头..数组结尾..步长}

echo {1..10..2}
echo {001..100..2}
echo {01..100..2}

3.一些常用的命令

alias

unalias

history查看命令输入记录

!行号

使用history里面对应的命令

!!上一次输入的命令

快捷键


结语

最近可能比较多的会更新linux和网络相关的博客,希望大家多支持我,多多关注、点赞。

相关文章
|
29天前
|
Linux Shell 开发工具
Shell的运行原理以及Linux当中的权限问题
Shell的运行原理以及Linux当中的权限问题
35 0
|
1月前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
1月前
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
26 1
|
1月前
|
Shell Linux
|
1月前
|
Shell Linux UED
|
1月前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
32 0
|
21小时前
|
网络协议 Shell Linux
LabVIEW 在NI Linux实时设备上访问Shell
LabVIEW 在NI Linux实时设备上访问Shell
|
2天前
|
Shell Linux
【Linux】进程实践项目(更新中) — 自主shell编写
前几篇文章,我们学习进程的相关知识:进程概念,进程替换,进程控制。熟悉了进程到底是个什么事情,接下来我们来做一个实践,来运用我们所学的相关知识。这个项目就是手搓一个shell模块,模拟实现Xshell中的命令行输入。
7 1
|
2天前
|
Shell Linux 信息无障碍
5 个有用的 Linux Shell 转义序列
5 个有用的 Linux Shell 转义序列
|
4天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
21 5