Linux文件管理
一、Linux与Windows目录结构对比
Linux以单根的方式组织文件 所有目录和文件都是从/开始
Windows是多根目录结构 C: D:盘都是目录起点
-
Linux各目录用途
/bin
->usr/bin
# 普通用户使用的命令如ls、date
/sbin
->usr/sbin
# 管理员使用的命令
/boot
# 存放的启动相关的文件,例如kernel,grub(引导装载程序)
/usr
# 系统文件,相当于C:\Windows
/lib
->usr/lib
# 库文件Glibc
/lib64
->usr/lib64
# 库文件Glibc
/home
# 普通用户家目录
/root
# root用户的家目录
/proc
# 虚拟的文件系统,反映出来的是内核,进程信息或实时状态
cat /proc/meminfo
:通过该指令查看内存信息
cat /proc/cpuinfo
:通过该指令查看cpu信息
/var
#存放的是一些变化文件,比如数据库,日志,邮件…
/tmp
#系统临时目录,系统会定时删除该目录下长时间没有访问的文件<类似于回收站,默认超过十天自动删除。
/media
# 移动设备默认的挂载点
/mnt
# 手工挂载设备的挂载点
/opt
# 早期第三方厂商的软件存放的目录. -
常用配置文件存放路径
/etc/sysconfig/network-script/ifcfg-*
,网络配置文件
/etc/hostname
,系统主机名配置文件
/etc/resolv.conf
,dns客户端配置文件
/etc/hosts
,本地域名解析配置文件
/etc/fstab
系统挂载目录 开机自启动挂载列表
/etc/passwd
系统用户文件 -
绝对路径与相对路径
绝对路径: 从/开头的路径 /home ~/backup
相对路径: 相对于当前目录开始 -
文件详细属性各部分解析,通过
ls -l /
命令查看
-rw-r--r--.
权限,后面的点代表是否在selinux开启的情况下(enforcing或者permissive都属于开启)创建的文件
1 文件和硬链接个数
root 属主
root 属组
0 文件大小,单位字节
11月 20 14:02 文件修改时间
a.txt 文件名字
- 权限的第一个为代表文件类型
格式 说明
- 普通文件(文本, 二进制, 压缩包, 图片, 日志等)
d 目录文件
b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
s 套接字文件, 进程间通信(socket)
p 管道文件
l 链接文件
二、常用的文件管理命令
-
tree命令(目录树的格式查看文件)
要先安装tree命令,执行yum install tree -y
tree -a 目录
# 显示所有文件,包括隐藏文件
tree -d 目录
# 只显示子目录
tree -L 1 目录
# -L 遍历目录的最大层数,-L后应该是大于0的正整数
tree -F 目录
# -F 在条目后加上文件类型的指示符号,例如会在显示出的目录后面加上左斜杠/ -
touch命令用法(创建文件)
touch file1.txt
//无则创建,有则修改时间
touch /home/file10.txt
在home目录下创建file10.txt文件
touch file{1..20}
在当前目录创建file1,file2直到名称为file20的文件
touch {T,t}est.txt
//等价touch Test.txt test.txt -
mkdir命令(创建目录)
mkdir dir1
在当前路径创建名称为dir1的目录
mkdir /home/dir2 /home/dir3
同时在/home目录下创建名称为dir2,dir3的目录
mkdir /home/{dir4,dir5}
同时在/home目录下创建名称为dir4,dir5的目录
mkdir -p /home/dir8/111/222
//该路径下不存在的目录统一进行创建 -
stat命令(查看文件时间)
Linux文件有三种时间,用stat
查看
例如:stat anaconda-ks.cfg
访问时间:atime
,查看内容,用cat
检测
修改时间:mtime
,修改内容
改变时间:ctime
,修改内容,修改权限等属性,凡是有改动都会变 -
文件内容查看命令(
cat
、less
、more
、tail
、head
)
cat /etc/hosts
查看hosts文件内容并显示在当前终端
more /etc/passwd
# 使用more命令之后,每次在屏幕上显示一屏(一页)的文件内容,并且在屏幕的尾部将会出现“—More--(n%)
”的信息,其中,n%
是已经显示文件内容的百分比。按空格
下一页,按b
上一页,more +40 a.txt
从第40行开始查看
tail -100f /var/log/messages
动态查看/var/log/messages
文件最后一百行内容,常用于查看服务日志
head /etc/passwd
查看/etc/passwd
文件前10行内容,head
默认查看文件前10行
head -2 /etc/passwd
查看/etc/passwd
文件前2行内容
三、文本编辑
vi
与vim
区别与扩展用法
vi
不显示高亮颜色语法
vim
显示高亮颜色语法。
其他功能没有什么区别。
默认vi
是安装的 , vim
需要通过yum install vim -y
vi的文本编辑操作
-
vi
编辑器的操作模式
命令行模式:在编辑模式下按下ESC键返回命令行模式。-
vi
的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。 -
编辑/插入模式:输入
a
、i
、o
(一次只能用一个)
在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。
a
:进入插入模式并在光标之后进行添加。
i
:进入插入模式并在光标之前进行插入。
o
:进入插入模式并在当前(光标所在)行之下开启新的一行。 -
扩展/末行模式:输入冒号:
在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。
如:wq
就是退出并保存
-
在vi编辑器中光标的移动
$
光标移动到当前行的几位
0
光标移动到当前行的行首
G
光标移动到文末
gg
光标移动到文首
nG
n为数字,输入数字+G表示移动到第n行
H
光标移动到当前屏幕第一行行首
M
光标移动到当前屏幕中间行行首
L
光标移动到当前屏幕末行行首
vi编辑器中复制删除操作
dd
删除光标所在的行
ndd
n为数字,键入数字+dd表示删除当前行开始的n行
yy
复制光标所在的行
nyy
n为数字,复制光标所在位置开始的共n行
p
将已复制的内容粘贴到光标下一行
P
将已复制的内容粘贴到光标上一行
u
在未退出当前vi编辑器的前提下,恢复上一次的操作
末行模式下的操作
:w
保存当前内容
:q
退出当前编辑
:w!
强制保存
:q!
强制退出
设置环境(临时设置)
:set nu
显示行号
:set ic
不区分大小写
:set nonu
取消行号
:set noic
取消不区分大小写设置
echo命令(将输出内容添加到文本中)
echo "123" > 1.txt
将文本内容123覆盖到1.txt文档中,该方式会删除文本中原内容
echo "456" >> 1
.txt 将文本内容456追加方式添加到1.txt文档中,该方式不会删除原文档内容
四、文件管理之打包压缩
zip、unzip软件包需要安装,安装命令为 yum install zip unzip -y
-
tar
命令(打包压缩格式为tar.gz)
命令用法
打包压缩:tar -czvf 生成文件名 tar.gz 目标
需要打包的目录或文件如:
tar -czvf 1.tar.gz 1/
将当前目录下名称为1的目录打包为1.tar.gz文件解压:
tar -xvf 要解压的文件
tar -xvf 1.tar.gz
将1.tar.gz压缩包解压到当前目录
tar -xvf 1.tar.gz -C /usr/
将1.tar.gz解压到/usr/目录下 -
zip
、unzip
命令(压缩格式为.zip文件)
命令用法
打包压缩:zip -r 生成文件名.zip格式 需要打包的文件或目录
如:
zip -r 1.zip 1/
将当前目录下名称为1的目录递归压缩为1.zip压缩包解压:
unzip zip文件
unzip 1.zip
将1.zip压缩包解压到当前目录下
unzip 1.zip -d /usr/
将1.zip压缩包解压到/usr/目录下
五、扩展命令,查看系统状态以及服务状态
netstat
命令(查看占用端口)
netstat
查看当前系统所有启动服务占用的端口信息
netstat -tulnp |grep sshd
查看sshd服务占用端口信息
ps
命令(查看进程)
ps axu
查看当前系统所有启动服务的进程信息
ps axu|grep sshd
查看sshd服务的进程信息
df
命令(查看磁盘)
df
查看服务器磁盘信息(默认以字节单位显示)
df -Th
查看服务器磁盘信息(以MB单位显示)
free
命令(查看内存使用)
free
查看服务器内存使用信息(默认以字节单位显示)
free -m
查看服务器内存信息(以MB单位显示)
lsof
命令(查看文件占用)
lsof
查看当前系统所有文件占用信息
lsof -i:22
查看当前22端口sshd服务的占用信息
top
命令(查看CPU、内存等)
top
查看当前系统CPU、内存信息以及占用率等信息