Linux入门
VIM
-
正常模式
- yy复制,5yy复制5行。粘贴p
- dd删除,5dd删除5行
- G文档末行
- gg文档首行
- u撤销
- 20 shift+g
-
插入模式
- i进入插入模式
-
命令行模式
- esc+:(英文冒号)
- wq 保存退出
- /关键字 查找,多个N切换
- set nu开启行号
- set nonu关闭行号
文件目录指令
- pwd//展示绝对路径
- ls
- ll
- ll -a //隐藏文件
- lrt 升序
- lt 降序
- cd
- ~ //回到home目录
- … //回到上一级,cd …/…/root
- mkdir
- mark -p /cat/big
- rmdir //删除空目录
- rm -rf //强制删除
- rm -r 递归删除整个文件夹
- rm -f 强制删除不提示
- touch zz.txt//创建空文件
- cp 复制
- \cp -r强制覆盖不提示
- mv 移动 同目录重命名
- cat -n查看文件,展示行号
- cat |more
- 空格向下翻页
- enter下一行
- ctrl+f向下滚动一屏
- ctrl+b向上滚动一屏
- =输出当前行号
- less 动态加载文件内容
- pgup向上翻页
- pgdn向下翻页
- /字符串 查找 n向下查找,N向上查找
- echo 将内容输出到控制台
- ln 原文件目录 指向文件目录
- history 查看历史命令
- 10 查看前10条
- !10 执行第十条
- date +%Y
- date “+%Y-%m-%d %H:%M:S”
查找指令
- find 路径 -name 文件名
- find 路径 -user 用户名 |more
- find 路径 -size 200m +大于 -小于 空等于
- locate 查找目录 updatedb
- yum install mlocate
- cat info.txt | grep -n “hello”
- grep -n “hello” info.txt
- grep “关键词” xxx.log -C 10 匹配关键词行以及前后10行日志(-A 前10行,-B 后10行)
- tail -f xxx.log -n 1000 查看后1000行日志并输出新写入的日志
- less xxx.log 查看日志,不输出全部,手动翻页
- cat /tac xxx.log 正序/倒序输出全部日志
- grep “订单:220920AKCYHW3R, 匹配物流失败” cps-info.2022-09-21.307.log -C 500 |grep “pool-40082-thread-5”
压缩和解压
-
gzip 用于压缩文件
-
gunzip 用于解压缩文件
-
zip 用于压缩文件夹
-
unzip 用于解压缩文件夹
-
linux安装zip命令:
apt-get install zip 或yum install ziplinux安装unzip命令:
apt-get install unzip 或yum install unzip
Shell脚本
Shell是一个命令行解释器,他为用户提供了一个向linux发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止和编写一些应用程序
HelloWorld
- vim Hello.sh
- #!/bin/bash
echo “hello,world~” - chmod u+x Hello.sh
- ./Hello.sh
- sh Hello.sh
- A=100
- echo A=$A
- unset A
- readonly B=2 不能unset
- C=``
date
- D=$(date)
环境变量
- export TOMCAT_HOME=/root
- source /root/shellFiles
- echo $TOMCAT_HOME
- :<<!
- !
位置参数变量
- $0 $1 ${10}
- $*
- $@
- $#
预定义变量
- $$当前的进程号
- $!后台运行最后一个进程的进程号
- $?最后一次执行命令的返回状态。0代表正确
运算符
- $(())
- $[]
- ``
expr 2 + 3
条件判断
- = 字符串比较
- 数字比较
- lt
- le
- eq
- gt
- ge
- ne
- 文件权限
- -r 读取权限
- -w 写权限
- -x 执行权限
- 文件类型判断
- -f 是否存在并且是常规文件
- -e 文件是否存在
- -d 文件存在并且是一个目录
#!/bin/bash
if [ "ok" = "ok" ]
then
echo "true"
fi
if [ 23 -ge 22 ]
then
echo "true"
fi
if [ -f /root/shellFiles/aaa.txt ]
then
echo "true"
elif [ qwe ]
then
echo "true"
fi
case
#!/bin/bash
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac
循环控制
for i in "$*"
do
echo $i
done