更多练习题可查看这篇文章:Linux常见练习题
练习题及答案
1. 文件和目录操作
题目:
- 创建一个名为
test
的目录,并在其中创建一个名为file1.txt
的空文件。 - 将文件
file1.txt
重命名为file2.txt
。 - 在
test
目录下创建一个子目录subdir
,然后将file2.txt
移动到subdir
中。 - 复制文件
file2.txt
到当前目录,并命名为file2_copy.txt
。 - 删除
file2_copy.txt
文件。 - 查看
test/subdir
目录的详细信息,包括权限、大小、修改时间等。 - 使用命令查找当前目录下所有的
.txt
文件。
答案:
# 1. 创建目录并创建文件
mkdir test
touch test/file1.txt
# 2. 重命名文件
mv test/file1.txt test/file2.txt
# 3. 创建子目录并移动文件
mkdir test/subdir
mv test/file2.txt test/subdir/
# 4. 复制文件
cp test/subdir/file2.txt ./file2_copy.txt
# 5. 删除文件
rm file2_copy.txt
# 6. 查看目录详细信息
ls -l test/subdir/
# 7. 查找当前目录下所有 .txt 文件
find . -type f -name "*.txt"
2. 文件权限和所有权
题目:
- 改变
file2.txt
的权限,使得文件的所有者可以读、写,组成员和其他人只能读取。 - 将文件
file2.txt
的所有者改为用户user1
,并将所属组改为group1
。 - 给文件
file2.txt
添加执行权限,并验证文件是否可以执行。 - 递归修改
test
目录下所有文件的权限,使得文件的所有者可以读、写,组和其他人可以读取。
答案:
# 1. 改变文件权限
chmod 644 test/subdir/file2.txt
# 2. 改变文件所有者和组
chown user1:group1 test/subdir/file2.txt
# 3. 给文件添加执行权限
chmod +x test/subdir/file2.txt
./test/subdir/file2.txt # 验证执行权限
# 4. 递归修改权限
chmod -R 644 test/
3. 文本文件操作
题目:
- 查看
file2.txt
文件的内容。 - 将
file2.txt
文件的内容追加一行文本:“This is a new line”。 - 使用
grep
查找文件file2.txt
中是否包含单词 “new”。 - 将
file2.txt
的内容输出到一个新文件file3.txt
中。 - 使用
cat
命令将多个文件(file2.txt
和file3.txt
)的内容合并到一个新文件file4.txt
中。
答案:
# 1. 查看文件内容
cat test/subdir/file2.txt
# 2. 追加文本
echo "This is a new line" >> test/subdir/file2.txt
# 3. 查找 "new" 单词
grep "new" test/subdir/file2.txt
# 4. 输出内容到新文件
cat test/subdir/file2.txt > test/subdir/file3.txt
# 5. 合并文件内容
cat test/subdir/file2.txt test/subdir/file3.txt > test/subdir/file4.txt
4. 系统监控和管理
题目:
- 使用
df
命令查看当前系统的磁盘空间使用情况。 - 使用
top
命令查看系统中最占用资源的进程。 - 使用
ps
命令列出当前系统中所有正在运行的进程。 - 使用
free
命令查看系统的内存使用情况。 - 使用
uptime
命令查看系统的运行时间及负载情况。
答案:
# 1. 查看磁盘空间
df -h
# 2. 查看占用资源的进程
top
# 3. 列出所有进程
ps aux
# 4. 查看内存使用情况
free -h
# 5. 查看系统运行时间和负载
uptime
5. 用户和组管理
题目:
- 创建一个新用户
user1
,并设置密码。 - 创建一个新组
group1
,并将user1
用户添加到该组。 - 修改
user1
的用户信息,设置其登录 shell 为/bin/bash
。 - 删除用户
user1
和组group1
。 - 使用
whoami
命令查看当前用户。 - 使用
id
命令查看当前用户的 UID、GID 和组信息。
答案:
# 1. 创建用户并设置密码
sudo useradd user1
sudo passwd user1
# 2. 创建新组并将用户添加到组
sudo groupadd group1
sudo usermod -aG group1 user1
# 3. 修改用户信息
sudo usermod -s /bin/bash user1
# 4. 删除用户和组
sudo userdel user1
sudo groupdel group1
# 5. 查看当前用户
whoami
# 6. 查看 UID 和 GID 信息
id
6. 网络管理
题目:
- 使用
ping
命令测试连接到外部网站(例如:google.com
)。 - 使用
ifconfig
查看本地网络接口的配置信息。 - 使用
netstat
查看当前网络连接和监听的端口。 - 使用
wget
下载一个文件(例如:http://example.com/file.txt
)。
答案:
# 1. 测试连接
ping google.com
# 2. 查看网络接口信息
ifconfig
# 3. 查看网络连接和端口
netstat -tuln
# 4. 下载文件
wget http://example.com/file.txt
7. 进程管理
题目:
- 使用
kill
命令终止一个进程。 - 使用
nohup
命令让一个进程在后台运行并在退出时不终止。 - 使用
bg
和fg
将后台进程切换为前台进程。
答案:
# 1. 终止进程
kill <PID>
# 2. 后台运行进程
nohup command &
# 3. 切换进程
bg <job_number> # 将任务转到后台
fg <job_number> # 将任务转到前台
8. 压缩与解压
题目:
- 使用
tar
将test
目录打包成test.tar
文件。 - 使用
gzip
对test.tar
文件进行压缩。 - 使用
tar
解压test.tar.gz
文件。 - 使用
zip
和unzip
压缩和解压一个目录。
答案:
# 1. 打包目录
tar -cvf test.tar test/
# 2. 压缩文件
gzip test.tar
# 3. 解压 tar.gz 文件
tar -xvzf test.tar.gz
# 4. 使用 zip 和 unzip 压缩和解压
zip -r test.zip test/
unzip test.zip
9. 高级操作
题目:
- 使用
cron
定时任务在每天晚上 11 点执行一个脚本。 - 创建一个简单的 bash 脚本,脚本能列出当前目录下所有
.txt
文件,并将结果输出到一个文件。
答案:
# 1. 创建 cron 定时任务
crontab -e
# 添加以下行执行任务:每天晚上11点执行 /path/to/script.sh
0 23 * * * /path/to/script.sh
# 2. 创建 bash 脚本
echo -e "#!/bin/bash\nls *.txt > txt_files.txt" > list_txt.sh
chmod +x list_txt.sh
./list_txt.sh