基础命令
1 ls
- ls -a 所有包括隐藏文件
- ls -F 区分文件和目录
- ls -R 递归文件
- ls -l 查看详细信息
- ls -l my_script my_script 详情
2 touch
- touch aa.text 创建文件
3 mv
- mv aaa aaab 重命名
- mv aaab /home 移动文件
4 rm
- rm -i aaa.text 询问是否真的删除文件
- rm -f aaa.text 强制删除
- rm -R aaa 递归删除
5 mkdir
- mkdir aaa 创建目录
- mkdir -p a/b/c 创建子目录
- rmdir aaa 删除空文件目录
6 file
- file a.text 看文件
- file aa 看文件夹
7 cat
- cat a.text 查看内容
- cat -n a.text 查看 并有行数
- cat -b a.text 查看 只给文本加行号
8 more
- more a.text 分页查看
9 less
- less a.text 滚动查看
扩展命令
ps
- ps -ef -e参数指定显示所有运行在系统上的进程 -f参数则扩展了输出
kill
- sudo apt-get install lsof //安装lsof
sudo lsof -i:端口号 //查找对应的进程号
sudo kill -9 进程号 //杀死对应的进程 - kill pid
tar
- tar -zxvf filename.tgz 解压
- z 将输出重定向给gzip命令来压缩内容 �
- x 从已有tar归档文件中提取文件 �
- v 在处理文件时显示文件
- f 输出结果到文件或设备file
env
- env 查看环境变量
- printenv JAVA_HOME 查看具体环境变量
- echo $JAVA_HOME
- JAVA_HOME=123 设置当前shell局部环境变量
- bash 开启一个新的shell
- exit 退出当前shell
bash
- bash 开启一个shell
设置全局环境变量
- JAVA_HOME=ABC 当前shell设置局部环境变量
- export JAVA_HOME 将其设置为全局环境变量
- printenv JAVA_HOME 查看
- unset JAVA_HOME 删除环境变量
yml
- yml list installed 要找出系统上已安装的包
- yum list updates 查看所有可更新列表
- yum update package_name 更新
- yum remove package_name 只删除软件包而保留配置文件和数据文件 hs
- yum erase package_name 要删除软件和它所有的文件
- yum install package_name 安装
- yum install -y package_name 直接安装
vi
- vi 1.text
- PageDown(或Ctrl+F):下翻一屏
- PageUp(或Ctrl+B):上翻一屏
- G 到最后一行
- num G 到num行
- gg 到第一行
- i 开始编辑
- 不开编辑的情况下
- x 删除当前光标字符
- dd 删除当前行
- u 撤销前一步编辑
- dd 是一个剪切的功能 p是粘贴 这是一个连用
- esc 退出编辑
- :q 退出
- :q! 放弃修改退出
- :w filename 将数据保存到另一个文件
- :wq 保存并退出
- 查找字符 /name 回车 n 代表查找下一个
- 替换 不常用
- :s/old/new/ 将old替换new
- :s/old/new/g 一行替换
- :n,ms/old/new/g 替换行号n和m之间所有old。
- :%s/old/new/g 替换整个文件中的所有old。
- :%s/old/new/gc 替换整个文件中的所有old,但在每次出现时提示。
nano
- nano 1.text
shell编程
开始
- !/bin/bash 脚本首行 指定使用的shell
- echo 文字 输出
- echo $path 脚本中使用环境变量
- echo /$path 就是要显示字符串
特殊符号
">" 将数据输出到指定文件 echo $path > 1.text
ls > 1.text 将命令产生升的数据输出到文件中
-
">>" 追加输出
是在是太多了 学不过来了 只记录一些常用的吧 毕竟不是shell开发 复杂的保证能看懂吧
运算
- $? 查看上一个命令是否正确执行了 正确返回0否则返回别的 用后后判断是否下一步
逻辑
- if ls ;then echp 123 fi 如果ls是一个能执行命令 会返回0 那么会执行then 后边的命令 fi 结束
- if [ $? == 0 ] 判断上一步是否正确执行了注意括号中的空格
- if-then-else 相当于java if-else
- if-then-elif 相当于java if-else-if
- [] 中的比较
- n1 -eq n2 检查n1是否与n2相等
- n1 -ge n2 检查n1是否大于或等于n2
- n1 -gt n2 检查n1是否大于n2
- n1 -le n2 检查n1是否小于或等于n2
- n1 -lt n2 检查n1是否小于n2
- n1 -ne n2 检查n1是否不等于n2
- 补充 可以用= > < != 比较
- if [ $PATH == 123 ] && [ 1 != 2 ] 组合判断
- [] 中的比较
循环
- for var in list ; do 干哈干哈 done
- for var in 1 2 3 4 5;do
echo 这个是 $var
done - 将输出 到文件 for var in list ; do 干哈干哈 done > 1text