1,I/O重定向
> 输出到文件,如果不存在该文件会新建。如果存在,则覆盖内容。
>> 输出到文件,添加到文件的结尾。不会导致已存在文件内容被覆盖。
< 输入重定向,来源于文件
sort 命令
sort source_file sorted_file 等同于如下写法:sort>sorted_file<source_file
该命令的效果是,将source_file的内容排完序后,输出到sorted_file
要使用排序的文本替换原始文件,请输入:
sort -o vegetables vegetables此命令序列将排序输出存入 vegetables 文件( -o vegetables)。
转换文件的内容大小写
tr "[a-z]" "[A-Z]" source_file dest_file
对管道的理解:
管道是不利用临时文件,将一个程序的输出与另一个程序的输入连接起来的方法。
管道的定义:
"A pipe is nothing but a temporary storage place where the output of one command is stored and then
passed as the input for second command. Pipes are used to run more than two commands ( Multiple
commands) from same command line."
more 输出一屏的内容
查看一个文件的第20行-30行的内容输出到目标文件
$ tail +20 < hotel.txt | head -n30 >hlist
以上的代码有点不理解?
"A process is program (command given by user) to perform specific Job. In Linux when you star
process, it gives a number to process (called PID or process-id), PID starts from 0 to 65535."
bc 和 Linux shell 对于true/false 使用不同的值:
bc: true/false : 1/0
linux shell:true/false : 0/Non zero value
使用操作符时,两边的操作数需要与操作符有空格间隔。
例如:test 1 = 1
逻辑操作符:
!expression 逻辑非
expression1 -a expression2 与操作
expression2 -o expression2 或操作
for in
do
done
while []
do
done
case in
xxx) command;;
xxx) command;;
esac
shell 脚本的调试
sh -v shell_script
sh -x shell_script
ls > /dev/null
/dev/null 是特殊的linux文件,程序可以将任何不想要的输出,发送到该文件
局部和全局shell变量
一般的变量仅对当前shell可见,如果切换新的shell,则无法访问老的shell变量。
如果希望该变量全局可见,可以用export命令导出该变量。
shell里&&以及||---短路运算符
示例:$ rm myf && echo "File is removed successfully" || echo "File is not removed"
I/O重定向
cat>dest.txt
10
-20
11
2
^D
将这四个数字输入到dest.txt中,按ctrl+D保存输入。
sort<dest.txt
-20
2
10
11
linux的标准输入输入:stdin,stdout,stderr
对应的文件描述符分别为:0,1,2
rm unkown.txt 2>output.txt
该重定向,会将stderr重定向输出到output.txt
Function(函数)
Function is series of instruction/commands.
trap 命令用于在收到某种信号(中断,kill,quit等)时,采取相应的操作。
比如,人为中断程序时,shell 脚本可以利用trap命令,在完全退出时,做一些清理临时文件的操作。
shift命令
将位置参数左移。可以在后面制定左移的数量
$1 = -f $2 = foo $3 = bar
执行shift命令后:
$1=foo, $2=bar, $3=
该命令在解析命令行参数时有用,不过一般针对是比较简单的命令行参数场景。
awk
awk '{print $0}' source_file
$0是特殊的wak变量,打印source_file的一整行记录。
awk -f source_shell -f选项是让awk,从给定的文件中读取命令。
awk中的预定义的变量
NR --number of input record
NF --number of fields in input record
printf "%s is my sweet home",ENVIRON["HOME"]
awk脚本文件中,支持用{}将代码块包含起来。
在awk中,system()函数用来执行给定的系统命令,比如cp,rm等
示例:system("rm foo")
命令的输出对于程序而言是无法获取的,不过system()函数会返回exit code,从而可以判断命令是否执行OK。
if(system(cmd) != 0)
printf "not ok\n"
else
printf "ok\n"
分享到:
相关推荐
本文档《Shell学习笔记》详细介绍了Shell脚本编写的基础知识和一些高级技巧,包含了多个主题,例如终端操作、环境变量使用、数学运算、文件描述符、数组和关联数组、别名使用、终端信息获取、日期和时间处理、脚本...
Shell 学习笔记总结 本资源是 Shell 学习笔记的总结,涵盖了 Shell 的基本概念、类型、变量、进程、权限、管道、POSIX、grep、sed、awk 等命令和编程语言。 一、 Shell 的类型和特点 Shell 是一种命令行界面,...
本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...
### Shell学习笔记(常用Shell命令介绍与用例) #### 一、引言 Shell作为Linux和Unix操作系统的重要组成部分,提供了一种与系统交互的方式。本文档旨在为初学者和有一定经验的用户提供一份全面的Shell命令学习笔记...
Shell学习笔记(自理版) shell学习笔记的主要内容是 shell 变量、环境变量、条件判断语句、循环语句等。下面对这些知识点进行详细的解释。 一、shell 变量 shell 变量可以分为系统变量和环境变量。系统变量...
### Shell学习笔记 #### Shell的发展与分类 Shell作为Unix及类Unix系统(包括Linux)的主要用户界面之一,其历史可以追溯到20世纪70年代。最初,Shell仅仅作为一个简单的命令解释器,随着时间的推移,它发展成为了...
**Shell学习笔记** Shell,全称为命令行解释器或Shell脚本,是Unix及类Unix系统(如Linux、macOS)中的用户界面,它提供了一个交互式的环境,让用户通过命令行来执行各种系统操作。在计算机科学中,Shell是操作系统...
根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ### 1. 引言 - **Shell的角色**:Shell作为一个命令解释器和编程语言,在用户与UNIX/Linux系统内核之间提供了一个桥梁...
### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...
### Shell学习笔记知识点详解 #### 一、变量定义与引用 **定义变量注意事项:** - **定义格式**:在Shell脚本中定义变量时,变量名与等号(`=`)之间不能有空格。 - 正确示例:`var1=value` - 错误示例:`var1 ...
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
### Linux Shell 学习笔记知识点概述 #### 一、Linux Shell 概述 - **定义**:Shell 是 Linux 操作系统的重要组成部分,是用户与操作系统交互的接口。 - **功能**: - 解释命令:将用户的命令转换为操作系统可以...
以下是从标题“From SQL Injection to Shell学习笔记”及描述中提炼出的相关知识点: 1. SQL注入基础概念与原理:SQL注入是利用Web应用数据库查询的漏洞,将恶意的SQL命令插入到查询中,欺骗数据库执行非法操作。...