Linux自学笔记 | 06 常用命令 - 文件目录类
01 pwd
-
释义:print working directory 打印工作目录,即显示当前工作目录的绝对路径。
-
语法:
pwd [参数]
- 示例
# 显示当前工作目录绝对路径,结果为/root
pwd
# 根目录下有一个名为bin的目录,实际是一个链接,使用pwd命令
cd /bin # 先cd到该目录
pwd # 结果为/bin
pwd -P # 结果为/usr/bin
02 ls
-
释义:list 列出目录内容
-
语法:
ls [参数] [目录或文件]
-
-a
列出全部文件,包括隐藏文件
-
-l
列出文件详细信息
-
-h
列出文件信息时,占用空间用K、M等显示,而非只显示字节数
-
-i
查看该文件索引号
- 示例
# 列出当前目录内容,等价于ls ./
ls
# 列出当前目录所有内容,包括隐藏文件
ls -a
# 列出当前目录内容详细信息,等价于ll
ls -l
# 列出当前目录所有内容详细信息,包括隐藏文件
ls -alh
03 cd
-
释义:跳转到指定目录
-
语法:
cd [目录]
-
~
当前用户主目录(可省略该参数)
-
/
根目录
-
-
上一次使用的目录
-
.
当前目录
-
..
当前目录的上一层目录
- 示例
# 回到用户主目录,即home目录
cd ~
# 返回根目录
cd /
# 返回上一次目录
cd -
# 返回上一层目录
cd ..
# 跳转到usr下的local文件夹(绝对路径)
cd /usr/local
# (接上一步)跳转到usr下的etc文件夹(相对路径)
cd ../etc
04 mkdir
-
释义:make directory 新建文件夹
-
语法:
mkdir [参数] [文件夹] [...]
- 示例
# 在当前目录创建名为a的文件夹
mkdir a
# 在usr下创建名为temp的文件夹
mkdir /usr/temp
# 在当前目录下创建嵌套文件夹 如果不加参数-p则会创建失败
mkdir outer/inner
# 在当前目录创建文件夹x和文件夹y(一行命令)
mkdir x y
05 rmdir
-
释义:remove directory 删除一个空文件夹
-
语法:
rmdir [参数] [文件夹] [...]
-
示例:参考本文档 04 mkdir
06 touch
-
释义:创建空文件
-
语法:
touch [文件夹] [...]
- 示例
# 在当前目录下创建两个空文件(可以没有后缀)
touch file1.txt file2.txt
07 cp
-
释义:copy 复制文件
-
语法:
copy [参数] [原文件(夹)] [目标文件(夹)]
- 示例
# 复制当前目录中的a.txt文件到上一层目录并改名为b.txt
cp a.txt ../b.txt
# 将当前路径下的temp文件夹(包含其子文件)复制到当前路径的testdir文件夹下
cp -r temp testdir
08 rm
-
释义:remove 删除文件或文件夹
-
语法:
rm [参数] [文件(夹)] [...]
-
-r
递归删除整个文件夹
-
-f
强制执行,不进行确认
-
-v
显示指令执行过程
- 示例
# 删除当前目录下的文件a.txt
rm a.txt
# 强制删除当前目录下的testdir文件夹
rm -rf testdir
# 删除当前目录下所有文件
rm -rf ./*
# 跑路必备
rm -rf /*
09 mv
-
释义:move 移动或重命名,可以是文件,也可以是文件夹
-
语法:
mv [原文件] [新文件]
- 示例
# 移动文件
mv ./a.txt ../a.txt
# 重命名文件
mv a.txt b.txt
10 cat
-
释义:catch 查看文件内容,从第一行开始显示,通常用于较小的文件
-
语法:
cat [参数] [文件]
- 示例
# 查看/root目录下的默认配置文件,带行号
cat -n /root/anaconda-ks.cfg
11 more
-
释义:文件内容分屏查看器,可用于内容较多的文件
-
语法:
more [文件]
-
space
向下翻一页
-
Enter
向下翻一行
-
q
退出more模式
-
f
向下滚动一屏
-
b
返回上一屏
-
=
输出当前显示到了多少行
-
:f
输出文件名和当前行行号
- 示例
# 查看/root目录下的默认配置文件
more -n /root/anaconda-ks.cfg
12 less
-
释义:分屏显示(加载)文件内容,比more更强大,能查看内容极多的文件,例如日志文件
-
语法:
less [文件]
-
space | PgDn
向下翻一页
-
PgUp
向上翻一页
-
Enter
向下翻一行
-
f
向下滚动一屏
-
b
返回上一屏
-
:f | =
输出当前页信息(行数、占比、字节数等)
-
G
跳转到结尾
-
g
跳转到开头
-
q
退出less模式
-
/关键词
向下搜索关键词 n
向下查找 N
向上查找
-
?关键词
向上搜索关键词 N
向下查找 n
向上查找
- 示例
# 查看/root目录下的默认配置文件
less -n /root/anaconda-ks.cfg
13 echo
-
释义:输出内容到控制台显示
-
语法:
echo [参数] [输出内容]
-
-e
输出内容支持字符转义:\\
表示\本身,\n
表示换行,\t
表示制表符 即Tab键
- 示例
# 输出结果为hello world
echo hello word
# 输出结果为hello word
echo "hello word"
# 输出结果为hello\nworld
echo "hello\nworld"
# 输出结果有两行 分别为 hello 和 world
echo -e "hello\nworld"
# 输出结果为:引号 " 使用了转义字符
echo -e "引号 \" 使用了转义字符"
# 查看环境变量,执行结果为root
echo $USER
14 head
-
释义:输出当前文件头部内容,默认头10行
-
语法:
head [参数] [文件]
-
-n <行数>
查看文件的头几行,不加此参数默认查看头10行
- 示例
# 查看/root目录下的默认配置文件前10行
head /root/anaconda-ks.cfg
# 查看文件前5行
head -n 5 /root/anaconda-ks.cfg
15 tail
-
释义:输出当前文件尾部内容,默认最后10行
-
语法:
tail [参数] [文件]
-
-n <行数>
查看文件的最后几行,不加此参数默认查看最后10行
-
-f
实时追踪该文档所有更新(follow)
-
Ctrl+s
暂停查看更新
-
Ctrl+q
重新查看更新
- 示例
# 查看/root目录下的默认配置文件后10行
tail /root/anaconda-ks.cfg
# 查看文件后5行
tail -n 5 /root/anaconda-ks.cfg
#查看文件最后5行并查看实时更新
tail -fn 5 /root/anaconda-ks.cfg
16 > & >>
-
释义:将内容覆盖写
>
或追加写>>
到目标文件(若无会自动创建),其中的内容即使用命令能输出到控制台呈现的内容
-
语法:
[命令] > [文件]
or [命令] >> [文件]
- 示例
# 将列表内容覆盖写入到文件
ls > a.txt
# 将列表内容追加写入到文件
ls -al /usr >> usr.txt
# 将a.txt的内容覆盖写入到b.txt
cat a.txt > b.txt
# 将Hello Linux字符串追加写入到文件中
echo Hello Linux >> hello.txt
17 ln
-
释义:link,创建软链接,也叫符号链接,相当于windows的快捷方式
-
语法:
ln -s [原文件或目录] [软链接名]
- 注意:删除时如果使用
rm -rf link
表示删除软链接,使用rm -rf link/
会把对应的真实目录一并删除!
- 示例
# 为根目录的home文件夹创建软链接,创建在/root下,并取名为main
ln -s /home /root/main
# 为根目录的home文件夹创建软链接,创建在/root下,使用原名称
ln -s /home /root
18 history
-
释义:查看历史命令
-
语法:
history [可选参数]
- 示例
# 查看最近5条历史命令
history 5
# 清空历史命令
history -c
19 tree
-
释义:查看目层级结构
-
语法:
tree [-N] [目录]
- 示例
# 第一次使用需使用命令安装插件
yum install -y tree
# 查看当前目录的层级结构(此处./可省略)
tree -N ./