Chanler

Chanler

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=week01echo ${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

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


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。