在 Linux 终端中自由穿梭:必备命令详解
在 Windows 系统中,我们习惯于通过图形界面进行文件和目录操作。而在 Linux 系统中,终端命令行是一种更高效、更强大的方式。本文将详细介绍 Linux 中最常用的文件和目录操作命令,帮助你像在 Windows 中一样自由地操作 Linux 系统。
1. 基础导航命令
pwd - 显示当前位置
首先,知道自己当前的工作目录,使用 pwd
(Print Working Directory)命令:
pwd
执行后,终端会显示你当前所在的完整路径,例如 /home/username
。
ls - 列出目录内容
想查看当前目录下有什么文件和文件夹?使用 ls
命令:
ls # 列出当前目录内容
ls -l # 详细列表形式显示
ls -a # 显示所有文件,包括隐藏文件,带.开头的文件会隐藏
ls -la # 详细列表形式显示所有文件
ls -lh # 以人类可读格式显示文件大小
ls /path/to/dir # 列出指定目录内容
cd - 改变目录
在目录间移动是最基本的操作,使用 cd
(Change Directory)命令:
cd /path/to/dir # 切换到指定目录
cd ~ # 切换到用户主目录,也叫家目录,如果你是root用户会进入root,如果你是用户mark可能会进入/home/mark
cd .. # 切换到上一级目录
cd - # 切换到上一个工作目录
cd # 不带参数,直接切换到主目录
小技巧:使用 Tab 键可以自动补全路径,避免输入错误并提高效率。
2. 查看文件内容
cat - 查看文件全部内容
对于较小的文件,可以使用 cat
命令直接显示全部内容:
但是这个文件的问题就是对于特别长的大文件会瀑布式输出完,就退化成了tail指令了。
cat filename # 显示文件内容
cat -n filename # 显示行号
cat filename > xx.txt #太长也可以把内容输出到一个txt里,然后再用打开txt的方式打开
less - 分页查看大文件
又或者,你可以使用less is more的思想,分页查看,所以其实对于较大的文件,更地道的方式是使用 less
命令,不过大家太依赖cat和vim以至于都忘记这个指令了,更进一步,使用less
可以分页查看:
less filename
在 less
中常用的操作:
- 空格键:向下翻页(超级优雅的设计有没有!!,当然如果你说你这么多指令根本记不住,用方向键也是可以的,丑陋就丑陋点吧)
- b 键:向上翻页
- q 键:退出
- /文本:搜索指定文本
- n 键:跳到下一个搜索结果
more - 另一种分页查看工具
more
是另一种分页查看工具,功能比 less
简单:
more filename
咱们都less is more 了,就放弃掉more指令吧
head 和 tail - 查看文件头尾
head filename # 查看文件前10行
head -n 20 filename # 查看前20行
tail filename # 查看文件后10行
tail -n 20 filename # 查看后20行
tail -f filename # 实时查看文件末尾(监控日志文件很有用)
有时候你要看的内容就在文件的开头几行的时候你可以用head指令很直接,这个指令还可以打开.csv这种文件
3. 文件和目录操作
创建目录
使用 mkdir
(Make Directory)命令创建目录:
mkdir dirname # 创建目录
mkdir -p path/to/dirname # 创建多级目录(如果父目录不存在则创建)
创建文件
别使用 touch
命令创建空文件或更新文件时间戳(诚然,这个指令可以创建文件,但是我更希望你使用vim来创建,touch更适合linux脚本的场景,比如你需要创建一个文件来记录日志或者其他流水线任务,对于我们手动输入的指令来说,创建了文件就是要马上写的,其实使用vim更好):
touch filename # 创建新文件或更新已有文件的时间戳,暂时忘了他吧
复制文件和目录
简单地使用 cp
(Copy)命令复制文件和目录:
复杂的还有类似sync等指令,那是另外的话题了
cp source destination # 复制文件
cp -r source destination # 递归复制目录及内容
cp -i source destination # 如果目标文件存在,会询问是否覆盖
移动和重命名
使用 mv
(Move)命令移动文件或重命名:
mv source destination # 移动文件或重命名
mv -i source destination # 如果目标文件存在,会询问是否覆盖
你更新代码版本的时候,非常推荐使用mv指令来备份你的版本,比如mv xxx.jar xxx.jar.bak-2050227这种,或者其他的备注信息,帮助你回溯。
删除文件和目录
使用 rm
(Remove)命令删除文件,rmdir
或 rm -r
删除目录:
rm filename # 删除文件
rm -i filename # 删除前询问
rm -r dirname # 递归删除目录及其内容
rm -rf dirname # 强制递归删除目录(谨慎使用!)
rmdir dirname # 删除空目录
4. 文本编辑器 - vim
在 Linux 中,vim
是一个功能强大的文本编辑器,虽然学习曲线陡峭,但掌握基础用法非常有用:
VIM是另外一门学问了,这里点到即止
vim filename # 打开或创建文件
vim 有三种主要模式:
- 普通模式:默认模式,用于导航和执行命令
- 插入模式:用于编辑文本
- 命令行模式:用于执行保存、退出等操作
基本操作:
- 按
i
进入插入模式 - 按
Esc
返回普通模式 - 在普通模式下,输入
:w
保存文件 - 在普通模式下,输入
:q
退出 - 在普通模式下,输入
:wq
保存并退出 -
更推荐使用
:x
来写入和退出,替代wq指令,更优雅。两者差别仅体现在你没有修改文件的时候,wq会强制更新一次修改时间,x不会更新文件的修改时间 - 在普通模式下,输入
:q!
不保存强制退出
5. 目录结构查看 - tree
tree
命令可以以树状结构显示目录内容,非常直观:
tree # 显示当前目录的树状结构
tree -L 2 # 限制只显示2层深度
tree -d # 只显示目录
tree -a # 显示所有文件,包括隐藏文件
注意:tree 命令可能需要额外安装:
# Ubuntu/Debian
sudo apt install tree
# CentOS/RHEL
sudo yum install tree
6. 文件查找
find - 强大的文件查找工具
你有时候可能需要学会在根目录下找一个可能存在的文件
find /path -name "*.txt" # 在指定路径下查找所有.txt文件
find /path -type d -name "dir*" # 查找名称以dir开头的目录
find /path -type f -size +10M # 查找大于10MB的文件
grep - 文本搜索工具
其实grep和管道符|指令更频繁,其实他本身就可以执行搜索文本的任务
grep "text" filename # 在文件中搜索文本,会返回给你匹配到的行的所有内容
grep -r "text" directory # 递归搜索目录中所有文件
7. 权限管理
在 Linux 中,文件权限管理非常重要。使用 chmod
命令更改文件权限:
chmod 755 filename # 设置权限为 rwxr-xr-x
chmod +x filename # 添加可执行权限
chmod -w filename # 移除写权限
使用 chown
命令更改文件所有者:
chown user:group filename # 更改文件所有者和组
8. 实用技巧
命令历史
- 使用上下箭头浏览之前使用过的命令
- 使用
history
命令查看完整命令历史 - 使用
Ctrl+R
搜索命令历史
命令补全
- 使用 Tab 键自动补全命令和文件名
- 连按两次 Tab 显示所有可能的补全选项
管道和重定向
ls -la | grep "txt" # 将ls命令的输出传递给grep命令
ls > output.txt # 将输出重定向到文件(覆盖)
ls >> output.txt # 将输出重定向到文件(追加)
总结
通过熟练操练这些基本命令,你已经可以在 Linux 终端中自由穿梭,进行日常文件和目录操作。虽然一开始可能需要记忆这些命令,但随着使用频率的增加,你会发现终端操作比图形界面更加高效。特别是vim,建议每个人都学会使用vim。
namo是什么,真不熟。
希望这篇文章能帮助你像在 Windows 中一样自由地使用 Linux 系统。欢迎在评论区分享你的使用体验或提出问题!