Linux 03
1.重定向-echo-head-tail
2.ln
3.history
4.时间日期类
5.find
6.grep
7.压缩和解压
8.组管理和权限管理
补充一个less指令,跟more指令很像,但更厉害
less 文件路径 空格 向下翻一页 pagedown 向下翻一页 pageup 向上翻一页 /字符串 向下查找[字符串],n下一个,N上一个 ?字符串 向上查找[字符串],n下一个,N上一个 q 离开less
一.重定向-echo-head-tail
1.重定向 >:覆盖重定向 >>:追加重定向
命令 >/>> 文件路径 : 命名执行结果写入后面的文件里 会把箭头左边的结果写入右边的文件里 把前方语句的结果存进文件,若**文件不存在会自动创建 >:输出重定向 会覆盖原来文件内容 >>:追加重定向 追加到文件末尾
例子 1.a.txt里写上任意内容
vim a.txt 2.把ll 查找的结果,用输出(覆盖)重定向写进a.txt
ll > a.txt 用cat a.txt 查看没有我写的类容了,被覆盖了 3.a.txt里写上任意内容 4.把ll 查找的结果,用追加重定向写进a.txt
ls / >> a.txt 练习: 1.把/etc/profile 的内容 写进 /home/c.txt中 2中方式 1.cp /etc/profile /home/c.txt 2.cat /etc/profile > /home/c.txt
2.echo把内容输出到控制台指令
把内容输出到控制台
如下: echo "我是杨家三少" echo $PATH 这是看环境变量 练习: 1.用echo输出'hello world'
3.head显示文件开头类容指令
用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容 head 文件路径 查看文件前10行 head -n 5 文件路径 查看文件前5行 练习: 1.查看/etc/profile 的前5行内容
head -n 5 /etc/profile
4.tail显示文件结尾类容指令
用于显示文件的结尾部分内容,默认情况下tail指令显示文件的后10行内容 tail 文件路径 查看文件前10行 tail -n 5 文件路径 查看文件前5行 tail -f 文件路径 实时追踪文件所有的更新-----经常使用 练习: 1.查看/etc/profile 的后5行内容 2.实时追踪/home/myinfo.txt,在虚拟机上更新myinfo.txt,看xshell的效果
二.ln
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径 ln 源文件或源文件夹 软连接名 硬链接 比如说程序升级时可以用软连接 ln -s 源文件或源文件夹 软连接名 软链接 练习: 1. 在/home目录下创建/root的软链接,名字为linktoroot ln -s /root linktoroot 2. cd 到软链接,然后pwd,查看当前路径 cd linktorppt/ pwd 查看 3. 创建一个a.txt的文件 touch a.txt 4. cd 到 /root目录,查看是否有变化
是有的 说明软连接就是root 的路径 5. 删除/home下的linktoroot (需要注意,不能加/,最好不要加-r) rm -f linktoroot
三.history
查看已经执行过历史命令,也可以执行历史指令 history 查看所有的历史指令 history 10 查看最近执行的10条指令 !100 执行编号为100的指令 所以在公司指令不要瞎比输
四.时间日期类 data-cal
1.data指令
date 显示当前日期 data +%Y 显示当前年份 data +%m 显示当前月份 data +%d 显示当前天 data +%Y-%m-%d %H:%M:%S 小练习: 1.显示当前时间信息 2.显示当前时间年月日 3.显示当前时间年月日时分秒
2.cal查看日历指令
cal 显示当前日历 cal 2020 显示2020年的日历 cal 10 2018 显示2018年10月份日历
五.find
指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端 find [范围] [选项] 范围:指路径,不写默认从当前向下找,类似于windows的查找 选项: -name 文件名 按文件名查找 -user 用户名 查找属于该用户的所有文件 -size 按文件大小查找 +20M -20M 20M 20K 注意: *.txt 通配符要加引号 练习: 1.根据名称查找/home 目录下的 a.txt 文件 find /home -name a.txt find /home -name "*.txt" 2.查找/opt 目录下,用户名称为 lxx 的文件 find /opt -user lxx 3.查找整个 linux 系统下大于 20M 的文件 find / -size +20M 4.查询/ 目录下,所有.txt 的文件 find / -name "*.txt"
六.grep指令和管道符号 |
管道符:"|",表示将前一个命令的处理结果输出传递给后面的命令处理 grep:过滤查找 grep [选项] 过滤内容 选项: -n 显示匹配行及行号 -i 忽略字母大小写 练习: 1.创建文件,写上多行,包含'yes'和'YES' 2.查找'yes'所在行,并显示行号 cat a.txt | grep -n "yes" 3.忽略大小写,查找'yes'所在行 cat a.txt | grep -ni "yes"
七.压缩和解压 有三种方式
1.gzip/gunzip指令(只能用于文件压缩)
用于压缩和解压文件 gzip 文件路径 gunzip gz文件路径 **说明:使用gzip压缩文件之后,不会保留原来的文件 例子: 1.将 /home 下的 1.txt 文件使用gzip压缩 2.将 /home 下的 1.txt.gz 文件使用gunzip解压
2.zip/unzip指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的 zip [选项] xxx.zip 被压缩内容 压缩文件或者目录 -r 压缩目录 unzip [选项] xxx.zip 解压文件 -d 目录 指定压缩后的存放目录 例子: 1.将 /home 下的 所有文件进行压缩成 mypackage.zip zip -r mypackage.zip /home zip -r mypackage.zip /home/* 2.讲mypackge.zip解压到/opt/tmp下 unzip -d /opt/tmp mypackge.zip
3.tar指令
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件 压缩: tar -zcvf xx.tar.gz 被压缩内容(文件,文件夹,多个也行) 压缩 tar -zxvf xx.tar.gz -C 目标路径 解压 z:使用gzip格式压缩,否则是单纯打包 c:压缩 x:解压 f:显示压缩解压过程 v:显示提示信息 例子: 1.压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz tar -zcvf a.tar.gz /home/a1.txt /home/a2.txt 2.将/home 的文件夹 压缩成 myhome.tar.gz 3.将 a.tar.gz 解压到当前目录 4.将 myhome.tar.gz 解压到 /opt/ 目录下
八.组管理和权限管理
组管理
Linux组基本介绍
在 linux 中的每个用户必须属于一个组,不能独立于组外。在
linux 中每个文件有**所有者、所在组、其它组**的概念
## 文件/目录 所有者 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
1. 查看文件的所有者
ls -ahl 例子: 1.创建一个组 police 2.再创建一个用户 tom 3.然后使用 tom 来创建一个文件 ok.txt,看看情况如何
2.修改文件所有者
chown 用户名 文件名 例子: 1.使用 root 创建一个文件 apple.txt 2.然后将其所有者修改成 tom 3.查看文件所有者
3.组的创建
groupadd 组名 例子: 1.创建一个组,monster 2.创建一个用户fox,并放到monster组中
4.文件/目录 所在组
当某个用户创建了一个当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
4.1查看文件/目录所在组
ls –ahl
4.2修改文件所在组
chgrp 组名 文件名
例子:
1.使用 root 用户创建文件 orange.txt
2.查看当前这个文件属于哪个组
3.将这个文件所在组,修改到 police 组
5.其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
6.改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用
root 的管理权限可以改变某个用户所在的组
usermod –g 组名 用户名
权限基本介绍
ls -l -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc 0-9 位说明 第 0 位确定文件类型(d,-,l) 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限 第 4-6 位确定所属组(同用户组的)拥有该文件的权限 第 7-9 位确定其他用户拥有该文件的权限
1.rwx权限详解
rwx作用到文件
r:可读
w:可写[可写不代表可以删除,删除一个文件的前提是对文件所在的目录有写的权限]
x:可执行
rwx作用到目录
r:可读(可用ls查看目录内容) w:可写[可在目录内创建+删除+重命名文件或目录] x:可执行[可以进入目录]
2.文件及目录权限实际案例
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc - 表示类型为文件 第一组rwx: 表示所有者 可读 可写 可执行 第二组rw-: 表示同组用户 可读 可写 但不能执行 第三组r--: 表示其他用户 只可读 可用数字表示: r = 4 w = 2 x = 1 因此rwx = 4+2+1 = 7
3.修改权限
chmod 权限变更格式 文件或目录路径 权限变更格式一: u:所有者 g:所有组 o:其他用户 a:所有人 1. u=rwx,g=rx,o=x 2. o+w 其它用户增加w权限 3. a-x 所有人减去执行权限 例子: 1.给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限 chmod u=rwx,g=rx,o=rx abc 2.给 abc 文件的所有者除去执行的权限,增加组写的权限 chmod u-x,g+w abc 3.给 abc 文件,所有用户添加读的权限 chmod a+r abc
权限修改个还是二(用数字表示,这样写着更快)
r = 4 w = 2 x = 1 rwx = 7 rx = 5 chmod u=rwx,g=rx,o=x 可以写成 chmod 751 例子: 1.将 /home/abc 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现 chmod 755 /home/abc
4.修改文件所有者
chown newowner file 改变文件所有者 chown -R newowner 文件夹 使得所有子文件或子目录生效 例子: 1.请将 /home/abc 文件的所有者修改成 tom 2.请将 /home/xxx 目录下所有的文件和目录的所有者都修改成 tom
5.修改文件所在组
chgrp newgroup file 改变文件所有组 chgrp -R newgroup 文件夹 使得所有子文件或子目录生效 例子: 1.请将 /home/abc 文件的所在组修改成 bandit (土匪) 2.请将 /home/xxx 目录下所有的文件和目录的所在组都修改成 bandit(土匪)