文件管理
# mkdir 新建文件夹
格式:mkdir [选项] 目录
例子:mkdir -p /path/to/directory
,递归创建/path/to/directory
# cd 切换目录
格式: cd 目录
例子: cd ..
,进入上一级父目录
# pwd 显示当前路径
格式: pwd [选项]
例子: pwd
,查看当前所在目录
# ls 列出文件
ll 是 ls -l 的别名,参数 -l 成为长格式,列出当前文件夹下的详细内容。
从左到右依次是:文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后访问(修改)时间等。
第一部分是文件类型:- 普通文件 , d 目录文件,I 链接文件,p 管理文件, b 块设备文件, c 文件, s 套接字文件
第二部分是权限模式:r表示读取(read)、w表示写入(write),x表示执行(execute)
ls -a, a为all的首字母缩写,该命令可以列出系统的隐藏文件,隐藏文件以“.”开头。
# find 查找文件
find 命令在指定目录查找文件。语法:
find path -option [-print] [-exec -ok command] {} \;
- path 表示查找目录的范围,即在哪里找文件,可以用Linux默认目录表示,例如:. (当前目录),~ (家目录),/ (根目录)。
- option 表示查找规则条件,例如:按文件名(-name)查找文件。
- print 表示把查找结果标准输出,一般为默认选项,可以不写。
- exec 和 ok 可以对查找结果做进一步的指令操作,它们两者的不同在于 ok 在操作前询问用户,而 exec 不会。
- "{} ;"为固定格式,它们之间有空格。
按照文件名(-name)查找文件
# 查找家目录中扩展名为“.log”的文件
find ~ -name "*.log"
# 查找 /etc/ 目录下以c开头或以conf结尾的文件
find /etc/ -name "c*" -o -name "*conf"
2
3
4
5
按文件大小(-size)查找文件
# 查找/tmp目录下小于512KB的文件
find /tmp -size -512k
2
按时间戳(-atime/-mtime/-ctime)查找文件
atime:access time,通常为最后读文件的时间;
mtime:modified time,通常为最后写文件的时间;
ctime:change time,通常为最后改变文件权限属性的时间。
时间戳参数还可以用分钟为单位,-atime/-mtime/-ctime对应-amin/-mmin/-cmin
可以通过 stat 命令查看文件的信息
[root@localhost0131 ~]# stat /etc/ssh/sshd_config
File: ‘/etc/ssh/sshd_config’
Size: 3907 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 354805 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2024-06-23 09:15:10.048000526 +0800
Modify: 2019-08-09 09:40:39.000000000 +0800
Change: 2021-11-28 20:45:26.638590177 +0800
Birth: -
2
3
4
5
6
7
8
9
10
# touch 新建空文件
touch命令可以新建空文件,更新文件修改时间
格式: touch [选项] 文件
例子: touch foo.txt
,创建foo.txt空文件
# mv 剪贴或重命名文件或文件夹
格式: mv [选项] 源文件或目录 目标文件或目录
例子: mv foo.txt foo.txt.backup
,将文件foo.txt重命名为foo.txt.backup
mv foo.txt backup
,将文件foo.txt移动到目录backup中
# cp 复制文件或文件夹
格式: cp [选项] 源文件或目录 目标文件或目录
例子: cp foo.txt foo.txt.backup
,将文件foo.txt拷贝一份副本foo.txt.backup
cp foo.txt backup
,将文件foo.txt复制到目录backup中
# rm 删除文件或文件夹
格式: rm [选项] 文件或目录
例子: rm foo.txt
,删除文件foo.txt
rm -rf foo
,将文件夹foo及其子文件夹中所有内容删除,其不用一一确认
# cat 查看文件全部内容
cat将一个文件的内容发送到标准输出设备,例如显示屏。
格式: cat [选项] 文件
例子: cat /etc/ssh/sshd_config
,显示文件sshd_config的内容
cat -n /etc/ssh/sshd_config
,显示文件sshd_config的内容,同时在文件每行前进行编号
# more 与 less 分屏查看长文件内容
more 命令从前向后读取文件。
格式: more [选项] 文件
例子: more /etc/ssh/sshd_config
按键 | 用途 |
---|---|
按【Space】空格键 | 向下翻页 |
按【B】键 | 向上翻页 |
按【Q 】键 或 【Ctrl+C】组合键 | 退出当前界面 |
less是more命令的改良版,对more的交互快捷键是兼容的,支持【PgUp】和【PgDn】逐行阅读。
按键 | 用途 |
---|---|
按【PgUp】键 | 向上一行 |
按【PgDn】键 | 向下一行 |
按【Enter】键 | 向下一行 |
# head 与 tail 查看文件指定内容
head 命令后直接跟文件名称默认会显示文件的前10行,如果想指定查看的行数可以使用参数-n。
tail 命令,查看文件的后几行。-f 参数可以用来动态查看文件的最后几行,一般用于监控日志文件或实时文件,占用提示符窗口而不会退出。
head nohub.out # 查看文件nohub.out的前10行内容
head -20 nohub.out # 查看文件nohub.out的前20行内容
tail -20 nohub.out # 查看文件nohub.out的后20行内容
tail -n 20 -f nohub.out # 动态查看文件nohub.out的后20行内容
2
3
4
# vi 与 vim 编辑文件
vi 有三种基本工作模式:命令模式、插入模式和末行模式。
插入模式的常用快捷键:
快捷键 | 功能 |
---|---|
i | 在光标前插入 |
a | 在光标后插入 |
I | 在光标所在行行首插入 |
A | 在光标所在行行尾插入 |
o | 在当前行的下面另起一行,并变为插入模式 |
O | 在当前行的上面另起一行,并变为插入模式 |
插入模式的常用命令:
命令 | 作用 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后n个字符 |
dd | 剪切当前行/删除光标所在行 |
ndd | 剪切当前行以下n行/删除光标所在行后n行 |
D | 删除光标所在处到行尾的内容 |
dG | 删除光标所在行到文件末尾的内容 |
:n1,n2d | 删除指定范围的行 |
yy | 复制当前行 |
nyy | 复制当前行以下n行 |
yw | 复制单词 |
y$ | 复制光标到行尾 |
y^ | 复制行首到光标 |
p | 粘贴在光标所在行下 |
P | 粘贴在光标所在行上 |
fC | 快速移动到字符C |
rC | 替换光标所在处字符为字母C |
R | 从光标所在处开始替换字符,按Esc结束 |
u | 取消上一步操作 |
末行模式的常用命令:
命令 | 功能 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
:wq! | 保存退出。:wq 是 write (存盘) 和 quit (退出) 的组合命令。 |
:q! | 不保存强制退出 |
在末行模式中,值得一提的命令是查找与替换。
查找命令以 “/” 字符开始,后接被查找的字符,与 less 命令的查找快捷键相同。
命令 | 功能 |
---|---|
n | 跳转到下一个匹配字符串 |
N | 跳转到上一个匹配字符串 |
例如查找字母t,输入“/t”,屏幕中就会反白显示查找的内容。
替换命令由三个反斜杠(///)连接而成,第一个反斜杠之前表示替换的范围,第一个和第二个反斜杠之间表示需要被替换的字符串,第二个和第三个反斜杠之间表示替换成的字符串。
例如::20,30s/set/SET/g
表示替换20~30行的所有set为SET,参数g表示全局替换,如果不加参数g,表示只替换本行的第一个匹配的字符串。
常用的定位命令:
命令 | 功能 |
---|---|
gg | 跳到第一行 |
G | 跳到最后一行 |
nG | 跳到第n行 |
:n | 跳到第n行 |
0 | 移至光标所在行行首 |
$ | 移至光标所在行行尾 |