二、linux文件管理一
1.快捷键
编辑命令:
Ctrl + a 移到命令行首
Ctrl + e 移到命令行尾
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Ctrl + w 从光标处删除至字首(以空格分割)重新执行命令:
ESC + . 打印之前执行过的命令的最后一部分 以空格为分隔符控制命令:
Ctrl + l 清屏
Ctrl + c 终止命令Tab键 : 自动补全(yum -y install bash-completion插件,重启生效)
上下箭头 查看之前执行过的命令
history 历史命令
2.Linux目录结构
在linux系统中一切皆文件
2.1 WINDOWS/LINUX 对比
Windows: 以多根的方式组织文件 C:\ D:\ E:\
Linux: 以单根的方式组织文件"/"
2.2 简介
which 命令 #(查看命令位置信息)
目录:
bin # (存放命令) 软链接指向usr/bin
sbin #(管理员命令)软链接指向usr/sbin
etc #(存放配置文件)
home #(普通用户的家目录)
dev #(存放设备文件)
2.3 图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HGFzBL8x-1677546210500)(C:\Users\lele\AppData\Roaming\Typora\typora-user-images\image-20230209094047551.png)]
2.4 目录功能
dev 设备文件 /dev/sda,/dev/sda1
ll /dev/sd* #查看dev下的sd开头的文件
brw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sda
brw-rw----. 1 root disk 8, 1 Oct 31 14:16 /dev/sda1
brw-rw----. 1 root disk 8, 2 Oct 31 14:16 /dev/sda2
tty #查看当前终端
/dev/pts/0 #这是我们的终端。
/root #root用户的家目录
/home #存储普通用户家目录
lost+found #这个目录平时是空的,存储系统非正常关机而留下“无家可归”
的文件
/usr #系统文件,相当于C:\Windows
/usr/local #软件安装的目录,相当于C:\Program
/usr/bin #普通用户使用的应用程序
/usr/sbin #管理员使用的应用程序
/usr/lib #库文件Glibc 32bit
/usr/lib64 #库文件Glibc 64bit
/boot #存放的系统启动相关的文件,例如kernel
/etc #配置文件(系统相关如网络/etc/sysconfig/network)
/tmp #临时文件(系统:程序产生的临时文件)
/opt #空目录
/var #存放的是一些变化文件,比如数据库,日志,邮件....
/proc #虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
==设备(主要指存储设备)挂载目录==
/mnt #系统提供这个目录是让用户临时挂载其他的文件系统
路径分类
绝对路径:从根开始的路径是绝对路径。
相对路径:凡是非根开始的路径
使用pwd命令查看当前所在的绝对路径:
3.文件管理
3.1 文件类型
【 - 】 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
【 d 】 目录文件(蓝色)
【 b 】 设备文件 block device 设备文件,如硬盘,U盘;
【 c 】 设备文件 字符设备文件,比如我们的终端tty1,打印机。
【 l 】 symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)
【 s 】 socket 即套接字文件,用于实现两个进程进行通信
【 p 】 管道文件
3.2示例1
查看各式各样的文件类型。
ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
-rwxr-xr-x. 1 root root 117656 Nov 6 2016 /bin/ls
srw-rw-rw-. 1 root root 0 Oct 31 14:16 /dev/log
brw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sda
crw--w----. 1 root tty 4, 1 Oct 31 14:42 /dev/tty1
lrwxrwxrwx. 1 root root 22 Oct 31 12:11 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
drwxr-xr-x. 2 root root 6 Nov 5 2016 /home
prw-------. 1 root root 0 Oct 31 14:16 /run/dmeventd-client
注意
通过颜色判断文件的类型是不一定正确的!!!
4.文件管理命令
4.1 切换目录—cd
# . 表示当前目录
# cd .. 回到上一级目录等同于相对路径
# cd 或者 cd ~ 直接回到家目录
# cd /home/alice 切换目录=绝对路径
# cd - 回到原来目录
4.2 创建文件
# touch file1.txt //无则创建,如果存在修改时间
# touch /home/file10.txt
# touch /home/{zhuzhu,gougou} //{}集合
# touch /home/file{1..20} //批量创建
格式:echo “内容” 输出内容
echo 加内容 > 加文件名 #覆盖:把之前的内容替换掉文件(如果文件不存在,自动创建)
例:echo lele > a.txt
echo 加内容 >> 加文件名 #追加:保留之前的内容,在后面添加新内容
echo 345345 >> a.txt
当使用echo 123 >> a.txt 这个命令的时候在文件不存在的时候会创建该文件并将内容追加到改文件中
4.3 创建目录
语法:mkdir -v 详细 -p 递归 目录
# mkdir dir1
创建两个目录:
# mkdir /home/dir2 /home/dir3
# mkdir /home/{dir4,dir5}
# mkdir -v /home/{dir6,dir7} #-v :verbose 冗长的。显示创建时的详细信息
# mkdir -p /home/dir8/111/222 #-p 创建连级目录,一级一级的创建
4.4.复制
复制 cp 原文件地址 目标地址
1.复制文件(1.目标地址文件不存在,就为自动改名 2.文件存在,会放进文件中)
2.复制目录(加-r)(可以多个目录文件)
-v 详细 -f 强制 -n 静默 -r 目录(递归,不加-r就是复制普通文件)
# mkdir /home/dir{1,2} #创建目录
# cp -v anaconda-ks.cfg /home/dir1/ #-v 显示详细信息
# cp anaconda-ks.cfg /home/dir1/test.txt #复制并改文件名
# cp -r /etc /home/dir1 #-r 拷贝目录使用,连同目录里面的文件一块拷贝
语法: cp -r 源文件1 源文件2 源文件N 目标目录 #将多个文件拷贝到同一个目录
# cp -r /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hosts .
# cp -r /etc /tmp
4.5 移动
mv 源文件地址 目标文件地址
(1.可以变更文件名2.也可以文件之间移动覆盖)
1.创建一个新文件file1
# touch /root/file1
2.把file1文件移动到/tmp目录中。
# mv /root/file1 /tmp/
# ls /tmp/file1
/tmp/file1
3.把file1文件更名为file2
# mv /tmp/file1 /tmp/file2
4.观察file1文件已经更名为file2
# cd /tmp/
[root@linux-server tmp]# ls
file2
4.6 删除
==删除 rm -r 递归删除目录 -f force强制 -v 详细过程 *通配符
实例1:删除/home/dir1
# cd /home/
# rm -rf dir1/
-r 递归,删除目录时
-f force强制
-v 详细过程
示例2:
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -rf /home/dir10/* //不包括隐藏文件
# ls /home/dir10/ -a
. .. .file4
示例3:
# touch {1..10}.txt
# touch file{1..20}.txt #创建file1-10的txt文件
# rm -rf file1*
4.7 查看文件内容
cat—查看一个文件的全部内容
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...
参数:
-n 显示行号
-A 包括控制字符(换行符/制表符)
head头部
# head /etc/passwd //默查看前十行
# head -2 /etc/passwd //默认查看前两行
tail尾部
# tail /etc/passwd //默认查看文件的后十行
# tail -1 /etc/passwd //查看文件最后一行
# tail /var/log/messages
# tail -f /var/log/secure //-f 动态查看文件的尾部
# tailf /var/log/secure //功能同上
grep过滤关键字 grep 针对文件内容进行过滤
过滤文件中带有root的内容:
grep 'root' /etc/passwd
过滤以root开头的行:^ --以什么开头
grep '^root' /etc/passwd
过滤以bash结尾的行:$ --以什么结尾
grep 'bash$' /etc/passwd
less --分页显示
less /etc/makedumpfile.conf.sample
1.空格键是翻页 回车键是翻行
2.上下箭头可以来回翻
3. /关键字 #搜索 (n按关键字往下翻 N按关键字往上翻)
4.快捷键:q -quit 退出
more --分页显示文件内容
# more 文件名
空格键是翻页 回车键是翻行
文件管理实战
在服务器上进行文件的基本管理操作
touch
mkdir
cp
rm
mv
cat
head
tail
less
more
文件编辑器
1、打开文件
vim 文件名
安装 yum -y install vim
2、工作模式
vi与vim的三个模式
进入编辑模式
i #在光标所在处进入编辑模式
o #在光标的下一行进入编辑模式
命令模式
光标定位键盘:
hjkl #上下左右
0 $ #行首行尾
gg #页首--文本顶端
G(shift+g) #页尾--文本底部
3G #进入第三行
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
文本编辑
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #删除一行
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
p #粘贴到本行的下一行
u #undo撤销
r #可以用来修改一个字符*
d^ #删除当前行光标之前的内容
d$ #删除当前行光标之后的内容
x #删除光标所在的字符
D #从光标处删除到行尾
扩展命令(尾行)模式:
shift+: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! #强制保存退出
:set nu #加行号
进入其他模式
ctrl+v #进入可视块模式
shift+v #进入可视行模式
查找替换
语法----> :范围 s/old/new/选项 范围 s/匹配项/替换项/选项
:s/world/nice/ #替换当前光标所在行
:3s/sbin/nice/ #替换指定行
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:%s/bin/soso/ #替换所有行
:%s/sbin/nice/g #替换行内所有关键字
:%s/sbin/nice/gi #替换行内所有关键字(不区分大小写)
注释:%表示替换所有行 g表示行内所有关键字 i不区分大小写 /只是通配符,也可以用其他符号
将文件另存(另存为)
语法----> :w 存储到当前文件
:w /tmp/aaa.txt #另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt
设置环境 :
:set nu #设置行号
:set list #显示控制字符
:set nonu #取消设置行号
文件基本信息 :
时间类型
stat 文件名
访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名
查询示例
# ls -l passwd
-rw-r--r--. 1 root root 839 Oct 31 21:29 passwd
# stat passwd
File: ‘passwd’
Size: 839 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33583688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-10-31 21:29:40.750993492 +0800
Modify: 2019-10-31 21:29:36.449993550 +0800
Change: 2019-10-31 21:29:36.452993550 +0800
Birth: -
注:ls -l 文件名 仅看的是文件的修改时间