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

image.png|500
基本导航与查看
pwd
pwd,展示当前目录绝对路径
---
ls
list,列出当前目录下的文件
参数:
-l 列出每个文件的属性,一般都会有 ll 的缩写
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列出全部文件,包括隐藏文件. .. .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 进入命令模式
---

image.png|500
插入模式中 ^ 可以跳转到行首 $ 跳转到行尾
命令模式输入 : 进入尾行模式,尾行模式 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 风格循环
批量改名
for> do
for> mv ${d} chapter${d#week}
for> done