Linux命令练习
- 常用目录
- opt(用户操作目录) usr(用户文件目录) etc(配置文件) var(存放日志)
- vi编辑器
- 这里拷贝一份profile文件进行练习测试
- y数字y 复制一段 然后先移动到目的行粘贴
- dd 删除光标所在的当前行
- d数字d 删除:光标后的”数字行“
- x:删除一个字符 相当于删除del
- shift + x =X 相当于退格 backspace
- shift+4 移动到行头
- shift+6 移动到行尾
- 1+shift+g 移动到页头 注意按键顺序
- shift + g 移动到页尾
- 数字+shift+g 首先使用 : set nu 显示行号
- 注意按键的先后顺序 数字 shift+g
- 输入模式
- 输入编辑模式:
- i 开启编辑模式
- a 当前光标后插入
- o 当前光标行的下一行插入
- shift+i 光标所在行最前插入
- shift+a 光标所在行最前插入
- shift +o 光标所在行上一行插入
- 退出输入模式:
- 按"ESC"键
- 末行模式
- 输入 : / ? 三个中任何 可进入
- :wq保存退出
- :!强制执行
- / 要查找的词 n是向下查找 N 向上查找
- ? 要查找的词 n是向上查找 N 向下查找
- :set nu 显示行号
- :set nonu 关闭显示行号
- 常用基本命令
- man 命令信息 可以获取该命令的帮助信息
- help 命令信息 获得shell内置命令的帮助信息
- 常用快捷键
- ctrl + c 停止进程
- ctrl + l 清屏
- tab 命令补全
- 上下键 查找执行过的命令
- 右ctrl 切换linux 或者windows
- 文件目录类操作
- pwd 打印当前目录路径
- ls 列出当前目录下的所有内容
- ls -a 列出当前目录下所有文件的内容 包括隐藏的 开头为.的文件
- ls -l 其实就是 ll 长数据串拿出文件的属性和权限等数据
- cd 切换目录
- 1.绝对路径
- 2.相对路径
- cd ~ 回到/root目录
- cd … 回到上级目录
- mkdir 加目录名 创建单级目录
- mkdir -p 加多级目录路径 创建多级目录
- rmdir 删除空目录
- touch 创建空文件
- cp 复制文件或者目录
- cp -r 递归复制整个文件夹
- cp -p 带属性复制 比如当前文件夹所在的时间 ,类型 等等
- cp +选项 source dest
- rm -r 递归删除目录中内容
- rm -f 强制删除 避免提示确认操作
- rm -v 显示指令的详细执行过程
- mv old new 重命名
- mv 文件 目录 移动文件
- cat 目录 查看文件的内容
- more 分屏查看内容
- 空格 翻下页
- 回车 翻一行
- q 离开more模式 不再显示内容
- ctrl + F 向下滚动一屏
- ctrl + B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- less 分屏查看内容 和more指令类似 跟more的区别在于他不会完全加载完文件再显示 而是加载一部分就显示
- 空格 翻页
- pagedown 向下翻一页
- pageup 向上翻一页
- / 字串 搜索 同上
- ? 字串 搜索 同上
- q 离开less
- echo 控制台输出内容
- -e 支持反斜线控制的字符转换
- \n 换行符
- \t 制表符
- head 显示头部内容
- 默认查看头10行内容
- head -n 2 查看头2行
- tail 显示尾部内容
- tail 与head类似
- -f 实时追踪文件的内容
- 两个终端操作同一个文件,如果另一个终端修改,那么本终端会立刻相应变化
- 输出重定向
- ll 列表内容 >文件 将ll后列表显示的指定内容写入文件中
- ls -al >文件 将列表的内容追加到文件中
- cat 文件1>文件2 将文件1中内容覆盖到文件2
- echo 具体内容 >>文件 如果只有一个> 会覆盖全部内容
- 时间日期类
- date -d today 查看今日日期
- date +%Y%m%d 表示年月日
- date -d ‘1 days ago’ 表示一天前
- 日历类
- cal 年份 查看完整日历
- 新增用户:
- useradd 用户名
- passwd 用户名
- cat /etc/passwd 查看创建了哪些用户,centos7默认前0-999保留
- 切换用户操作
- su 用户名 切换普通用户的执行权限但不适用用户的环境变量
- su -用户名 切换到普通用户的执行权限并使用用户的环境变量
- 删除用户操作
- userdel 用户名 删除用户但保存用户的主目录
- userdel -r 用户名 递归删除用户的所有信息(慎用)
- 查看是哪个用户登录的信息
- who am i
- 设置普通用户具有root权限
- vi /etc/sudoers
- :set nu 查看行号
- 91行进行添加 将普通用户信息加入
- vi /etc/sudoers
- 修改用户
- usermod -l 原用户名 新用户名
- usermod -g 初始登录租 新租
- 用户组管理命令
- vi /etc/group 对组的增加,删除,修改
- 新增组:groupadd gname
- 删除组:groupdel gname
- 修改组名: groupmod -n 新组名 老组名
- 查看创建了哪些组:cat /etc/group
文件权限管理命令
Linux 提供了三种权限:rwx 可读 可写 可执行
- 文件属性:
- 在Linux中我们可以使用ll 或者ls -l 命令 来显示一个文件的属性以及文件所属的用户和组
- (1)首位表示类型
- -代表文件 d代表目录 l代表链接文档
- (2)第1-3位:属主(该文件的所有者)拥有的文件权限。User
- (3)第4-6位:属组(所有者的同组用户)拥有该文件权限。Group
- (4)第7-9位:其他用户拥有该文件的权限---- Other
- 最大权限 777 代表111 111 111 代表9位2进制
- rwx针对文件和目录的含义
- (1)文件:
- [r] 代表可读 可以读取 查看
- [w]代表可写 可以修改文件内容 但是该权限并不代表可以
- [x]代表可执行 可以被系统执行
- (2)目录:
- [r] 代表可读 可以读取 查看 ls查看目录内容
- [w]代表可写 可以修改文件内容 但是该权限并不代表可以
- [x]代表可执行 可以被系统执行
- (1)文件:
- chmod 改变文件权限
- 方法一:适合单个权限修改
- 比如需要修改用户权限 原本是 644
- 需要增加用户可执行权限 那么下命令
- chmod u+x 文件或者目录
- 方法二:适合多个权限修改
- 比如原先文件权限为644 那么我们给他最大权限
- chmod 777 文件或者目录
- chown 改变所有者
- chown -R 最终用户 文件或者目录
- chgrp 改变所属组 (change group)
- chgrp 最终用户组 文件目录
- 方法一:适合单个权限修改
Linux第二天
搜索查找类
- find 搜索范围 选项
- -name 根据文件名查找
- find /var/log/ -name ‘*.log’ 按名模糊查找.log结尾文件
- -user 查找属于指定用户名的所有文件
- find . -user hadoop
- -size 根据文件大小查找 (c,k,M,G)
- find . -size +1k
- find . -size -1024c
- -type 根据类型查看文件
- find . -type -f f类型为文件
- find . -type -d d类型为目录
- -perm 根据权限查看文件
- find . -perm 644 根据文件权限查看文件
- -ctime 根据创建时间查看
- find . -ctime +n -n +表示n天以前,-表示n天之内
- find . -mtime +n -n +表示n天以前,-表示n天之内
- locate 快速定位文件路径
- Locate 可以高效定位 定位前 先更新locate
- 命令:locate 搜索文件
- updatedb先更新locate
- 不使用管道符 只使用exec来条件更改文件权限
- find . -type d exec chmod 755 {} ;
- exec的目的是将前面的查询结果作为chmod 755命令的条件来进行管道执行,相当于and操作。
- chmod 755 直接修改 该文件夹下 包括该文件夹在内的所有文件 (不包括文件夹下子文件夹内的内容)
- 如果使用chmod -R 755 则只要是文件夹下一切东西全部改成755权限
- grep 过滤查找以及"|"管道符
- grep “内容” 控制台输入内容 就可以捕捉到
- grep “ro{1,}” /etc/passwd 根据正则表达式匹配
- grep “ro+” /etc/passwd 正则匹配时 需要转义符进行转义
- grep “^root” /etc/passwd 匹配以root开头的文件
- grep -v “root^” /etc/passwd 显示不被匹配到的行
- grep -o “^root” /etc/passwd 仅仅显示匹配到的字符串
- grep -A “^root” /etc/passwd 匹配到行的后几行也显示
- grep -B “^root” /etc/passwd 匹配到行的前几行也显示
- grep -C “^root” /etc/passwd 匹配到行的前后几行都显示
- grep -i “^root” /etc/passwd 匹配到的记过忽略大小写
压缩和解压缩类
- gzip/gunzip 压缩
- gzip 文件 :压缩文件 只能将其压缩至gz
- gunzip 文件 :解压缩
- PS: 只能压缩文件不能压缩目录,不能保留源文件
- zip/unzip 压缩
- zip 文件名 压缩文件
- unzip 压缩包文件名 -d 存放目录名
- Archive: 1.txt.zip
replace /usr/test/1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: r - 如果有重名文件 则会选择 选择n 是结束本次操作,选择r是更改name
- new name: 3.txt
inflating: /usr/test/3.txt
- Archive: 1.txt.zip
- tar 打包
- tar -zcvf /usr/test/1.txt.tar 1.txt
- -z 打包同时压缩 产生.tar.gz文件 配合
- -c 产生.tar文件
- -f 指定打包后的文件名
- -v 显示详细信息
- -x 解包文件 如果是tar.gz 需要加z解压
- tar -zcvf /usr/test/1.txt.tar 1.txt
进程线程类
- 查看当前系统进程状态:ps
- ps aux |grep xxxxxx 查看系统中所有进程
- 查看父子进程之间的关系
- ps -ef |grep xxxxxx
- -a 选择所有进程
- -u 显示所有用户的所有进程
- -x 显示没有终端的进程
- 强制进程停止:kill-9
- 查看系统健康状态
- top
- -d 秒数 默认是3秒 命令每隔几秒更新
- -p 通过指定监控进程ID来仅仅监控某个进程的状态。
- P 以CPU使用率排序
- M 以内存使用率排序
- N 以PID排序 进入进程管理之后
- q 退出tio
- top
- 查看端口占用情况
- yum install net-tools
- netstat -anp
- netstat -nultp 可以看到正在占用的端口
- crond 系统定时任务
- systemctl status crond 查看crond状态
- systemctl stop crond 停止
- systemctl start crond 开启
- systemctl restart crond 重启
- crontab 定时任务设置
- -e 编辑一个定时任务
- -l 查询所有crontab任务
- -r 删除当前用户所有开启的crontab任务
- 参数
- 第一个* 分钟
- 第二个* 小时
- 第三个* 一月第几天
- 第四个* 一年当中第几个月
- 第五个* 一周当中星期几
- *代表任何时间
- ,代表不连续的时间
- -代表连续的时间范围
- */n代表每隔多久执行一次
其他
- df -h 以人能看懂的信息显示磁盘占用情况
- du -a 显示目录下所有目录以及子目录和文件大小
- du -s 显示文件大小
- du -h 以人容易看懂的信息显示
- wc -w 文件名 统计单词个数
- wc -l 统计行数
- wc -L 计算最长行