课题大纲
文件处理命令
权限管理命令
文件搜索命令
帮助命令
压缩解压命令
网络通信命令
系统关机命令
Shell应用命令
文件的命名规则
除了/外,所有字符都合法
有些字符最好不用,如空格、制表符、退格符、@#$()-等
一般不用.作为文件的开头
大小写敏感
命令格式: 命令 -选项 参数
例: ls -ld /etc
说明: 当多个选项时,可以放在一起; .当前目录 ..当前目录的父目录
这里写代码片
一、文件处理命令
1、ls(list)(/bin/ls)(执行权限:所有用户)(显示目录、文件)
-a (all)显示包括隐藏文件的所有文件
-l (long)显示详细信息
-d 查看目录的属性
【知识介绍】
while+命令 : (可以查看命令存放在哪个文件下,并通过文件所在文件夹,判断出文件可以被哪些用户执行)
只有root用户能执行的命令一般放在下面的文件下:
root:
/sbin
/sur/sbin
所有用户能执行的命令放在下面的文件下:
all suers:
/bin
/usr/bin
其中:
bin-binary 二进制
usr-user
sbin-super binary 超级二进制(超级用户)
【重点知识-必须掌握】
执行下面命令: ls -l / 查看/目录下所有包含的文件、目录以及它们的详细信息,如下图所示:
上图的输出结果,分别对应:
文件的类型以及权限 硬链接数 所有者 所属组 大小 创建/修改时间 文件/目录名
【详细介绍】
(1)文件的类型以及权限:dr-xr-xr-x (一共有10个字符组成)
其中:第一个字符表示文件的类型,文件的类型有下面三种:
d 目录 directory (表示是一个目录)
- (表示是一个二进制文件)
l (表示是一个软链接文件)link
后9个字符由rwx-组成,表示可读read、可写write、可执行execute
rwx以三个一组为单位,分别对应三种用户:
u-文件的创建者、文件的所有者
g-文件的所属组
o-其他人
【重点知识-必须掌握】rwx对于文件、目录具有不同的含义,下面看图:
【rwx执行权限总结】
1、r的含义:对于文件肯定就是是否能查看,对于目录就是是否能查看目录中有哪些内容(比较容易理解)
2、w的含义:对于文件,只是能否进行修改(并不能控制改文件是否能被删除,要判断改文件能否被删除,应该看改文件所在的父目录的w属性);对于目录而言,表示①是否能在该目录中创建或者移来文件;②该目录中的文件能否被删除、被移走。
3、x的含义:对于文件,有一些可执行的文件;对于目录,表示该目录能否被进入,换句话说,能否cd改文件。
2、cd (change directory) (所在位置:shell内置命令) (所有用户) (切换目录)
cd 目录
3、pwd (print working directory) (/bin/pwd) (所有用户) (显示当钱所在目录)
4、mkdir (make directory)(/bin/mkdir) (所有用户) (创建目录)
5、touch (touch)(/bin/touch) (所有用户) (创建空文件、改变已有文件的时间戳)
6、cp (copy) (/bin/cp) (所有用户) (复制文件)
cp -选项 源文件/目录 目的文件/目录
-r 处理目录
-p 保持属性
示例:
cp f1 f2 /data 一次性cp多个文件到目录下
cp -r /data /test 复制目录
7、mv (move) (/bin/mv) (所有用户) (移动文件目录、改名rename)
mv -选项 源文件/目录 目的文件/目录
8、rm (remove) (/bin/rm) (所有用户) (删除文件/目录)
rm 文件
rm -r 目录
9、cat 显示文件内容
10、more 分页显示文件内容
空格、f 显示下一页
回车 显示下一行
q 退出
11、head 显示文件的前num行
head -n 10 oldboy.txt
12、tail 显示文件的后num行、查看文件后几行的状态(可以进行实时的监控文件的变化)
13、ln (link) 创建硬链接、软链接文件 (该命令只能处理文件,不能处理目录)
ln 源文件 目标文件
ln -s 源文件 目标文件 (-s soft软)
【重点知识:必须掌握】软链接文件、硬链接文件的含义、以及二者的区别
用ls -l 命令去查看三个文件,结果显示如下图所示:
用ls -i 命令去查看三个文件的inode节点
发现源文件和硬链接文件的i节点:相同
发现源文件和软链接文件的i节点:不同
从结果可以看出:
源文件、硬链接文件(除了文件名不同,其他的信息全部相同)
【注1】硬链接文件:相当于源文件的“拷贝”+可以和源文件进行同步的更新。
其中:硬链接文件不能跨系统(/ /swap /test)(相当于不能跨Windows中的C盘、D盘)
硬链接文件创建的位置必须和源文件在“同一个盘的同一个分区内”,而软链接文件创建的位置与源文件没有任何联系和限制。
【疑问】为什么硬链接文件和源文件可以进行同步更新呢?
答:因为文件的名称在Linux下是以(i节点inode)进行标识的,硬链接文件和源文件的i节点一样,因此linux在进行修改其中一个文件时,先获取改文件的(i节点),之后修改(该i节点)的所有文件,因此硬链接文件和源文件可以进行同步更新。
删除了源文件,硬链接文件不会消失,因此在企业开发中写脚本时,一般创建一个硬链接文件,进行备份。
【注2】软链接文件:相当于源文件的“快捷方式”,一旦源文件被删除,则软链接文件也就失去作用(相当于是个垃圾了)。
二、权限管理命令
【命令介绍】
添加用户、并设定密码
useradd 用户名
passwd 密码
1、一个文件/目录有两个可以进行改变:所有者、所属组
(1)chown (改变文件/目录的所有者)
语法:chowm 用户 文件/目录
(2)chgrp (改变文件/目录的所属组)
2、chmod (change the permissions mode of a file) (改变某种用户u/g/o对文件/目录的rwx权限)
【改变权限有两种形式】
形式1:chmod 用户ugo +-= rwx 文件/目录
案例
chmod o=r-- oldboy.txt、
chmod u=rwx oldboy.txt
形式2:chmod [mode=421] oldboy.txt
【解读】mode由三个0-7的数字组成,为什么数字范围是0-7呢?
因为:r表示4,g表示2,o表示1,-表示0
因此一个0-7的数字就可以表示一种用户的权限!这样的处理方式很简单,也是企业开发中常用的形式。
案例
chmod 777 oldboy.txt 所有用户具有所有权限
chmod 000 oldboy.txt
chmod 755 oldboy.txt u:rwx、g:r-x、o:r-x
3、umask 查看文件/目录的(“默认的”rwx权限)
【直观的方式查看默认权限】
umask -S
【不直观的方式查看默认权限】
umask
看上面图示结果,
umask -S得到的结果是0022
解析0022的含义:
第一个位置为0,是特殊权限位
022-用户权限位(此处是权限掩码值),022是怎么得来的呢?
777
- 022 权限掩码值
——————————————————————————
755 实际的权限值 rwx r-x r-x
【注】linux中,
(1)默认创建的目录的权限是755
(2)默认创建的文件的权限是644
注:这是一个linux潜在的规定,默认情况下创建的文件,不具有可执行的x权限。
三、文件搜索命令
1、查找命令存放的路径
(1)which
存放文件的不同,可以划分为什么用户可以用,什么用户不可以用。
/sbin-root用户
/sur/bin所有用户
【注】别名信息
(2)whereis
【注】帮助文档存放的路径
2、find 查找配置文件存放的路径
find [搜索路径范围] [搜寻关键字+-]
查找文件和目录(在Windows下用“查找”查找文件/目录)
【查找的规则】占用系统的资源越少越好
【选项介绍】
(1)-name 文件名
介绍两个通配符
* 匹配多个任意字符
?或者- 匹配单个任意字符
(2)-size 文件大小(block数据块 512字节)
【大小怎么来写?】
100M = ?block = 0.5KB
100M = 102400KB = 204800block
【三种写法】 大于+ 小于- 等于
find /test -size +204800
(3)-user 文件所有者
find /test -user helen
(4)时间
以___为修改单位
按 天 为单位:ctime、atime、mtime
按分钟为单位:cmin、amin、mmin
【注1】上面的c、a、m分别表示的含义:
c - change改变,表示(文件属性,即ls -l看到的信息)被修改过,所有者、所属组、权限等
a - access访问,被看过浏览过
m - modify修改,文件正文内容被修改过
【注2】表示时间的数值
-多长时间之内,+超过多少时间,等于多少时间
find /etc -mmin -120 查找120分钟之内,被修改过的文件/目录
【注3】两组范围应用的“连接符”
第一组: -a -o
-a and 逻辑与
-o or 逻辑或
find /etc -amin -120 -a -amin +80 查找修改属性120>min>80的文件/目录
第二组: -exec
固定格式: find ________ -exec 命令 {} \;
find ________ -ok 命令 {} \;
区别:exec不会询问是否确认,ok会询问是否确认。
其中:
{} 表示find查询的结果
\ 转义字符:使“符号或者命令”使用它本身
; 语句结束
例
find /etc -name *.txt -exec ls -l {} \;
find /etc -name *.txt -exec \rm {} \;
find /etc -name oldboy -exec rm -rf {} \;
第三组:使用“管道”
find /test -name *test | xargs 命令
(5)type文件类型
-type f 二进制文件
-type d 目录
-type l 软链接文件
(6)特殊案例:-inum 根据i结点进行删除
find /tset -inum 16 -exec rm {} \; 查找i结点为16的文件/目录进行删除
3、locate (查找速度比find快)---此命令在unix中有时候不存在
【注】要配合updatadb命令进行使用
updatedb 执行权限root 语法:updata 功能:建立整个系统目录文件的数据库
【介绍locate】
locate 执行权限:所有用户 功能:寻找文件/目录
语法:locate [搜索关键字]
提示:locate虽然超找速度快,但是locate查找具有局限性,局限性表现在“查找范围”,locate只能查找系统目录文件的数据库中的文件/目录。
因此,如果当前的“系统目录文件的数据库”没有及时更新,有些文件/目录是查找不到的。
所以,要配合updatedb命令进行更新“系统目录文件的数据库”后再查找。一般情况下,Linux系统会自动定期执行updatedb命令进行及时的更新“系统目录文件的数据库”。
5、grep 文件的搜索工具:“过滤”(在文件中搜寻字串匹配的“行”并输出)
grep [指定字串] [源文件]
【选项介绍】
-v 忽略
grep -E(同时过滤多个字符串)
(1)
grep 'test' d* 在文件名为d*下搜索字符串为'test'的并打印出来
find /data -name "da*" -type f | xargs grep 'ee' 搜索到多个文件,在查找文件中(而不是目录中)有关键字为'ee'的项,并打印输出
(2)
grep -v 'test' oldboy.txt 不包含'test'的输出
(3)
grep [^0-3] oldboy.txt 查找oldboy.txt中不包含0-3的内容
grep ^[^0-3] oldboy.txt 查找oldboy.txt中不以0-3为开头的内容
(4)行首^ 行尾$
查找空白行 grep '^$' oldboy.txt
查找以.结尾 grep '\.$' oldboy.txt
(5).一个元素 _*表示0个_元素或者0个以上的_元素
例子
grep 'QQQ*' oldboy.txt 查找两个或者两个以上的包含Q的内容(至少两个Q)
grep g..d oldboy.txt g和d中间只有两个任意元素
grep g.*d oldboy.txt g和d中间有任意个数的任意元素
grep g'[0-9][0-9]*' oldboy.txt g和d中间有任意个数的数字元素
三、帮助命令
0、makewhatis
建立whatis和apropos搜索时所使用的数据库,当使用whatis和apropos发生错误是,就是whatis和apropos所使用的的数据库没有简历,应该先用makewhatis建立下。
1、man (manual) 查看“命令、配置文件”的帮助信息
man 命令/配置文件
提示:man会调用more命令进行浏览帮助文档
示例
man ls 查看命令的帮助信息(作用、语法etc)
【注】查看配置文件的格式,man + 配置文件名称
man services 查看配置文件services的帮助信息
man /etc/services 错误!因为man查看配置文件的信息时,只能加“配置文件的名字”,不能带上路径
【特别的:配置文件和命令同名的情况:】在查看配置文件的信息时,有一个关键字passwd很特殊,
因为我们知道:
passwd是一个命令(它可以修改用户的密码),但是/etc/passwd是一个保存了用户相关信息的“配置文件”,因此:带来了下面的额问题————man passwd 表示的是查看pass命令的帮助信息?还是查看了/etc/pass配置文件的帮助信息?
答:此时查看的是pass命令的帮助信息。那么怎么进行查看pass配置文件的帮助信息呢?
【知识介绍】在进行用man查看帮助信息时,有个先后顺序:见下图
配置文件和命令同名的情况:
1,也是默认情况下:命令
5:配置文件
man passwd
man 5 passwd
2、info 只是和man的排版不一样
3、
(1)whatis 我只想知道某个命令是怎么用的,最基本的信息; 不需要像man查看出来的那么详细的帮助信息 (相当于man -k)
格式:
whatis 命令 例:whatis ls
(2)apropos 配置文件 例: 相当于man-k
4、命令 --help (此时只是查看命令的“选项”)
chmod --help
5、help 查看shell内置命令的帮助信息
【注】有些命令用man可能查不到,它可能就是shell的内置命令。那么怎么查看某个命令是shell的内置命令?用:man bash,看下图中的红框中的内容全是内置命令!
格式:
help 命令 例:help cd
help命令会显示被查询的shell内置命令“怎么使用”、“选项”