vim 使用
一般模式 、 命令模式、编辑模式
esc 进入一般模式
i 进入编辑模式
shift+: 进入命令模式
yy p 复制粘贴
5yy 复制当前开始的5行
dd 删除
5dd 删除当前开始的5行
u撤销操作
ctrl+r 恢复
shift+g 滚动最底部
gg 滚动最顶
输入数字 然后shift+g 跳转到指定行
末行模式:
s/算法/suanfa 将当前行的第一个匹配结果替换
s/算法/suanfa/g 将当前行所有匹配结果替换
%s/算法/suanfa 将每一行第一个匹配到的“算法”替换为“suanfa”
%s/算法/suanfa/g 将所有匹配到的替换为suanfa
用户操作
pwd 当前所在位置
userdel -r xx 删除用户以及对应目录(建议保留目录)
id root 查看用户信息
su test 切换到test账号
在高权限进入低权限账号时候,不需要密码 直接 su test 进入即可
退出test账号,exit 退出即可 (shell当中通过logout退出)
whoami 查看当前登录的用户
who 查看当前操作用户
groupadd xxx 新增组
groupdel xxx删除组
useradd -g group1 user1 新增用户同时指定组 (默认生成跟该用户名相同的组)
usermod -g group1 user2 修改用户所在的组
usermod -d xxx user 修改用户目录
文件目录相关指令
cd ~ 进入当前用户目录
mkdir -p test/test 创建多级目录
rm -rf /test 删除非空目录
cp test/1.txt test/2.txt 拷贝文件
cp -r test test2递归拷贝 如果不存在test2目录则生成一个目录,否则将目标拷贝目录拷贝到test2目录下
cp 1.txt test 将文件拷贝到某个文件夹下
\cp test test2 强制覆盖test2下面的test文件夹里边的文件,不进行提示
mv xx1 xx2 同一级目录下 为重命名
mv xx1/xx2 xx3/ 移动到其他目录 (剪切功能)
cat -n /etc/profile |more 查看文件内容 (more: = 当前行号、ctrl+f向下翻一页、enter 向下一行、space 向下一页、q退出)
less 命令
ln 1.txt -s 1 1为快捷方式
rm 1 删除软连接
history 查看执行过的命令
history 10 查看最近十条
! 5 执行第五条
date
date “+%Y-%m-%d %H:%M:%S” 得到当前年月日时分秒
查找
find ./ -name *.txt -exec rm -rf {} ; 注意{} 与 \ 之间有空格 删除当前目录下有有的.txt后缀文件 注意是反斜杠
find / -size +20M (K、M、G)
cat 枫木.txt | grep -ni 枫木 不区分大小写查找枫木并且显示所在行号
相当于 grep -ni 枫木 ./枫木.txt
ll -h kcore 按照人类能理解的方式展示kcore文件信息(ls -lh kcore)
压缩解压
zip -r a.zip a 对a文件夹进行递归压缩 将a文件夹压缩放到a.zip 里边
unzip -d c a.zip 将a压缩包解压里边的内容放到c目录下面
tar -cvfg 枫木.tar.gz 枫木1.txt 枫木2.txt 将当前文件夹下的两个文件压缩
tar -xcf 枫木.tar.gz -C 枫木 将压缩包内容解压到枫木目录下面
linux组
文件创建时候,所拥有者为创建者,所在组为创建者所在组,如果修改了创建者的所属的组,文件所属的组也不会发生变化
可以通过chgrp group1 text.txt来修改
删除一个文件的前提是拥有该文件所在目录拥有写的权限
第二个数字为 子目录数加文件数量
对于目录:x 是否可以进入目录、r 是否可以查看目录内容 、w是否可以修改目录以及对目录内容操作,新增 删除 等
如果一个用户对某个目录没有任何权限,但是拥有上一级目录的修改权限,那么他可以对当前没有权限的目录赋予操作权限
chmod u=rwx,g=rw file1
chmod u-w file4
chmod go-rw 组和其他组移除读写权限
chmod 741 file2
chimod all=r file5 给所有用户添加读权限
chown user1 file2
chown user2:group4 file2
chgrp -R user3 file2 递归将该目录以及该目录下的子目录和文件的所有者修改为user3
定时任务调度
crontab -e 编辑定时任务
crontab -l 当前用户的定时任务
crontab -r 删除当前用户的定时任务
crontab -u test -e 编辑test用户的定时任务
rpm管理
rpm -qa | grep firefox 查看是否已经安装了firefox (查找已经安装的软件,过滤是否存在firefox)
包名-版本号-操作系统版本-位数(noarch:通用、86_64:64位)
rpm -q firefox 查看是否已经安装firefox
rpm -qi mysql 查看安装好的mysql信息(版本 安装日期等)
rpm -ql mysql 查看安装过后,文件存放位置
rpm -qf xx 查看某个文件归属于哪个软件包
rpm -e firefox 卸载某个软件包
rpm -ivh firefox-xxx-xxx 安装某个软件包 (卸载后,安装时候需要有rpm包,可以到光盘上找)
yum
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum list | grep firefox 查看yum服务器上是否有firefox安装包
yum install firefox 安装软件
其他
shell 当中,通过esc + backspace 可以快速删除输入的命令行
通过ctr + 左右键快速跳位置
shell 使用
#!/bin/bash
# 得到命令返回值
a=`date`
a=$(date)
b=${a}a
vim /etc/profile
新增
export ROOT_HOME=/home/test
source /etc/profile 立即生效
echo $ROOT_HOME
位置参数:
$n 对应传递参数 $0 为命令本身 ,超过10时候需要 ${n}
$* 将参数作为整体
$@ 参数分开
$# 参数个数
运算符:
res1=$(((1+2)*3))
res2=$[(1+2)*3]
条件判断:
字符串比较
整数比较
文件权限判断
文件类型判断
if [ 'ok'='ok' ]
then
echo 相等
fi
if [ 23 -ge 22 ]
then
echo 大于
fi
if [ -f ./var.sh ]
then
echo 存在
fi
case语句
case $1 in
"1")
echo 1
;;
"2")
echo 2
;;
*)
echo 3
;;
esac
read -p 请输入数字 -t 60 num
函数:
basename /root/doc/var.sh .sh 最终返回var
后续继续更新