Linux命令基础:从零开始的命令行入门指南
·
1. 引言:Linux是什么
Linux作为服务器、云计算、嵌入式开发和数据科学领域的核心操作系统,掌握其命令行操作是每个技术人员的必备技能。与图形界面相比,命令行具有以下优势:
- 高效快捷:通过简单的命令组合完成复杂操作
- 资源占用少:在远程服务器或资源受限环境中运行流畅
- 自动化能力强:可编写脚本批量处理任务
- 功能更强大:许多高级功能仅通过命令行提供
本文将带你从零开始,系统学习Linux命令的基础知识、常用操作和实用技巧。
2. Linux命令行环境
2.1 终端与Shell
终端(Terminal) 是用户与Shell交互的界面,可以是物理终端、虚拟终端或终端模拟器。
Shell 是命令解释器,负责解析用户输入的命令并执行。常见的Shell有:
- Bash:最流行的Shell,大多数Linux发行版的默认选择
- Zsh:功能强大,支持丰富的插件和主题
- Fish:用户友好,提供智能提示和语法高亮
2.2 命令提示符
打开终端后,你会看到类似这样的提示符:
user@hostname:~$
user:当前登录用户名hostname:主机名~:当前目录(~表示用户主目录)$:普通用户提示符(#表示root用户)
3. 基础文件操作命令
3.1 查看目录内容:ls
# 列出当前目录内容
ls
# 列出详细信息(权限、所有者、大小、时间)
ls -l
# 列出所有文件(包括隐藏文件)
ls -a
# 组合使用
ls -la
# 按文件大小排序
ls -lhS
# 按修改时间排序(最新在前)
ls -lt
3.2 切换目录:cd
# 切换到用户主目录
cd ~
cd
# 切换到上一级目录
cd ..
# 切换到上两级目录
cd ../..
# 切换到指定目录
cd /usr/local/bin
# 切换到上次所在的目录
cd -
3.3 查看当前目录:pwd
# 显示当前工作目录的完整路径
pwd
3.4 创建目录:mkdir
# 创建单个目录
mkdir new_folder
# 创建多级目录
mkdir -p parent/child/grandchild
# 创建目录并设置权限
mkdir -m 755 shared_folder
3.5 创建文件:touch
# 创建空文件
touch file.txt
# 创建多个文件
touch file1.txt file2.txt file3.txt
# 更新文件时间戳(如果文件存在)
touch existing_file.txt
3.6 复制文件/目录:cp
# 复制文件
cp source.txt destination.txt
# 复制文件到目录
cp file.txt /path/to/directory/
# 复制目录(递归复制)
cp -r source_dir/ destination_dir/
# 复制时保留文件属性
cp -p important_file.txt backup/
# 交互式复制(覆盖前询问)
cp -i source.txt destination.txt
3.7 移动/重命名:mv
# 重命名文件
mv old_name.txt new_name.txt
# 移动文件到目录
mv file.txt /path/to/directory/
# 移动并重命名
mv file.txt /path/to/directory/new_name.txt
# 移动目录
mv source_dir/ destination_dir/
# 交互式移动(覆盖前询问)
mv -i source.txt destination.txt
3.8 删除文件/目录:rm
# 删除文件
rm file.txt
# 删除多个文件
rm file1.txt file2.txt file3.txt
# 删除目录(递归删除)
rm -r directory/
# 强制删除(不提示)
rm -f file.txt
# 交互式删除(删除前询问)
rm -i file.txt
# 删除空目录
rmdir empty_dir/
⚠️ 警告:rm -rf / 会删除系统所有文件,永远不要执行!
4. 文件内容查看与编辑
4.1 查看文件内容:cat
# 显示文件全部内容
cat file.txt
# 显示多个文件内容
cat file1.txt file2.txt
# 创建新文件(Ctrl+D保存)
cat > newfile.txt
# 追加内容到文件
cat >> existing_file.txt
4.2 分页查看:less / more
# 使用less查看(推荐)
less large_file.log
# less常用操作:
# 空格:向下翻一页
# b:向上翻一页
# /pattern:搜索
# n:下一个匹配项
# N:上一个匹配项
# q:退出
# 使用more查看
more large_file.log
4.3 查看文件头部:head
# 查看前10行(默认)
head file.txt
# 查看前20行
head -n 20 file.txt
# 查看前100字节
head -c 100 file.txt
4.4 查看文件尾部:tail
# 查看最后10行(默认)
tail file.log
# 查看最后50行
tail -n 50 file.log
# 实时查看日志(监控新增内容)
tail -f application.log
# 查看最后100字节
tail -c 100 file.txt
4.5 文本编辑器:nano / vim
nano(简单易用):
# 打开/创建文件
nano file.txt
# nano基本操作:
# Ctrl+O:保存
# Ctrl+X:退出
# Ctrl+W:搜索
# Ctrl+K:剪切行
# Ctrl+U:粘贴
vim(功能强大):
# 打开文件
vim file.txt
# vim基本模式:
# 正常模式:Esc键进入,用于导航和命令
# 插入模式:i键进入,用于编辑文本
# 命令模式::进入,用于保存退出等操作
# 常用命令:
# :w 保存
# :q 退出
# :wq 保存并退出
# :q! 强制退出不保存
# /pattern 搜索
5. 文件权限管理
5.1 理解权限表示
使用 ls -l 查看文件权限:
-rwxr-xr-- 1 user group 4096 Jul 25 10:20 script.sh
- 第1位:文件类型(
-普通文件,d目录,l链接) - 第2-4位:所有者权限(
rwx) - 第5-7位:组权限(
r-x) - 第8-10位:其他用户权限(
r--)
权限含义:
r:读权限(4)w:写权限(2)x:执行权限(1)- a : 所有用户
- o :
5.2 修改权限:chmod
# 数字方式
chmod 755 script.sh # rwxr-xr-x
chmod 644 file.txt # rw-r--r--
chmod 700 private.sh # rwx------
# 符号方式
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w file.txt # 移除组的写权限
chmod o=r file.txt # 设置其他用户只有读权限
chmod a+x script.sh # 给所有用户添加执行权限
chmod a-rwx file.txt #删除所有用户的读,写,执行权限
5.3 修改所有者:chown
# 修改文件所有者
chown newowner file.txt
# 修改所有者和组
chown newowner:newgroup file.txt
# 递归修改目录下所有文件
chown -R user:group directory/
5.4 修改所属组:chgrp
# 修改文件所属组
chgrp newgroup file.txt
# 递归修改
chgrp -R newgroup directory/
6. 进程管理
6.1 查看进程:ps
# 查看当前终端进程
ps
# 查看所有进程
ps aux
# 查看指定用户进程
ps -u username
# 查看进程树
ps auxf
# 查看特定进程
ps aux | grep nginx
6.2 实时监控:top / htop
# 实时查看系统进程
top
# top常用操作:
# P:按CPU使用率排序
# M:按内存使用率排序
# k:杀死进程
# q:退出
# 更友好的监控工具(需安装)
htop
6.3 杀死进程:kill
# 正常终止进程
kill 1234
# 强制终止进程
kill -9 1234
# 终止所有同名进程
killall process_name
# 按名称终止进程
pkill process_name
6.4 后台运行:& / nohup
# 后台运行程序
./long_running_script.sh &
# 查看后台作业
jobs
# 将后台作业调到前台
fg %1
# 断开连接后继续运行
nohup ./server.sh > output.log 2>&1 &
7. 网络相关命令
7.1 网络配置:ifconfig / ip
# 查看网络接口信息(传统命令)
ifconfig
# 查看网络接口信息(现代命令)
ip addr show
# 查看路由表
ip route show
# 查看网络连接
netstat -tulpn
7.2 网络测试:ping
# 测试网络连通性
ping google.com
# 指定次数
ping -c 4 google.com
# 指定间隔
ping -i 2 google.com
7.3 域名解析:nslookup / dig
# 查询域名IP
nslookup example.com
# 详细DNS查询
dig example.com
# 查询MX记录
dig example.com MX
# 反向DNS查询
dig -x 8.8.8.8
7.4 下载文件:wget / curl
# 使用wget下载
wget https://example.com/file.zip
# 断点续传
wget -c https://example.com/large_file.iso
# 使用curl下载
curl -O https://example.com/file.txt
# 保存为指定文件名
curl -o custom_name.zip https://example.com/file.zip
8. 系统信息查看
8.1 系统信息:uname
# 查看内核信息
uname -a
# 查看内核版本
uname -r
# 查看系统架构
uname -m
8.2 磁盘使用:df / du
# 查看磁盘使用情况
df -h
# 查看指定目录大小
du -sh /home/user/
# 查看目录下各文件大小
du -sh /home/user/*
# 查看目录深度
du -h --max-depth=1 /var/
8.3 内存使用:free
# 查看内存使用(人类可读格式)
free -h
# 持续监控
watch -n 1 free -h
9. 实用技巧与组合命令
9.1 管道(|)与重定向
# 管道:将一个命令的输出作为另一个命令的输入
ps aux | grep nginx
cat file.txt | grep "error" | wc -l
# 输出重定向:覆盖文件
ls -la > file_list.txt
# 输出重定向:追加到文件
echo "new line" >> log.txt
# 错误重定向
command 2> error.log
# 输出和错误都重定向
command > output.log 2>&1
9.2 命令替换
# 将命令输出作为参数
echo "Today is $(date)"
cp file.txt backup/file_$(date +%Y%m%d).txt
# 使用反引号(旧式)
echo "Current dir: `pwd`"
9.3 通配符
# * 匹配任意字符
ls *.txt # 所有.txt文件
ls file*.txt # 以file开头,.txt结尾
# ? 匹配单个字符
ls file?.txt # file1.txt, file2.txt等
# [] 匹配字符范围
ls file[0-9].txt # file0.txt到file9.txt
ls file[abc].txt # filea.txt, fileb.txt, filec.txt
# {} 扩展
mkdir dir{1,2,3} # 创建dir1, dir2, dir3
cp file.{txt,bak} # 复制file.txt为file.bak
9.4 命令别名
# 创建别名
alias ll='ls -la'
alias update='sudo apt update && sudo apt upgrade'
# 查看所有别名
alias
# 永久保存别名(添加到~/.bashrc)
echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrc
查看命令类型
type ls
内置命令帮助
help cd
## 结语
Linux命令的学习是一个渐进的过程,不要试图一次性记住所有命令。从最常用的`ls`、`cd`、`cp`、`rm`开始,逐步扩展到更复杂的操作。记住:**实践是最好的老师**。遇到问题时,善用`man`命令和在线资源,多动手尝试,你会在解决问题的过程中不断进步。
。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)