Shell命令
shell命令第一行#!/bin/bash 是一个bash报,是告诉系统用哪个shell语言来运行以下代码.
在Linux环境写不写不会有问题,但是其他平台可能会出错.
看当前linux支持哪些版本的shell命令 进入到/etc/shells查看
需要使用哪种就直接敲bash或者sh 等等来回切换
echo命令 用来输出,也可以输出到文件
- echo常用的参数
-e: 支持反斜线控制字符转换 例: echo -e "a"
-n: 取消输出后行末的换行符号 - echo 还可以输出颜色,格式是
echo -e "e[1;31m xxx e[0m"
e[1;是开启颜色输出 31m是颜色代码 xxx是内容 e[0m是终止颜色输出.
- echo输出的时候如果有感叹号 后面必须加空格.不然会报错,编辑在文本中也是一样.
shell命令执行
有2种方法.
- 第一种直接先赋予脚本执行权限,然后用绝对或者相对路径进行运行
- 第二种用bash 加相对或者绝对路径,这样方式不需要赋予脚本执行权限(渗透考虑)
bash的基本功能
-
history命令
history有2个参数 -c 清除历史命令,另一个-w 把缓存的历史命令强制写入历史保护命令.
历史保护命令的路径是当前用户根目录下的.bash_history
,正常情况需要logout后才会把当前用户的缓存命令写入这个文件.
而通过-w命令可以不退出就写入到.bash_history.
默认记录1千条,在/etc/profile里的HISTSIZE这个参数设置.
渗透测试可以查看历史命令,看是否有当初配置的数据库或者其他应用配置设置的端口密码.
-
Bash的快捷键
-
Bash的输入输出重定向.
重定向定义就是本来一个正确或者错误结果输出到屏幕,我们改变他输出的方向,比如不输出到屏幕,把正确或者错误结果输出到文件.
要注意 正确的重定向 >和命令文件中间隔着空格,而错误的重定向不能有空格
输入重定向就是把>改成<,但是一般除了打补丁,用的不多. -
Bash多命令执行
多条命令执行示例
&&命令示例
-
Bash的其他特殊符号
bash是可以创建子shell的,shell命令本身就是在bash中运行的,我们输入bash可以在创建一个子shell.我们可以用pstree看出这个进程构造.
()中的命令会在子shell中运行.子shell和父shell是相互隔离的空间.子shell执行完后,变量就会自行清除.不影响父shell的变量
别名 alias
永久生效写在 .bashrc的文件中
配置文件不重启就生效 用source命令 source + 配置文件名路径,source可以用.代替
比如. .bashrc
别名的优先级会比命令高,所以尽量不要把别名和命令冲突.否则会影响正常的命令执行.