Linux 入门命令

shell 用于接受用户命令传递给 os 执行

基本导航与查看

pwd

pwd，展示当前目录绝对路径

ls

list，列出当前目录下的文件

参数：
-l 列出每个文件的属性，一般都会有 ll 的缩写

Copy
drwxr-xr-x@ 2 fling staff 64 5 24 15:42 test
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | | | | |
| | | | | | | | | | | | └─ 文件名/目录名 (Name)
| | | | | | | | | | | └─────── 最后修改时间 (Modification Time)
| | | | | | | | | | └────────── 最后修改日期 (月份中的某一天) (Day of Month)
| | | | | | | | | └──────────── 最后修改月份 (Month)
| | | | | | | | └──────────────── 文件大小 (字节) (Size)
| | | | | | | └────────────────────── 所属组 (Group)
| | | | | | └──────────────────────────── 文件所有者 (Owner)
| | | | | └──────────────────────────────── 硬链接数量 (Number of Hard Links)
| | | | └────────────────────────────────── 扩展属性标志 (Extended Attributes Flag - @) (macOS specific)
| | | └──────────────────────────────────── 其他用户权限 (Others' Permissions)
| | └─────────────────────────────────────── 组用户权限 (Group's Permissions)
| └────────────────────────────────────────── 文件所有者权限 (Owner's Permissions)
└──────────────────────────────────────────── 文件类型 (File Type)

属性详解：

文件类型：

-: 普通文件 (例如 1.txt)

d: 目录 (例如 test)

l: 符号链接

c: 字符设备文件

b: 块设备文件

s: 套接字文件

p: 命名管道

文件权限：

分为三组，每组三字符，代表了文件所有者、所属组用户、其他用户的权限

每组字符为 rwx 代表了读、写、执行的权限，无相应权限就用 - 代替，为了简洁表示，用为 r\w\x 分配数字 4\2\1

硬连接数量：

对于文件，表示有多少个文件名指向此文件的 inode

对于目录，通常是 2 + 子目录数量，每个目录都有 . 指向自身 .. 指向父目录

-a 列出全部文件，包括隐藏文件

Copy
. .. .env 1.txt test

cd

c，进入一个目录

前文说过 .. 代表父目录
cd - 代表进入上一次所在位置

tree

tree [] 展示目录 [] 下的结构

文件与目录操作

touch

touch，触摸，更新时间，不过也可以创建文件

mkdir

mkdir，建立目录

cat

cat，输出某个文件的内容

less

less，查看某个文件，可以上下翻，按 q 返回
只读取并显示屏幕所需部分
g 开头 G 结尾
% 或 p 百分比跳转
/pattern 向前搜索、?pattern 向后搜索，n 下一个匹配、N 上一个匹配
F 持续监视文件末尾的新增内容，类似 tail -f

more

more，查看某个文件，无法上翻，按 q 返回
会一次性加在整个文件到内存再显示

head

head，输出某个文件的开头

head --lines=n file 输出 file 的前 n 行

tail

tail，输出某个文件的结尾

tail --lines=n file 输出 file 的后 n 行
tail -f 持续查看后续内容

cp

cp 源 目的 复制文件或目录

mv

mv 源 目的 移动，也可以用于重命名

rm

rm，删除
rm -r 递归删除，用于目录

ln

ln，连接
ln -s 源 目的 软连接，并不存储文件，仅仅是一个快捷文件
ln 源 目的 硬连接，指向源文件的指针，共享相同的 inode，可认为引用，只能指向文件

权限与查找

chmod

修改权限
u\g\o 代表了三个组权限
chmod u+x file 代表给所有者执行权限
也可以用数字修改，如 chmod 744 file

file

file，什么文件类型，如 1.txt: ASCII text

where/which/whereis

where，找到文件在哪

输出、管道与编辑

echo

echo，输出到命令行，注意特殊字符出现用 " " 包裹

> 标准输出重定向到文件，如 echo "1" > 1.txt
>> 追加到文件
< 标准输入重定向自文件

pipe

command1 | command2 | command3 一个命令的标准输出作为另一个命令的标准输入

ls -l | grep "*.txt"
cat server.log | grep "ERROR" | less

nano

Crtl+X 退出、Crtl+O 保存

vim

命令模式下，:wq 保存退出、:q! 强制推出，[n]yy 复制 n 行 [n]p 粘贴 n 次到光标下一行 dd 剪除

命令模式输入 i\a\o\I\A\O 进入插入模式，插入模式 esc 进入命令模式

插入模式中 ^ 可以跳转到行首 $ 跳转到行尾

命令模式输入 : 进入尾行模式，尾行模式 esc\enter 进入命令模式

变量与通配符

shell

定义变量 variable=value 就定义好了，可以用 echo ${variable} 查看，大括号是用于防止歧义的

前向剪除，如 ff=week01，echo ${ff#week} 输出 01
去尾 %

? 代表一个字符的占位，*指任意字符占位

for i in $(seq 1 10) 1 到 10 序列
for ((i=0;i<10;i++)) c 风格循环

批量改名

Copy
for> do
for> mv ${d} chapter${d#week}
for> done

此文由 Mix Space 同步更新至 xLog
原始链接为 https://blog.chanler.dev/posts/tech-learn/linux-command