linux code review
这份资料整理的是我们在小测试之后继续讨论过的知识点,方便你考试前快速复习。
1. cat 的用法
cat 来自 concatenate,最常见的作用是:显示文件内容。
基本用法
cat 文件名
例如:
cat test.txt
会把 test.txt 的内容直接显示在终端里。
查看多个文件
cat a.txt b.txt
会先显示 a.txt 的内容,再显示 b.txt 的内容。
配合重定向
cat a.txt > b.txt
把 a.txt 的内容写入 b.txt。
cat a.txt >> b.txt
把 a.txt 的内容追加到 b.txt 后面。
手动输入内容创建文件
cat > test.txt
输入内容后,按 Ctrl + D 结束并保存。
常见参数
cat -n test.txt
给每一行加行号。
2. > 和 >> 的区别
>:覆盖写入
echo hello > test.txt
会把内容写入 test.txt,如果文件里原来有内容,会被清空后重写。
>>:追加写入
echo hello >> test.txt
会把内容追加到文件末尾,不会删除原来的内容。
一句话记忆
>:重新写>>:继续写
3. < 和 << 的区别
<:输入重定向
wc -l < test.txt
意思是:让 wc -l 从 test.txt 读取内容,而不是从键盘读取。
<<:here document
cat << EOF
hello
world
EOF
表示把后面这几行文字作为前面命令的输入。
四个符号对比
>:输出到文件(覆盖)>>:输出到文件(追加)<:从文件读取输入<<:从一段多行文本读取输入
4. 不用 nano 新建 .txt 并输入内容
方法 1:用 cat
cat > test.txt
然后直接输入内容,结束时按 Ctrl + D。
方法 2:写一行
echo "hello world" > test.txt
方法 3:一次写多行
cat << EOF > test.txt
第一行
第二行
第三行
EOF
5. factor $RANDOM 是什么意思
$RANDOM
在 bash 里,$RANDOM 是一个随机数变量,每次取值都会生成一个随机整数。
echo $RANDOM
factor
factor 用来做质因数分解。
factor 12
输出类似:
12: 2 2 3
合起来
factor $RANDOM
意思是:
先生成一个随机整数,再把这个随机整数分解质因数。
6. déplacer / modifier / effacer 和权限的关系
这三个法语词在 Linux 权限里可以这样理解:
modifier
最接近的是:
w
也就是 write,写权限。
effacer
删除文件通常不只看文件本身,而更常看所在目录有没有权限。
严格说,删除通常和目录的:
w + x
有关。
déplacer
移动文件本质上也和目录权限关系更大,通常涉及:
w + x
在源目录和目标目录上的权限。
简化记忆
modifier→ 文件的weffacer→ 目录的w + xdéplacer→ 目录的w + x
7. 这条 loto 命令的意思
echo $(shuf -n 6 -i 1-49 | sort -n) "chance" $(shuf -n 2 -i 1-10) > tirageLoto.txt
分解解释
shuf -n 6 -i 1-49
从 1 到 49 中随机取 6 个数。
| sort -n
把这 6 个数字按从小到大排序。
$( ... )
命令替换:先执行括号里的命令,再把结果放回来。
"chance"
直接输出单词 chance。
$(shuf -n 2 -i 1-10)
从 1 到 10 中随机取 2 个数。
> tirageLoto.txt
把最终输出写进 tirageLoto.txt 文件中。
整体意思
这条命令会:
- 随机生成 6 个 1 到 49 的号码
- 再生成 2 个 1 到 10 的
chance号码 - 然后把结果保存到
tirageLoto.txt
8. mkdir -p:一行创建父文件夹和子文件夹
推荐写法
mkdir -p parent/enfant
意思是:
- 创建
parent - 再在里面创建
enfant
如果父目录已经存在,也不会报错。
对比
不用 -p 时,可以写成:
mkdir parent && mkdir parent/enfant
但考试里更常见也更简洁的是:
mkdir -p parent/enfant
9. 创建符号链接:ln -s
题目:
进入
hutte/coffre,然后为tirageLoto.txt创建一个叫tirageLotoLien.txt的符号链接。
做法
cd ~/Foret/Hutte/Coffre
ln -s tirageLoto.txt tirageLotoLien.txt
含义
ln -s 原文件 链接名
这里:
- 原文件:
tirageLoto.txt - 新链接名:
tirageLotoLien.txt
检查
ls -l
会看到类似:
tirageLotoLien.txt -> tirageLoto.txt
说明链接创建成功。
10. ln 和 ln -s 的区别
ln
ln a.txt b.txt
创建的是硬链接。
可以理解成:给同一个文件再起一个名字。
ln -s
ln -s a.txt b.txt
创建的是符号链接(软链接)。
可以理解成:建一个指向原文件的快捷方式。
最重要区别
ln:硬链接ln -s:符号链接
简化理解
- 硬链接:像“同一个文件的另一个名字”
- 软链接:像“快捷方式”
11. tar czf 打包压缩目录
题目要求:
进入第一题创建的
Examen_login_date_heure目录的父目录,然后把它打包成.tar.gz文件。
命令
tar czf Examen_login_date_heure.tar.gz Examen_login_date_heure
参数含义
c= create,创建归档z= gzip 压缩f= file,后面跟输出文件名
这条命令的意思
把目录:
Examen_login_date_heure
压缩成:
Examen_login_date_heure.tar.gz
为什么要站在父目录执行
因为命令最后写的是目录名:
Examen_login_date_heure
所以你要站在它的上一级目录,才能正确找到它。
查看压缩包内容
tar tzf Examen_login_date_heure.tar.gz
这里:
t= list,查看归档内容z= gzipf= 文件
12. 复习时最该记住的几句
文件查看与写入
cat file.txt
echo "hello" > file.txt
echo "hello" >> file.txt
cat > file.txt
重定向
command > file
command >> file
command < file
command << EOF
...
EOF
随机数与分解
echo $RANDOM
factor 12
factor $RANDOM
权限
chmod +r file
chmod +w file
chmod +x file
目录与链接
mkdir -p parent/enfant
ln -s cible lien
ls -l
打包压缩
tar czf archive.tar.gz dossier
tar tzf archive.tar.gz
13. 一句话总结
这部分你主要要掌握的是:
cat看文件和创建文件>、>>、<、<<的区别- 不用
nano也能写文件 $RANDOM和factorw/x/r权限的实际含义mkdir -p一行建父子目录ln -s创建符号链接tar czf打包压缩目录