shell 编程基础

it2023-11-22  67

#!/bin/bash export PATH=~/bin:"$PATH" . .bashrc 等效 source .bashrc

1、关于脚本位置

~/bin 存放个人使用的脚本 /usr/local/bin 所有用户都可以使用 usr(unix software resource)

usr/local/sbin 系统管理员 /bin /usr/bin linux发行商提供的程序,文件 .vimrc vim 配置文件

2、FTP,here文档

ftp -n <<_ EOF open 172.16.42.75 user yuzt x86x86 cd /a/b get 123.txt bye EOF lftp 可上传下载文件和目录 mirror 下载整个目录及其子目录 nfs

3、命令退出状态,0表示执行成功

4、字符串判断

if [ $a = “abc” ]

5、调用shell函数

函数定义必须在被调用的前面 shell函数格式 function name{ commands return }

6、文件压缩

JPEG,MP3 有损压缩实例 gzip foo.txt gunzip foo.txt bzip2 foo.txt bunzip2 foo.txt.bz2

linux/windows 通用 zip -r xxx.zip dirname1 dirname2

tar cf play.tar play tar -czf xxx.tar.gz xxx tar czvf xxx. tar. gz dir1 dir2 解压 tar -xf xxx.tar mkdir newdir tar -zxvf xxx. tar. gz -C newdir unzip build agent. zip -d buildagent

7、read 从标准输入读取输入值

read -n “enter an integer ->”

8、标准输入,标准输出,标准错误

文件描述符 0,1,2 linux一切皆文件 > 标准输出重定向 /dev/null 2> 标准错误重定向 < 标准输入重定向

将标准输出和标准错误重定向到同一个文件 1、ls -l /bin/usr > aaa.txt 2>&1 2、ls -l /bin/usr &> aaa.txt

9、位置参数

./a.sh b c d $0=/home/build/a.sh $1=b $2=c $3=d ${12} $#=3

10 数组

赋值 day=(sun mon tue wed thu fri sat) 访问

11、cd,ls,cp,rm,which,alias,cat,sort,uniq,diff

diff -c file1.txt,file2.txt,上下文格式 diff -u 统一格式 tail -f,tailf,multitail,lnav,less patch 更新文本文件 diff -Naur file1.txt file2.txt > patchfile.txt diff -Naur oldfile newfile > difffile patch < patchfile.txt uniq 只有对已经排序好文本才有作用 因为uniq只能移除相邻的重复行

cd 到主目录 cd - 到先前的工作目录 cd~username 到username的主目录

ls -l 第二个字段显示硬链接的数目,由于文件名是有链接创建的,所以一个文件至少有一个链接。 cp -v /aaa/bbb . #显示操作的信息 cp file1 file2 file2存在,会覆盖,不存在,创建file2 cp -r dir1 dir2 dir2不存在,会创建 rm -r file1 file1必须存在,否则报错 rm -rf file1 file1不存在,仍会执行 which ls 只适用于可执行程序,显示位置 help cd mkdir --help man ls whatis ls 显示命令的简要描述 zless 显示gzip压缩的文本文件的内容

alias 别名 alias foo=‘cd /usr;ls; cd -’ unalias foo

隐藏输出信息 /dev/null ls -l /bin/usr/ 2> /dev/null uniq 显示不重复的行 uniq -d 显示重复的行 wc 打印行数,字数,字节数 wc -l 只显示行数 grep 打印匹配行 -v 输出不匹配的行,-i 忽略大小写 搜索历史命令 history | less head/tail -n tail -f aaa.txt 监控这个文件,一旦有新行,显示在屏幕 tee 从stdin读取数据,并同时输出到stdout和文件 su 以另一个用户的身份运行shell sudo 以另一个用户的身份执行命令 cat -n 多行编号,-s 多个空白行合并,-b 空白行不编号

12、软硬链接

ln file link 创建硬连接 ln -s item link 创建符号链接 item 可以是文件或目录

13 环境变量

linux export PATH=/usr/local/bin:$PATH windows set PATH=C:Windows/system32;C:Windows;

14字符串截取

15 进程

TTY teletype 电传打字机 cmd & 后台运行 出现 [1] 28236 作业编号 pid jobs 显示左右 fg %1 回到前台运行 Ctrl-z 暂停进程 ctrl-c 结束进程 fg/bg %1 kill [-signal]pld 给进程发送信号,默认发送TERM tail -f /var/log/messages

16环境

环境变量,shell变量 source .bashrc 使bash 重新读取.bashrc 文件

17 修改用户权限

最新回复(0)