【笔记】Linux的Shell命令

前言

Linux的Shell命令学习笔记

清屏

1
clear

目录相关操作

查看当前工作目录(Print Working Directory)

1
pwd

切换工作目录(Change Directory)

<dir>:指定目录

.:当前目录
..:上一级目录
~:缺省值,当前用户的家目录
-:上一次访问的目录

1
cd <dir>

创建目录(Make Directory)

<dir_new>:新目录名
<dir>:新目录的存放目录,缺省值为当前目录

1
mkdir <dir_new>
1
mkdir <dir>/<dir_new>

创建多级目录

1
mkdir -p <dir_new_1>/<dir_new_2>

创建目录时指定权限

1
mkdir -m 777 <dir_new>

删除目录(Remove Directory)

  • 只能删除空目录
1
rmdir <dir>

查看当前目录下的所有文件和目录(List)

<dir>:指定目录

.:缺省值,当前目录

-l:以列表的形式查看指定目录内的文件和目录

-ld:以列表的形式查看当前的目录
-lh:以列表的形式查看指定目录内的文件和目录,并展示文件大小的单位
-a:包含以.为文件名前缀的隐藏文件
-R:递归操作

1
ls <dir>

文件相关操作

创建文件

  • 实质上touch的主要用途是修改文件的最后访问时间和最后修改时间,创建文件只是它的副作用

<file_new>:新文件名
<dir>:新文件的存放目录,缺省值为当前目录

1
touch <file_new>
1
touch <dir>/<file_new>

修改文件的最后修改时间

  • 修改为当前时间
1
touch -m <file>
  • 修改为指定时间
1
touch -m -d "2006-01-02 15:04:05" <file>

删除文件(Remove)

-r:递归操作
-i:显示删除信息
-f:强制删除,跳过确认提示

1
rm <file>

复制文件(Copy)

  • 在Linux中目录也是文件,所以复制目录也是相同操作

-r:递归操作(复制目录)
-i:显示覆盖提示

<file_old>:被复制的旧文件
<file_new>:复制后的新文件
<dir>:复制后的新文件存放目录,缺省值为当前目录

1
cp <file_old> <file_new>
1
cp <file_old> <dir>
1
cp <file_old> <dir>/<file_new>

移动文件(Move)

  • 在Linux中目录也是文件,所以移动目录也是相同操作
  • 同目录下移动文件表示重命名文件

<file_old>:被复制的旧文件
<file_new>:复制后的新文件
<dir>:复制后的新文件存放目录,缺省值为当前目录

1
mv <file_old> <file_new>
1
mv <file_old> <dir>
1
mv <file_old> <dir>/<file_new>

查看文件类型(File)

1
file <file>

执行结果

directory:目录
empty:空文件
ASCII text:文本文件
ASCII text, with no line terminators:文本文件并且只有一行

查看文件的时间属性(Stat)

1
stat <file>

文件内容相关操作

查看文件全部内容(Concatenate)

1
cat <file>

分屏查看文件全部内容(Less)

-N:显示行号

1
less <file>

快捷键

Up ArrowKControl+K:向上滚动一行
ReturnDown ArrowJControl+JControl+N:向下滚动一行
BControl+B:向上滚动一个屏幕
SpaceFControl+F:向下滚动一个屏幕
UControl+U:向上滚动半个屏幕
DControl+D:向下滚动半个屏幕
GControl+G:回到文档开头
Shift+GControl+Shift+G:回到文档结尾
/+关键词:搜索关键词

Shift+N:滚动到上一个关键词位置
N:滚动到下一个关键词位置

VControl+V:使用默认文本编辑器打开文档
HControl+H:打开帮助文档
QShift+ZZ:关闭文档

查看文件头部内容(Head)

-n <num>-<num>:指定查看的行数

<num>:行数,缺省值为10

1
head <file>

查看文件末尾内容(Tail)

-n <num>-<num>:指定查看的行数

<num>:行数,缺省值为10

-f:更新文件变动

1
tail <file>

搜索文件中的行(Global Regular Expression Print)

<keyword>:匹配的行中任意位置包含指定关键词
^<keyword>:匹配的行中头部包含指定关键词
<keyword>$:匹配的行中尾部包含指定关键词

-v:条件取反
-i:忽略大小写

1
grep <keyword> <file>

文件单词计数(Word Count)

-l:只统计行数
-w:只统计单词数
-c:只统计字节数
-m:只统计字符数
-L:统计最长一行的长度

1
wc <file>
1
行数 单词数 字节数 文件名

查看文件内容的差异(Difference)

-u:以 unified format 的格式输出差异

1
diff <file_1> <file_2>

递归查看目录内所有文件的差异

1
diff -r <dir_1> <dir_2>

命令相关

查看指定命令的类型(Type)

  • 查看指定命令的类型,如果是可执行文件则返回文件路径
1
type <exe>

查看指定命令原始文件位置(Where is)

  • 返回原始文件位置和手册位置
1
whereis <exe>

查看指定命令执行时的文件位置(Which)

  • 返回的文件位置可能是软连接
1
which <exe>

历史命令(History)

传送门

系统相关

传送门

完成

参考文献

Linux就该这么学——刘遄