Linux系统终端命令

常用的文件与目录操作命令

基本概念

Linux终端是NOI竞赛中最重要的编程环境之一。掌握基本的命令行操作可以大大提高编程效率。

重要提示

  • Linux采用树状目录结构,根目录用 / 表示
  • 路径分隔符为 /(反斜杠)
  • 命令区分大小写
  • 文件名可以包含空格,但需要用引号括起来

常用命令速查

1. 目录操作


# 查看当前所在目录
pwd

# 列出当前目录内容
ls
ls -l          # 详细信息
ls -a          # 显示隐藏文件(以.开头的文件)
ls -la         # 详细信息+隐藏文件

# 切换目录
cd /home/noi          # 切换到指定目录
cd ..                 # 返回上一级目录
cd ~                  # 返回用户主目录
cd -                  # 返回上一次所在目录

# 创建目录
mkdir homework                # 创建单个目录
mkdir -p project/noi1        # 递归创建多级目录

# 删除目录
rmdir empty_folder            # 删除空目录
rm -r folder                  # 递归删除目录及其内容
                

2. 文件操作


# 创建文件
touch main.cpp                     # 创建空文件
echo "Hello NOI" > test.txt       # 创建并写入内容

# 复制文件
cp source.cpp backup.cpp          # 复制文件
cp -r project/ project_backup/    # 递归复制目录

# 移动/重命名文件
mv old.cpp new.cpp                # 重命名
mv main.cpp homework/             # 移动到目录

# 删除文件
rm test.txt                       # 删除文件
rm -rf folder/                    # 强制递归删除(慎用!)

# 查看文件内容
cat main.cpp                      # 显示全部内容
less main.cpp                     # 分页查看(q退出)
head -n 20 main.cpp               # 查看前20行
tail -n 20 main.cpp               # 查看后20行
tail -f log.txt                   # 实时查看文件增长
                

3. 权限管理


# 查看文件权限
ls -l main.cpp
# 输出示例: -rwxr-xr-- 1 user group 1234 Jan 1 12:00 main.cpp

# 修改权限
chmod +x run.sh                   # 添加执行权限
chmod 755 main.cpp                # 设置权限为 rwxr-xr-x
chmod 644 main.cpp                # 设置权限为 rw-r--r--

# 权限数字含义:
# 4 = 读(r), 2 = 写(w), 1 = 执行(x)
# 755 = 4+2+1, 4+0+1, 4+0+1 = rwx, r-x, r-x
                

交互式演示

尝试在下方虚拟终端中输入命令:

欢迎使用Linux命令演示终端! 当前目录: /home/noi
noi@linux:~$

可尝试命令:ls, pwd, mkdir test, echo hello, cat test.txt, rm test.txt

常用快捷键

快捷键 功能
Ctrl + C中断当前命令
Ctrl + D退出当前会话
Ctrl + L清屏
Ctrl + A移动到行首
Ctrl + E移动到行尾
↑ / ↓浏览历史命令
Tab自动补全

实用技巧

Tab键自动补全

输入文件名或命令的一部分后按 Tab 键自动补全:

$ mTab
main.cpp makefile mkdir/

命令历史

使用 ↑ 和 ↓ 键浏览历史命令,或使用 history 查看:

$ !101 # 执行第101条命令

命令输出重定向


# 将输出保存到文件
ls -l > filelist.txt

# 将错误信息保存到文件
g++ main.cpp 2> errors.txt

# 将标准输出和错误都保存
g++ main.cpp &> all.txt

# 追加内容到文件
echo "New test" >> test.txt