从入门到入狱之kali Linux 命令指令

这些其实去百度里面搜都是有的我就不详细举例了

find `pwd` -name "*pcm" 	#绝对路径下的所有pcm
find `pwd` \( -name "*.txt" -o -name "*.text" \)		# 绝对路径下的所有.txt和.text
find `pwd` -type d    		#绝对路径下的所有目录,f是文件
find `pwd` -iname "*txt" 	#绝对路径下的所有txt(且不区分大小写)
find `pwd` -maxdepth 1 		#查找目录最大深度为1
find `pwd` -size +9600000c 	#查找目录大于9600000字节的文件

shell基础 

# 单引号
变量无效,转义也不可以
# 双引号
变量有效,可出现转义符

# 变量
name="nihao" # 局部变量,仅在当前shell有效
exprot name="nihao" # 全局变量,所有shell有效

# 获取字符串长度
在${}中使用“#”获取长度
# 提取子字符串
${str:start:len}

# 数组 bash只支持一维数组,不支持多维数组
# 定义
array_name=(li wang xiang zhang) (小括号做边界、使用空格分离)
# 获取数组元素
echo ${array_name[0]}
# 取得元素个数:
${#array_name[@]} 或者 ${#array_name[*]}
# 取得单个元素长度:
${#array_name[1]}

# 参数
- $#:参数个数
- $@:显示所有向脚本传递的参数  “1” “2” “3”(传递了三个参数)
- $*:显示所有向脚本传递的参数  “1 2 3” (传递了一个参数)
- $?:是显示最后命令的退出状态,0表示没有错误,其他表示有错误
- $!:最后一个运行的后台进程 
# 算数运算
$[1+1] 或 $((1+1)) 或 `expr 2 + 2` (中间要有空格) 或 let i=1+1
# bc 上面的都不能做小数运算,可以使用bc计算器,也支持 逻辑运算 echo "1>2" | bc 成立返回1,不成立返回0
- scale=n 可以约束小数位
1.直接输入bc,可以进入交互模式
2.echo "scale=2;1.1+1.1" | bc

# 数字关系运算符
-eq := ,Equal
-ne: != , Not Equal
-gt: > , Greater Than
-ge:  >= , Greater or Equal
-lt : < , Less Than
-le : <= , Less or Equal

# 字符串运算符
= :检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= :检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z :len == 0,为0返回 true。 [ -z $a ] 返回 false。
-n :len != 0,不为0返回 true。 [ -n “$a” ] 返回 true。
$ : a != "",不为空返回 true。 [ $a ] 返回 true。

# 布尔运算符
! :非运算,表达式为 true 则返回 false。   [ ! false ] 
-o :| ,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ]
-a :& ,两个表达式都为 true 才返回 true。	[ $a -lt 20 -a $b -gt 100 ]

# 逻辑运算符  有多个判断条件,所以有两个 [[  ]]
&& :逻辑的 AND 	[[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| :逻辑的 OR 		[[ $a -lt 100 || $b -gt 100 ]] 返回 true

# 文件运算符
-d file :检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file :检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-s file :检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file :检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。
-r file  -w file -x file :可读可写可执行返回true

# 字符串切割 
${file#.*} 删掉第一个 
${file##.*} 删掉最后一个 
${file%%.*} 删掉最后一个 
${file%.*} 删掉第一个 

${file/dir/path}:将第一个dir替换为 path
${file//dir/path}: 将全部dir替换为 path

# read == 标准输入
read -p "请输入姓名" -t 3 -s name
-p:提示输入
-t:计时输入
-s:输入不显示,类似于密码输入
cat txt | while read line;do commend ;done # 按行读取文本


# 条件测试
test 选项 参数  或  [ 选项 参数 ] (空格必须加)
- 多个命令组合
; - [ 1 -eq 1 ] ;echo 1 # 用;两条命令没有逻辑关系,依次执行
&& - [ 1 -eq 1 ] && echo 1 # && 有关系,只有第一条命令执行成功,才能执行第二条
|| - [ 1 -eq 1 ] || echo 1 # || 有关系,如果第一条命令执行成功,第二条就不执行,反之,第二条执行

# if 判断 
if 条件测试;then
 命令
elif 条件判断;then
 命令
else
 命令
fi

# for 循环
# 方法一:
for 变量 in 值列表  # 技巧 {1..10} 1-10 ; {a..z} a-z
do 
 命令
done
# 方法二:
for((初值;条件;步长))
do 
 命令
done

# case 语句
case 变量 in
模式1)
 命令;;
模式2)
 命令;;
*)
 默认命令
esac


# 函数
function 函数名{  }
函数名(){  }

# basename 命令
$ basename /usr/bin/sort       输出"sort"。
$ basename ./include/stdio.h .h  输出"stdio"。
# dirname 命令
$ dirname /tmp/test/file.txt    输出"/tmp/test"

# tr 命令
-s :  删除重复字符串
echo "a   b   c" | tr -s " "   # a b c
echo "aaaaaab" | tr -s "a"     # ab
-c : 取反
-d : 删除
tr -cd '0-9a-zA-z' < /dev/urandom  | head -c 10 # 只提取前10个字符

# cut 命令 切割列
-d:指定分隔符
-f:指定第几列
cut -d : -f 1 txt  # 选择以:为分割符的第一列

今天就分享那么多,我妈妈喊我回家吃饭了拜拜!!! 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值