bash中调用python
1.正常情况下bash解释器只能执行.sh脚本,加入<<-EOF EOF之后,可以执行python脚本(EOF只是人为定义的开始结束标记,可以换为其他字符)
!/usr/bin/bash |
2.当前shell执行与子shell执行区别
以下两种都是在子shell中执行,不会改变当前目录路径 |
login与nologin shell
bash路径:
系统级 |
login shell
su - alice |
nologin shell
su alice |
常用操作
1.查看历史命令
# history |
2.使用 !number(行号) 执行该行命令
3.上一个命令的最后一个参数 !$
4.上一个命令 !!
5.搜索历史命令 ctrl+r
6.查看已经设置的别名 alias,删除别名unalias
7.快捷键ctrl+r 搜索历史命令
ctrl+d 退出命令行
ctrl+a 命令编辑,光标移动到命令最前
ctrl+e 命令编辑,光标移动到命令最后
ctrl+l 清除屏幕所有的内容,并开启一个新的一行
ctrl+k 剪切(删除)光标处到行尾的所有字符
ctrl+u 剪切(删除)光标处到行首的所有字符
ctrl+s 锁定终端,使之任何人无法输入
ctrl+q 解锁ctrl+s的锁定状态
8.后台执行命令 nohup
9.重定向:每一个进程打开一个文件都会有一个与之对应的文件描述符,只要该文件没有关闭,描述符就不会释放。三个通用的进程描述符0进程打开的输入的文件,1进程打开的输出的文件,2进程打开的输出错误的文件
#重定向符号 |
例子:
[test @test test]# ls -al > list.txt |
cat重定向用法
#将111 222 333输入到file2中 |
10.管道。
tee最基本的用法就是显示输出结果并且保存内容到文件中。 ip addr | grep 'inet' | grep eth0
inet 10.120.102.100/28 brd 10.199.102.111 scope global eth0
#保存到test中(覆盖)
ip addr | grep 'inet' |tee test | grep eth0
# 追加到test中
ip addr | grep 'inet' |tee -a test | grep eth0
df | grep '/$'
overlay 1874458716 742825040 1131633676 40% /
cd shell_fs/
df | tee df.txt | grep '/$'
overlay 1874458716 742825040 1131633676 40% /
ls
df.txt ping01.sh python01.py
cat df.txt
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 1874458716 742825040 1131633676 40% /
tmpfs 65536 0 65536 0% /dev
tmpfs 131616820 0 131616820 0% /sys/fs/cgroup
10.48.154.172:6789,10.48.155.148:6789,10.48.156.148:6789:/mmu_ssd/pub 579820584960 568357687296 11462897664 99% /share
/dev/sda2 97039692 13075992 78991260 15% /opt/data/kess
tmpfs 131616820 0 131616820 0% /dev/shm
/dev/sdb 1874458716 742825040 1131633676 40% /etc/hosts
10.116.34.12:6789,10.116.45.11:6789,10.116.140.186:6789:/search_ssd/renxingkai 164283838464 98382159872 65901678592 60% /home/renxingkai
tmpfs 131616820 548 131616272 1% /dev/shm/kess
tmpfs 131616820 12 131616808 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 131616820 12 131616808 1% /proc/driver/nvidia
devtmpfs 131606300 0 131606300 0% /dev/nvidia6
tmpfs 131616820 0 131616820 0% /proc/acpi
tmpfs 131616820 0 131616820 0% /proc/scsi
tmpfs 131616820 0 131616820 0% /sys/firmware
# tee管道不会截流
(rapids) root@kml-dtmachine-5430-prod:/home/renxingkai/shell_fs# date > date.txt
(rapids) root@kml-dtmachine-5430-prod:/home/renxingkai/shell_fs# date | tee date.txt
Sun Oct 10 18:23:13 CST 2021
11.命令排序
如果在一行写多个shell命令,可以使用;分割
cd;eject |
&& 前面命令执行成功后面才会执行
|| 前面命令失败后面也会执行
##ping成功执行is up,否则返回码非0,执行is down |
注意:
command & ##后台执行 |
12.shell 通配符
* 匹配任意多个字符 |