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(土匪) 
posted @ 2019-12-18 17:20  ZHANGYUZY  阅读(281)  评论(0编辑  收藏  举报