shell常用命令

shell既是一种命令语言,又是一种程序设计语言,是用户使用Linux 的桥梁
随着深入学习,此篇文章持续更新...
linux 文件权限说明

drwxrwx---

第一个字母d 表示目录文件 若为-则是文件
其余9个字母,分为3组,分别是属主权限 、属组权限 、其他用户权限
符号 意义 数字表示 身份代码
r 读权限 4 u
w 写权限 2 g
x 执行权限 1 o
若用-表示,代表没有相应权限
所有人的身份代码可用a表示
更改文件权限
# 777 表示3组所有权限都打开是4+2+1的和 chmod 777 filename# 可以通过+ - = 来设定权限 chmod u=rwx, g=rx, o=r filename chmod u+r, g+r, o+r filename chmod a-x filename

shell
  • 条件表达式要放在方括号之间,并且要有空格,例如: [b] 是错误的,必须写成 [ b ]
  • 单引号中变量无效转义符无效,双引号变量有效转义符有效
常用命令
# 重新执行刚修改的文件,使立即成效 $ source [file]# 打印,等同于log $ echo ...# 可以传入参数 $0是脚本名 $1是1 $ sh file.sh 1 2 3# 传入参数的个数所有传入参数 $ echo $#$*# 上个命令的退出状态,或函数的返回值 $ echo $?# 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID $ echo $$# -e 开启转义\n开启换行\c不换行 $ echo -e "OK! \n"# cut 剪切字节、字符和字段并将这些字节、字符和字段写至标准输出 $ cut -b 3-5

设置变量
# 定义变量,等号两边不可有空格 $ name="runoob.com"# 设置只读变量 $ readonly name# 删除变量 $ unset name# name 接收标准输入的变量 $ read name

字符串
# 字符串拼接方法 $ greeting="hello, "$name" !" $ greeting_1="hello, ${name} !"# 获取字符串长度 $ echo ${#name}# 从字符串第 2 个字符开始截取 4 个字符 $ echo ${name:1:4}# *// 表示从左边开始删除第一个 // 号及左边的所有字符 $ echo ${name#*//}# ##表示从左边开始删除最右边一个/及左边的字符 $ echo ${name##*/}# %/* 表示从右边开始,删除第一个 / 号及右边的字符 $ echo ${name%/*}

数组
# 定义数组 $ array_name=(value0 value1 value2 value3)# 读取数组 $ ${数组名[下标]}# 获取所有数组 $ ${array_name[*]}# 获取数组长度 $ length=${#array_name[*]}# 获取某个数组元素长度 $ lengthn=${#array_name[n]}

expr
# MAC 中 shell 的 expr 语法是:$((表达式))# expr 运算符 + - * / % = == !=# 非运算 或运算 与运算 ! -o'-a &&'

Mac OSX 命令行 一些常用命令
【shell常用命令】comd + shift + .打开关闭显示隐藏文件
# 允许所有来源 $ sudo spctl --master-disable# 显示隐藏文件 $ defaults write com.apple.finder AppleShowAllFiles -bool true killall Finder# 恢复文件隐藏 $ defaults write com.apple.finder AppleShowAllFiles -bool false killall Finder# 标题栏显示完整路径 $ defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES killall Finder# 标题栏显示当前路径 $ defaults write com.apple.finder _FXShowPosixPathInTitle -bool NO killall Finder

快捷命令
功能说明 快捷键
新建一个文件 touch
拷贝文件 cp
删除文件 rm
移动文件 mv
显示文件类型 file
显示进程状态 ps
显示当前时间 date
显示日历 cal
统计程序的执行时间 time
显示操作系统信息 uname -a
光标回到命令行首(尾) Ctrl + a(e)
删除光标处到行首(尾)的字符 Ctrl + w(k)
删除整个命令行文本字符 Ctrl + u

    推荐阅读