文件基本操作

Linux文件管理

一、Linux与Windows目录结构对比
1.1 Linux以单根的方式组织文件 所有目录和文件都是从/开始
Windows是多根目录结构 C: D:盘都是目录起点
1.2 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用户的HOME
/proc # 虚拟的文件系统,反映出来的是内核,进程信息或实时状态
cat /proc/meminfo:内存信息
cat /proc/cpuinfo:cpu信息
/var #存放的是一些变化文件,比如数据库,日志,邮件....
/tmp #系统临时目录,系统会定时删除该目录下长时间没有访问的文件。
/media # 移动设备默认的挂载点
/mnt # 手工挂载设备的挂载点
/opt # 早期第三方厂商的软件存放的目录.
/tmp # 临时存放文件,类似于回收站,超过十天自动删除
1.3 常用配置文件存放路径
/etc/sysconfig/network-script/ifcfg-*,网络配置文件
/etc/hostname,系统主机名配置文件
/etc/resolv.conf,dns客户端配置文件
/etc/hosts,本地域名解析配置文件
/etc/fstab 系统挂载目录 开机自启动挂载列表
/etc/passwd 系统用户文件
1.4绝对路径与相对路径
绝对路径: 从/开头的路径 /home ~/backup
相对路径: 相对于当前目录开始
1.5文件详细属性各部分解析,通过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 链接文件
二、常用的文件管理命令
2.1 tree命令(目录树的格式查看文件)
要先安装tree命令,执行yum install tree -y
tree -a 目录 # 显示所有文件,包括隐藏文件
tree -d 目录 # 只显示子目录
tree -L 1 目录 # -L 遍历目录的最大层数,-L后应该是大于0的正整数
tree -F 目录 # -F 在条目后加上文件类型的指示符号,例如会在显示出的目录后面加上左斜杠/

2.2 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

2.3 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 //该路径下不存在的目录统一进行创建

2.4 stat命令(查看文件时间)
Linux文件有三种时间,用stat查看
例如:stat anaconda-ks.cfg

访问时间:atime,查看内容,用cat检测
修改时间:mtime,修改内容
改变时间:ctime,修改内容,修改权限等属性,凡是有改动都会变

2.5 文件内容查看命令(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行内容

三、文本编辑
3.1 vi与vim区别与扩展用法
vi不显示高亮颜色语法
vim显示高亮颜色语法。
其他功能没有什么区别。
默认vi是安装的 , vim需要通过yum install vim -y

3.2 vi编辑器的操作模式
##命令行模式:在编辑模式下按下ESC键返回命令行模式。
vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。
##编辑/插入模式:输入a、i、o之一
在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。
a:进入插入模式并在光标之后进行添加。
i:进入插入模式并在光标之前进行插入。
o:进入插入模式并在当前(光标所在)行之下开启新的一行。
##扩展/末行模式:输入冒号:
在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。

3.3 在vi编辑器中光标的移动
$ 光标移动到当前行的几位
0 光标移动到当前行的行首
G 光标移动到文末
gg 光标移动到文首
nG n为数字,输入数字+G表示移动到第n行
H 光标移动到当前屏幕第一行行首
M 光标移动到当前屏幕中间行行首
L 光标移动到当前屏幕末行行首

3.4 vi编辑器中复制删除操作
dd 删除光标所在的行
ndd n为数字,键入数字+dd表示删除当前行开始的n行
yy 复制光标所在的行
nyy n为数字,复制光标所在位置开始的共n行
p 将已复制的内容粘贴到光标下一行
P 将已复制的内容粘贴到光标上一行
u 在未退出当前vi编辑器的前提下,恢复上一次的操作

3.5 末行模式下的操作
:w 保存当前内容
:q 退出当前编辑
:w! 强制保存
:q! 强制退出

3.6 设置环境(临时设置)
:set nu 显示行号
:set ic 不区分大小写
:set nonu 取消行号
:set noic 取消不区分大小写设置

3.7 echo命令(将输出内容添加到文本中)
echo "123" > 1.txt 将文本内容123覆盖到1.txt文档中,该方式会删除文本中原内容
echo "456" >> 1.txt 将文本内容456追加方式添加到1.txt文档中,该方式不会删除原文档内容

四、文件管理之打包压缩
zip、unzip软件包需要安装,安装命令为 yum install zip unzip -y
4.1 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/目录下

4.2 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/目录下

五、扩展命令,查看系统状态以及服务状态
5.1 netstat命令
netstat 查看当前系统所有启动服务占用的端口信息
netstat -tulnp |grep sshd 查看sshd服务占用端口信息

5.2 ps命令
ps axu 查看当前系统所有启动服务的进程信息
ps axu|grep sshd 查看sshd服务的进程信息

5.3 df命令
df 查看服务器磁盘信息(默认以字节单位显示)
df -Th 查看服务器磁盘信息(以MB单位显示)

5.4 free命令
free 查看服务器内存使用信息(默认以字节单位显示)
free -m 查看服务器内存信息(以MB单位显示)

5.4 lsof命令
lsof 查看当前系统所有文件占用信息
lsof -i:22 查看当前22端口sshd服务的占用信息

5.5 top命令
top 查看当前系统CPU、内存信息以及占用率等信息

原文地址:https://www.cnblogs.com/ltyc/p/14013112.html