Linux 教程(二):Linux 基础命令详解

Linux 命令基本格式

Linux 命令的基本格式如下:

命令 [选项] [参数]
  • 命令:要执行的操作
  • 选项:以 - 或 -- 开头,修改命令行为
  • 参数:命令作用的对象

目录导航命令

1. pwd - 显示当前目录

$ pwd
/home/username

显示当前工作目录的完整路径。

2. cd - 切换目录

# 切换到家目录
cd

# 切换到指定目录
cd /var/log

# 切换到上一级目录
cd ..

# 切换到上上级目录
cd ../..

# 切换到上次所在的目录
cd -

3. ls - 列出目录内容

# 基本用法
ls

# 显示详细信息
ls -l

# 显示隐藏文件
ls -a

# 以人类可读格式显示大小
ls -lh

# 按时间排序
ls -lt

# 递归显示子目录
ls -R

常用选项说明:

选项 说明
-l 长格式显示(权限、所有者、大小、时间)
-a 显示所有文件(包括隐藏文件)
-h 人类可读的文件大小(K、M、G)
-t 按修改时间排序
-R 递归显示子目录
-i 显示 inode 号

文件操作命令

1. touch - 创建空文件

# 创建空文件
touch file.txt

# 创建多个文件
touch file1.txt file2.txt file3.txt

# 更新文件时间戳
touch existing_file.txt

2. mkdir - 创建目录

# 创建单个目录
mkdir mydir

# 创建多个目录
mkdir dir1 dir2 dir3

# 递归创建目录(包括父目录)
mkdir -p parent/child/grandchild

3. cp - 复制文件

# 复制文件
cp source.txt destination.txt

# 复制到目录
cp file.txt /home/user/

# 递归复制目录
cp -r sourcedir/ destdir/

# 保留属性复制
cp -p source.txt dest.txt

# 显示复制过程
cp -v source.txt dest.txt

4. mv - 移动/重命名文件

# 移动文件
mv file.txt /home/user/

# 重命名文件
mv oldname.txt newname.txt

# 移动目录
mv dir1/ dir2/

# 强制覆盖(不提示)
mv -f source.txt dest.txt

# 交互式(覆盖前询问)
mv -i source.txt dest.txt

5. rm - 删除文件

# 删除文件
rm file.txt

# 删除多个文件
rm file1.txt file2.txt

# 删除目录(必须为空)
rmdir emptydir

# 递归删除目录及其内容
rm -r dirname/

# 强制删除(不提示)
rm -f file.txt

# 递归强制删除(危险!)
rm -rf dirname/

⚠️ 警告:rm -rf 是非常危险的命令,使用前务必确认路径!

文件查看命令

1. cat - 显示文件内容

# 显示整个文件
cat file.txt

# 显示行号
cat -n file.txt

# 显示非空行号
cat -b file.txt

# 合并多个文件
cat file1.txt file2.txt > combined.txt

2. less - 分页查看文件

less largefile.txt

常用快捷键:

  • 空格键:向下翻一页
  • b:向上翻一页
  • G:跳到文件末尾
  • g:跳到文件开头
  • /pattern:搜索
  • n:下一个匹配项
  • q:退出

3. head - 查看文件开头

# 查看前 10 行
head file.txt

# 查看前 20 行
head -n 20 file.txt

# 查看前 5 字节
head -c 5 file.txt

4. tail - 查看文件末尾

# 查看最后 10 行
tail file.txt

# 查看最后 20 行
tail -n 20 file.txt

# 实时跟踪文件变化(查看日志必备)
tail -f /var/log/syslog

# 显示最后 10 行并跟踪
tail -f file.txt

5. wc - 统计文件信息

# 统计行数、单词数、字节数
wc file.txt

# 只统计行数
wc -l file.txt

# 只统计单词数
wc -w file.txt

# 只统计字节数
wc -c file.txt

# 统计多个文件
wc *.txt

查找命令

1. find - 查找文件

# 按名称查找
find /home -name "*.txt"

# 按类型查找(f=文件,d=目录)
find /home -type f

# 按大小查找(+100M=大于 100M)
find / -size +100M

# 按时间查找(-7=7 天内)
find /home -mtime -7

# 查找并删除
find /tmp -name "*.tmp" -delete

# 查找并执行命令
find . -name "*.log" -exec rm {} \;

2. grep - 文本搜索

# 基本搜索
grep "pattern" file.txt

# 忽略大小写
grep -i "pattern" file.txt

# 显示行号
grep -n "pattern" file.txt

# 递归搜索目录
grep -r "pattern" /path/

# 显示匹配行前后 3 行
grep -C 3 "pattern" file.txt

# 反向匹配(不包含)
grep -v "pattern" file.txt

# 使用正则表达式
grep -E "[0-9]+" file.txt

3. locate - 快速查找文件

# 查找文件
locate filename

# 更新数据库(需要先运行)
sudo updatedb

文件权限命令

1. chmod - 修改权限

# 数字模式
chmod 755 file.txt    # rwxr-xr-x
chmod 644 file.txt    # rw-r--r--
chmod 777 file.txt    # rwxrwxrwx

# 字母模式
chmod u+x file.txt    # 给所有者添加执行权限
chmod g-w file.txt    # 给组删除写权限
chmod o=r file.txt    # 设置其他人只读
chmod a+x file.txt    # 给所有人添加执行权限

# 递归修改
chmod -R 755 dirname/

权限数字对照:

数字 权限 字母
7 rwx 读 + 写 + 执行
6 rw- 读 + 写
5 r-x 读 + 执行
4 r-- 只读
0 --- 无权限

2. chown - 修改所有者

# 修改文件所有者
chown user file.txt

# 修改所有者和组
chown user:group file.txt

# 递归修改目录
chown -R user:group dirname/

3. chgrp - 修改组

# 修改文件组
chgrp group file.txt

# 递归修改
chgrp -R group dirname/

链接命令

ln - 创建链接

# 创建硬链接
ln source.txt link.txt

# 创建软链接(符号链接)
ln -s source.txt link.txt

# 创建目录的软链接
ln -s /path/to/dir linkdir

实用技巧

1. 命令补全

按 Tab 键可以自动补全命令和文件名。

2. 命令历史

# 查看历史命令
history

# 执行历史命令
!100      # 执行第 100 条历史命令
!!        # 执行上一条命令
!cd       # 执行最近一条 cd 命令

3. 命令别名

# 查看别名
alias

# 创建别名
alias ll="ls -lh"
alias rm="rm -i"

# 删除别名
unalias ll

# 永久生效(添加到~/.bashrc)
echo "alias ll=\"ls -lh\"" >> ~/.bashrc

练习题

  1. 创建目录结构:test/dir1/dir2
  2. 在 dir2 中创建文件 file.txt
  3. 将 file.txt 复制到 dir1
  4. 将 dir1 中的 file.txt 重命名为 newfile.txt
  5. 查找 /home 目录下所有.txt 文件
  6. 查看 /var/log 目录下最新的日志文件

下一章预告

下一篇我们将学习 Linux 文本编辑神器——Vim 编辑器的使用。

勤加练习,熟能生巧!

发表回复

后才能评论