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 d in week??
for> do
for> mv ${d} chapter${d#week}
for> done