Linux笔记 Chapter 2#
PREV 1.x Linux初步与环境安装 | NEXT 3.x vi/vim文本编辑器
2.1 文件处理命令#
ls#
ls 选项 [-al] [文件或目录]
a:显示所有文件,包括隐藏文件
l:显示详细信息
权限:所有用户(此后如不显示,则为所有用户)
描述:显示文件目录
touch#
touch [文件名]
:创建一个空文件
mkdir#
mkdir [-p选项表示递归创建文件夹] [文件夹名称]
:创建一个文件夹
cp#
cp [源文件] [目标文件]
cp -r [源目录] [目标目录]
描述:复制文件或目录
rm#
rm -f [文件]
rm -r [目录]
rm -rf [目录,包含目录下内容]
描述:删除文件或目录
cat#
cat [文件名称]
:查看文件内容(内如过多,显示内容可能不全)
more#
more [文件名称]
:查看文件内容,可完全显示。用法:使用空格进行翻页,回车显示下一行,q退出(或者ctrl+c)
head#
head -number [文件名]
:查看文件的前多少行
tail#
tail -number [文件名]
:查看文件的后多少行
mv#
mv [源文件名称] [新文件名称]
:修改文件名称mv [源文件名称] [新文件位置+ 新文件名称]
:移动文件位置
ln#
ln -s [源文件] [目标文件](硬链接则不需要-s选项)
:创建软链接文件
软链接特点:权限是所有人都可以访问,并且软链接文件指向源文件。软链接就像Windows系统中的快捷方式一样,特点也都类似。
硬链接:类似copy,硬链接大小和源文件一样,并且是同步更新的。
另外:硬链接不能跨文件系统分区,而软链接可以。
2.2 权限处理命令#
chmod#
chmod [{ugo}{+-=}{rwx}] [文件或目录]
chmod [mode=421] [文件目录]
改变文件或目录的权限,形如:chmod g+w filename
,chmod 761 filename
文件的rwx权限:
r
:可以执行catch、more等读操作w
:修改文件的内容等写操作,但是不代表可以把这个文件删除x
:对文件进行执行操作
目录的rwx权限:
r
:可读操作,可以列出目录的内容,比如ls命令w
:表示可以在目录下创建或删除文件的权限x
:表示可以进入这个目录(基本上所以的目录都会有rx权限)
所以,删除文件的权限,是拥有当前文件所在的目录的写权限。
文件目录权限总结
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可查看文件内容 | 可列出目录中的内容 |
w | 写权限 | 可修改文件内容 | 可在目录中创建、删除文件 |
x | 执行权限 | 可执行文件 | 可进入目录 |
chown#
chown user 文件
:改变文件的所有者。示例:chown tc110 out.log
useradd username
:添加用户passwd username
:为用户设置密码
chgrp#
chgrp group 文件
:改变文件的所属组。示例:chgrp adm t1.sh
查看系统默认的权限:
umask -S
(umask查看权限掩码值022 使用777-022得到真实权限)
2.3 文件搜索命令#
find#
find [搜索范围路径] -name 【文件名称】(根据文件名查找)
find [搜索范围路径] -size [(+-)文件大小](根据文件大小查找,大于+ 小于-)
find [搜索范围路径] -user(文件的所有者)
find [时间查找] [以天为单位]
[以天为单位] 1 ctime、atime、mtime
[以分钟为单位] 2 cmin、amin、mmin
查找任何文件或目录(所有)。find命令示例:
find [搜索范围路径] -name
:find /etc -name init
匹配任意字符 *
:find /etc -name *init
匹配指定字符 ?
:find /etc -name ?init
find [搜索范围路径] -size [+-文件大小](根据文件大小查找,大于+小于-)
注意,对于文件的大小是以数据块为单位。数据块大小是512bit
形如:如需查找100M的文件,那么就要知道100M为多少block?
100M = ? block
1M = 1024K
100M = 102400K
1K = 2 block
100M = 2*102400 block
find [搜索范围路径] -user(文件的所有者)
:查找隶属于某个用户的文件
find /home -user root -name out*
find [时间查找] [以天为单位]
天:
ctime
、atime
、mtime
分钟:
cmin
、amin
、mmin
c
表示:change改变文件属性的意思(比如所有者、所属组、权限变更)a
表示:access表示被访问过的意思(比如被查看过等)m
表示:modify更改内容的意思在时间前面添加:
-
表示之内,+
表示之外:find /home -mmin -120
find应用的连接符:
-a
(and的意思,逻辑与):find /etc -size +1024 -a -name ca*
-o
(or的意思,逻辑或)
find根据文件类型进行查找:-type
。其中:f
表示二进制文件,l
表示软链接文件,d
表示目录
find /home -type d
find /home -type d -o -name out.log
find的连接执行符号:find ... -exec [执行命令] {} \;
注意:”{}”表示find命令查找的结果,而””表示转义符
find ... -exec [执行命令] {} \;
find ... -ok [执行命令] {} \;
ok和exec的区别就是ok有询问确认的意思
find /etc -name init* -a -type f -exec ls -la {} \;
find -inum [i节点标号]
:根据i节点查找文件,在Linux系统中,所有的文件都有一个唯一的标识,方便Linux内核去调用,这就是i节点
[root@tc110 home]# ll -i
13 -rw-r--r--. 1 root root 54 Feb 12 06:08 error.log
[root@tc110 home]# find /home -inum 13
/home/error.log
which#
which [命令名称]
:查看命令所在的目录位置
在Linux里面一般只有两种命令,第一种是所有用户都可以使用,第二种则是只允许管理员使用,还有一个命令叫
whereis
,和which
使用类似比如:rm命令,可以使用
which rm
查看其命令内容:
[root@tc110 home]# which rm
alias rm='rm -i'
/bin/rm
alias就是别名的意思,说明使用的rm
命令在默认的情况下加了-i
选项,意思是在删除的时候进行询问是否需要删除,那么添加””就使用真正的rm
命令而不是别名,直接就可以删除不需要提示询问。
locate#
locate [文件名称]
:查找文件,根据Linux数据库内部的索引(updatedb
命令,可以手工更新updatedb数据库,一般和locate配合使用)
注意:locate的查找速度非常快,比find查找快很多,原因是locate查找的是Linux系统构建的文件数据库的索引值,所以速度非常快,但是有的时候新创建的文件使用locate命令查找不到,原因是这个文件的索引没有马上更新到Linux系统文件数据库里。
man#
man [命令或者配置文件]
:帮助命令,非常的有用,可以获得命令的帮助文档,如何使用等
whatis#
whatis [命令]
:查看命令的描述
–help#
[命令] --help
:查看命令的选项用法。
2.4 压缩解压缩命令#
gzip#
gzip [文件名称]
:压缩的时候不保留原文件,并且只能压缩文件不能压缩目录
gunzip#
gunzip [已压缩的文件]
:解压缩文件,不保留源文件
tar#
tar [zcvf] [zxvf] [打包文件名.tar.gz] [源文件]
-c 产生tar打包文件(必选)
-x 产生的解压缩文件(必选)
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
打包目录生成的后缀名.tar.gz
,或者进行解压。最后配置加-C
表示文件解压后存放的路径
file#
file命令可以查看任何文件的类型
zip#
zip 选项[-r] [压缩后文件名称] [源文件]
:zip的格式是Windows和Linux通用的格式,可以压缩文件和目录,压缩目录时需要选项-r
unzip#
unzip [解压缩的文件]
:进行解压缩。最后配置加-d
表示文件解压后存放的路径
2.5 其它命令#
ping#
排查ping不通对方网络:
首先ping一下回环地址127.0.0.1检查自己本机的网络协议是否正确
再ping一下本机ip查看自己本机的网络是否正确
然后检查对方网络设置、防火墙、插件等
如果发现丢包率里有丢失数据包,可能是网络、网线的原因
ping配置选项
ping -c 6 192.168.1.110
(表示ping 6次之后断开)ping配置选项
ping -s 60000
(最大65507)
ifconfig
:查看网卡信息shutdown -h now
:关机reboot
:重启ctrl + l
:清屏ctrl + c
:退出应用tab键,信息补全
grep#
过滤:grep,可以将指定内容进行过滤然后输出。
管道:将一个命令的输出传送给另一个命令,作为另外一个命令的输入。管道可以连接N个命令。
ls -l /etc | more
(表示将ls -l /etc
的输出,当做more命令的输入,即more命令浏览的内容为前面命令的输出结果)ls -l /etc | grep init
(表示将ls -l /etc
的输出结果进行过滤,显示为init的结果)ls -l /etc | grep init | wc -l
(最后进行统计显示的个数)
逻辑与(&&)#
形如:ls && pwd
(第一个命令如果执行成功。第二个命令才会执行)
逻辑或(||)#
形如:ls || pwd
(第一个命令执行成功,则第二个不执行;第一个命令执行失败,则执行第二个)
重定向#
输入输出重定向:Shell对每一个进程预先定义了3个文件描述字(0,1,2)
0(stdin)标准输入
1(stdout)标准输出
2(stderr)标准错误输出
输出重定向:就是把输出的结果显示到一个文件上(>表示输出重定向)
ll /home > /home/out.log
如果想进行结果的追加,使用”>>”
date >> /home/out.log
输入重定向:就是把输入的信息重定向,比如把一个文件里的内容,进行发出
wall < /home/out.log
错误重定向:一般是把程序执行的错误日志信息存放到指定的log日志中
ll /abcdefg 2> /home/error.log