shell 技巧

shell 技巧

shell 基本命令

  • cd -可以返回上一次cd前的目录
  • cd可以直接返回~目录
  • ls -F可以打印目录下格式化文件
  • ls -R可以循环打印目录下的文件夹内容
  • 一次输入多条命令用分号;间隔
  • shell 查找命令

which 在环境变量路径下寻找
whereis 在特定目录下查找,只能用于查找二进制文件、源代码文件和man手册页
find 寻找特定目录下文件
-. find 查找目录 -name 文件名称
支持模式查找:
* 通配0个及以上
? 通配一个及以上
[a-z]匹配任意小写字符/[abc]匹配或a或b或c/[A-Z]匹配任意大写字符/[0-9]匹配任意数字
[a-z][A-Z]匹配组合,如aD

  • find -size +10k查找大于10k文件/-10k小于10k
  • echo $变量可以打印变量内容,如echo $PATH
  • who用于打印所有用户,whoami打印当前用户
  • mkdir -m a+wrx dir新建dir目录并赋予权限(权限名称等同于chmod
  • mkdir -p ./work/speech当父目录不存在时,自动创建
  • rmdir用于移除目录(目录为空时)
  • ll的打印显示格式,参考ll命令详解
    在这里插入图片描述
drwxr-xr-x2yd211speech4096Sep 23 11:23work
文件类型创建用户权限创建用户所在组其他人权限其他组其他人权限目录下文件数量创建用户创建用户所在组文件大小/目录名大小创建日期文件名

类型参数

  • d 代表目录
  • - 代表普通用户
  • l 代表链接文件

权限类型

  • r 可读
  • w 可写
  • x 可执行
  • 查看用户/组相关

cat /etc/passwd 查看用户
cat /etc/group 查看组

  • du -sh work/查看目录总大小/du -sh file查看文件大小(s代表总结值,h代表人类可读格式【b/k/m】)
  • cat file1 file2可以串起文件并输出,如合并文件:cat file1 file2 > file_cmb

shell变量与字符串

  • 打印字符串中的变量:echo ${file1} and ${file2}
  • shell定义数组:array=(1 2 3 4 5) 打印数组:echo ${array[0]} 增加数组维度:array[6]=7
  • shell 定义变量等号左右无空格
  • shell定义字符串数组:array=("abc" "bcd" "cde") 且shell不要求数组内部元素类型相同(可混用
  • 打印shell字符串所有变量:echo ${array[@]}(@*) 获取数组长度:echo ${#array{*}}
  • shell数组遍历:dodone之间是执行体
for v in ${array[@]};do
	echo $v;
done
  • shell数组拼接:array_new=(${array1[@]} ${array2[@]})

进程当中值的传递

  • 若想要父进程中的变量传递给子进程,可将变量放置到环境区,使用export temp (不带$)
    (子进程对父进程无效)
  • Linux环境变量命令——env、export、set

这三个命令都可以用来显示shell变量

  • env:显示所有的环境变量
  • set:显示所有本地定义的shell变量
  • export:把一个变量变作环境变量。export不加参数的时候,显示哪些变量被导出成了用户变量,一个shell自己的变量可以通过export “导出”变成一个用户变量(env和export显示基本一样,env多了一个_=/usr/bin/env
  • shell中并行运行多条命令:
  • cmd1;cmd2;cmd3
$ vi run.sh
cmd1
cmd2
cmd3
  • shell顺次运行多条命令
  • &&:左边命令执行成功再执行后面命令
  • ||:左边命令执行不成功再执行右边命令
  • shell中输入bash可打开新的shell,虽然还是一个命令行,但已经进入新的shell,输入exit可退回父shell
    bash命令
  • $ source ./1.sh可以使子进程与父进程公用运行空间,此时子进程kill以后,值可以传回父进程,source可用.代替,即$ . ./1.sh
  • $ ps -f可查看PPID(父进程ID)ps f可以看到当前字符终端进程树 ps xf可以看到用户的所有字符终端的进程树
  • $ top可显示CPU及所有进程占用,可安装htop,输入htop再按f5显示更详细信息
  • $ kill {pid}可以杀进程,kill -9 {pid}可以强制杀死进程,kill -1 {pid}让进程重启
  • $ free 可看到内存相关信息
  • 可在命令最后添加&来使命令运行在后台,使用$ {cmd} > {logfile} &再新开终端使用$ tail -f {logfile}查看增量
  • $ nohup {./1.sh} &可使该运行脚本脱离当前父进程字符终端,此时字符终端消失,该脚本仍会继续运行。
  • 可使用\ "" ''完成对特殊字符的转义{# ? * < > \}
  • ''定义的是常量(内部变量不会解释),用""定义的是变量
  • tail -f {filename} 可以增量查看文件(如重定向日志文件)
  • echo test* | xargs ls 相当于把echo的结果传给xargsxargs 又把 结果作为参数给ls
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值