Linux Shell 脚本基础
来源:互联网 发布:手机淘宝无线链接地址 编辑:程序博客网 时间:2024/05/04 16:29
1 export 命令
export 不接参数,则把当前系统的环境变量给显示出来
export 接参数,则把此变量作为环境变量,使得父进程的变量,子进程可以沿用,而无需重复设置。
2 read变量键盘读取
参数选项:
-p: 接提示符
-s: 接等待描述,不会一直死等用户输入
[root@localhost ~]# read -p "please specify a path:" -t 5 path_link
please specify a path:/opt/nicky
[root@localhost ~]# echo $path_link
/opt/nicky
[root@localhost ~]# read -p "please specify a path:" -t 5 path_links
please specify a path:[root@localhost ~]#
3 array数组
4 declare一般用于声明变量,如果后面没有接任何参数,那么就和set命令类似,会把所有变量名称全部调出来
参数选项:
-a: 将变量定义成数组
-i: 将变量定义成整形数字
-x:将变量定义成环境变量
-r: 变量设置成readonly
[root@localhost ~]# declare -i sum=1+2+5
[root@localhost ~]# echo $sum
8
5 ulimit 限制对计算机资源的使用
-a: 列出限制的所有的限制
-f: 该shell可以创建最大的文件数
-t: 可以使用的最大CPU时间
-u: 单一用户可以使用的最大进程
[root@localhost ~]# ulimit -f 1024 //最大创建1024个文件
6 alias unalias别名
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
7 history查看历史命令
参数选项:
n: 列出最近执行的n条命令
-w: 将目前的history记录写入histfile文件
8: bash 的环境配置文件
Login shell:取得bash时需要完整的登录流程,及一般泛指需要输入账号和密码才可以登录,此时取得的bash叫做login shell
Non-Login Shell:登录时不需要输入用户名和密码
这两种取得的配置文件不一样:
Login shell: /etc/profile 或者/~/.bash_profile or ~/.bash_login or ~/.profile。
/etc/profile: 设置一些整体的环境,现在包括一些PATH,MAILUSER,HISTSIZE 等变量。
./bash_profile: bash在读完了整体环境设置的/etc/profile,接下里会读取用户的个人配置文件,如果只要这个文件存在,其他两个存不存在都不会被读取,如果不存在才读取./bash_login,
如果/etc/profile已经有的变量,在./bash_profile也出现了,则会进行累加。
Bash 配置文件的读取是通过source命令来读取的
[root@localhost ~]# source ~/.bashrc
我们知道. 也可以将shell 脚本
9: 正则通配符
*: 0个或多个任意字符
?:一定有一个任意字符
[]:一定有一个中括号内的字符
[a-z]:代表编码顺序内所有字符,a-z任意的一个字符
[^abc]:非a b c的任意字符
10: bash环境的特殊符号
#:注释
~:用户主目录
|:管道
\:转义
/:路径分割符号
$:变量前导符
> >>:数据重定向,输出导向,分别是替换和累加
< <<:输入导向
‘’:单引号不具备变量替换的功能,作为普通字符
“”:可以替换变量
():中间为子shell的其实和结束
{}:命令快的组合
11 数据流重定向
标准输出:命令执行完毕后,命令结果一般是显示在屏幕上
标准输入:读取键盘的输入
标准输入(stdin): 代码为0,使用 < 或者 <<
标准输出(stdout):代码为1 使用> 或者 >>
标准错误输出(stderr): 代码为2,使用2> 或者 2>>
/dev/null: 垃圾桶黑洞:将数据丢弃,一般清空文件可以用这个方法
[root@localhost nicky]# ls -al > new.txt
[root@localhost nicky]# ls -lrt >> new.txt
[root@localhost nicky]# cat /dev/null > new.txt #清空文件
通过cat来输入内容
[root@localhost nicky]# cat > new.txt << "eof"
> asasasa
> eof
[root@localhost nicky]# cat new.txt
asasasa
12: 管道命令(pipe)
管道命令仅仅是针对输出;且必须接收前一个命令
选取 命令:从一行中截取我们想要的
Cut: 处理的信息是以行为单位
格式: cut –d ‘分割字符’ –f fields
cut –c ‘字符范围’
取得第五个分割字符:
[root@localhost nicky]# echo $PATH | cut -d ':' -f 5
取得第三-五个分割字符:
[root@localhost nicky]# echo $PATH | cut -d ':' -f 3,5
取得第12字符以后所有字符
[root@localhost nicky]# echo $PATH | cut -c 12-
qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
选取命令:grep 分析一行信息,如果改行有我们所需要的信息,就将该行取出来
命令格式:grep [options]‘要查找的字符串’ filename
参数选项:
-c: 计算找到字符串的次数
-i: 忽略大小写
-n: 顺便输出行号
[root@localhost nicky]# ps -ef| grep nginx
13:sort 排序
命令格式:sort [options][文件或者输入]
参数选项:
-f: 忽略大小写
-M:按月份来排序
-n: 使用纯数字排序
-r: 反向排序
-u: 相同的数据仅出现一行
-t;分割符号,默认是tab键盘
[root@localhost nicky]# cat /etc/passwd | sort –fr
14: 双向重定向 tee
比如我在查询的时候使用管道命令,但是我想将一部分存到文件:
命令格式: tes [-a] file
参数选项:
-a: 追加
[root@localhost nicky]# ls -l | tee -a new.txt | more
15: 字符转换命令
tr: 可以删除一段文字信息或者进行文字信息的替换
命令格式:td [options]string
参数选项:
-d: 删除字符串中string字符串
-s: 替换掉重复的字符
[root@localhost nicky]# last | tr '[a-z]' '[A-Z]'
[root@localhost nicky]# cat /etc/passwd | tr -d '\r' > /opt/nicky/new.txt
Paste: 将两段站在一起
[root@localhost nicky]# paste /etc/passwd /etc/shadow
- Linux Shell脚本基础
- Linux Shell脚本基础
- Linux shell脚本基础
- Linux shell脚本基础
- Linux Shell 脚本基础
- 【Linux基础】shell脚本
- linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell 脚本编程基础
- Linux shell脚本基础学习
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Linux shell脚本编写基础
- Android崩溃日志获取与解析
- struts
- mysql压缩包安装
- C#学习笔记 线程操作
- C#判断文件及文件夹是否存在并创建(C#判断文件夹存在)
- Linux Shell 脚本基础
- 天宝trimble原始文件转RINEX
- 《算法竞赛入门经典2ndEdition 》例题5-3 安迪的第一个字典(Andy's First Dictionary, Uva10815)
- 单元测试报错java.lang.ClassNotFoundException: java.pakc.SimpleTest
- Android ListView观察者模式浅析
- Reachability(判断网络是否连接)
- Apktool反编译工具的使用
- 随记
- 25个Java机器学习工具&库