Linux 常用命令
一、文件操作
常见处理目录的命令如下:
ls
列出目录及文件名
list files,列出目录及文件名
参数:
-a
:列出全部的文件(包括隐藏文件)-d
:仅列出目录本身(而非目录内的文件数据)-l
:列出长数据串(包含文件的属性与权限等数据)-t
:列出按最近一次修改时间排序的文件-i
:显示文件的 inode(文件内容标识)-R
:连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来[0-9]
:显示包含数字的文件名和目录名
cd
切换目录
change directory,切换目录
示例:
cd / # 跳转到根目录
cd ~ # 跳转到家目录
cd # 不添加任何参数,进入个人的主目录
cd ~user1 # 进入个人的主目录
cd - # 返回上次所在的目录
cd .. # 返回上一级目录
cd ../.. # 返回上两级目录
cd ./home # 进入 '/ home' 目录
cd /home/lion # 跳转到根目录下的 home 目录下的 lion 目录
pwd
显示当前目录
print work directory,显示当前目录
参数:
-P
:显示绝对路径
touch
创建文件
创建一个文件
示例:
touch new_file
mkdir
创建目录
make directory,创建一个新目录
参数:
-m
:配置文件的权限-p
:直接将所需要的目录 (包含上一级目录) 递归创建起来
rmdir
删除目录
remove directory,删除一个空目录
参数:
-p
:连同上一级空目录也一起删除
cp
复制文件或目录
copy file,复制文件或目录
参数:
-a
:将文件的特性一起复制-p
:连同文件的属性一起复制,而非使用默认方式,与-a
相似,常用于备份-i
:若目标文件已经存在时,在覆盖时会先询问操作的进行-r
:递归持续复制,常用来拷贝一整个目录-u
:目标文件与源文件有差异时才会复制
示例:
# file 是目标文件,file_copy 是拷贝出来的文件
cp file file_copy
# 把 file 文件拷贝到 one 目录下,并且文件名依然为 file
cp file one
# 把 file 文件拷贝到 one 目录下,文件名为 file_copy
cp file one/file_copy
# 把当前目录下所有 txt 文件拷贝到 folder 目录下
cp *.txt folder
rm
删除文件或目录
remove,删除文件或目录
参数:
-f
:即 force 强制,忽略不存在的文件,不会出现警告信息-i
:互动模式,在删除前会询问使用者是否动作-r
:递归删除,常用于目录删除
示例:
rm new_file # 删除 new_file 文件
rm f1 f2 f3 # 同时删除 f1 f2 f3 文件
mv
移动文件与目录
move file,移动文件与目录,或修改文件与目录的名称
参数:
-f
:如果目标文件已存在,不会询问而是直接覆盖-i
:如果目标文件已存在,则询问是否覆盖-u
:如果目标文件已存在,且 source 比较新,才会升级 (update)
示例:
# 将 file 文件移动到 one 目录下
mv file one
# 将 new_folder 文件夹移动到 one 目录下
mv new_folder one
# 把当前目录下所有 txt 文件移动到 folder 目录下
mv *.txt folder
# file 文件重命名为 new_file
mv file new_file
ln
创建链接
Link,表示创建链接
Linux 文件的存储方式分为 3 个部分:
- 文件名
- 文件内容
- 权限
其中文件名的列表是存储在硬盘的其它地方和文件内容是分开存放的,每个文件名通过 inode
标识绑定到文件内容
Linux 下有两种链接类型:硬链接和软链接
硬链接:
使链接的两个文件共享同样文件内容,即同样的 inode
,一旦文件 1 和文件 2 之间有了硬链接,那么修改任何一个文件,修改的都是同一块内容。
示例:
# 创建 file2 为 file1 的硬链接
ln file1 file2
删除文件 1 不会影响删除文件 2,对于硬链接来说,删除任意一方的文件,共同指向的文件内容并不会从硬盘上删除,只有同时删除了两个文件后后,它们共同指向的文件内容才会消失。
软链接:
软链接类似 Windows 的快捷方式。
示例:
# 创建 file2 为 file1 的软链接
ln -s file1 file2
文件 2 只是文件 1 的一个快捷方式,它指向的是文件 1,显示文件 1 的内容,但文件 2 的 inode
与文件 1 并不相同,如果删除了文件 2,文件 1 不会受影响,但如果删除文件 1 则文件 2 会变成死链接,因为指向的文件不见了。
二、文件查看
常见的文件内容查看有如下:
cat
:由第一行开始显示文件内容less
:一页一页的显示文件内容head
:只看头几行tail
:只看结尾几行
cat
由第一行开始显示文件
由第一行开始显示文件内容,适合查看小文件
参数:
-b
:列出行号,仅针对非空白行做行号显示,空白行不标行号-n
:列印出行号,连同空白行也会有行号,与 -b 的选项不同
示例:
# 从第一个字节开始正向查看文件的内容
cat file1
# 从最后一行开始反向查看一个文件的内容
tac file1
# 标示文件的行数
cat -n file1
# 查看一个长文件的内容
more file1
# 查看一个文件的前两行
head -n 2 file1
# 查看一个文件的最后两行
tail -n 2 file1
# 从 1000 行开始显示,显示 1000 行以后的
tail -n +1000 file1
# 显示 1000 行到 3000 行
cat filename | head -n 3000 | tail -n +1000
# 从第 3000 行开始,显示 1000(即显示 3000 ~ 3999 行)
cat filename | tail -n +3000 | head -n 1000
less 分页显示文件
分页显示文件内容,适合查看大文件
示例:
less cloud-init.log
快捷操作:
空格键
:前进一页;b 键
:后退一页;回车键
:前进一行;y 键
:后退一行;上下键
:回退或前进一行;d 键
:前进半页;u 键
:后退半页;q 键
:停止读取文件,中止 less 命令;= 键
:显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息;h 键
:显示帮助文档;/ 键
:进入搜索模式后,按 n 键跳到一个符合项目,按 N 键跳到上一个符合项目,同时也可以输入正则表达式匹配。
head 查看文件前几行
查看文件前面几行
参数:
-n
:指定行数,例如head cloud-init.log -n 2
tail 查看文件尾几行
查看文件结尾几行
参数:
-n
:指定行数,例如tail cloud-init.log -n 2
-f
:每过 1 秒检查文件是否有更新,也可以用-s
参数指定间隔时间,例如tail -f -s 4 xxx.log