操作系统必知必会:Linux(1)常用的Shell命令
常用的Shell命令
磁盘管理
cd
cd命令用于切换当前工作目录至指定的目录。
cd [dirName]
dirName
:要切换的目标目录
df
df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。
df [选项] ... [file] ...
-a
,--all
包含所有的具有0 Blocks的文件系统-h
,--human-readable
使用易于阅读的格式展示
du
du命令用于显示目录或文件的大小,会显示指定的目录或文件所占用的磁盘空间。
du [选项] [目录或文件]
-a
,-all
显示目录中所有的文件大小-h
,--human-readable
以K,M,G为单位,使用易于阅读的格式展示
mkdir
mkdir命令用于建立指定名称的子目录。
mkdir [-p] dirName
-p
:确保目录名称存在,不存在就建一个
pwd
pwd命令用于显示当前工作目录。
pwd
ls
ls命令用于显示指定目录下的内容。
ls [选项][name...]
-a
:显示所有文件及目录(Linux默认以点"."开头的隐藏文件或目录不会显示,使用-a
可以显示)-l
:除了显示文件名,还将显示文件类型、权限、拥有者、文件大小等信息-r
:以文件名称进行倒序排序后显示-t
:以文件创建时间排序后显示-R
:递归列出子目录下的文件
文件管理
cat
cat命令用于查看文件并打印到标准输出设备上。
cat [选项] fileName
-n
,--number
:从1开始对所有输出进行行数编号-b
,--number-nonblank
:从1开始对所有输出进行行数编号,但对于空白行不编号-s
,--squeeze-blank
:当遇到有连续两行以上空白行,就替换为一行空白行
chmod
chmod命令可以改变文件的访问权限。
Linux的文件调用权限分为三级:文件拥有者、群组、其他。
chmod [选项] [参数] file...
参数格式
[ugoa...][[+-=][rwxX]...][,...]
u
表示文件的拥有者,g
表示与拥有者属于同一个群组,o
表示其他人,a
表示三者皆是+
表示增加权限,-
表示取消权限,=
表示唯一设定权限r
表示可读取,w
表示可写入,x
表示可执行
chown
chown命令可以将指定文件的拥有者改为指定的用户或组。
一般来说,这个指令只有root用户使用。一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改为别人。只有root才有这样的权限。
chown [选项] user[:group] file...
user
:新的文件拥有者的IDgroup
:新的文件拥有者的组
cp
cp命令主要用于复制文件或目录。
cp [选项] source... target
-a
:此选项通常在复制目录的时候使用,它保留链接、文件属性,并复制目录下的所有内容-f
:覆盖已经存在的目标文件而不给出提示-i
:在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖-r
:如果源文件时一个目录文件,递归复制该目录下的所有子目录和文件
diff
diff命令用于比较文件的差异。
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
diff [选项] [文件或目录1] [文件或目录2]
file
file命令用于辨识文件类型。
file [选项] [文件或目录...]
-b
:列出辨识结果,不显示文件名称-i
:显示MIME类别
find
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find path -option [ -print ] [ -exec -ok command ] {} \;
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,这里只介绍最常用的部分。
-
-path path
:路径名称符合 path 的文件。 -
-ipath path
:路径名称符合 path 的文件,忽略大小写。 -
-name name
:文件名称符合 name 的文件。 -
-iname name
:文件名称符合 name 的文件,忽略大小写。 -
-type c
:文件类型是 c 的文件。
more
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
more [选项] filenames...
-num
:一次显示的行数+num
:从第num行开始显示-p
:不以卷动的方式显示每一页,而是先清除屏幕后再显示内容-s
:当遇到有连续两行以上的空白行,就代换为一行的空白行
mv
mv 命令用来为文件或目录改名、或将文件或目录移到其它位置。
mv [选项] sources... target
-i
:若指定目录已有同名文件,则先询问是否覆盖旧文件-f
:在 mv 操作要覆盖某已有的目标文件时不给任何指示
rm
rm命令用于删除一个文件或者目录。
mv [选项] names...
-i
:删除前逐一询问确认-f
:直接删除,无需逐一确认-r
:递归删除目录下的所有内容
split
split命令用于将一个文件分割成数个。
该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。
split [选项] file [prefix]
-l rows
:指定每rows行切成一个小文件-b bytes
:指定每bytes字节切成一个小文件prefix
:切割后的文件名称前缀
touch
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch [选项] [文件或目录...]
-a
:改变读取时间记录-m
:改变修改时间记录-c
:如果文件不存在,不会创建新文件
文档编辑
grep
grep 命令用于查找文件里符合条件的字符串。
grep [选项] [参数] [文件或目录...]
-i
或--ignore-case
: 忽略字符大小写的差别-n
或--line-number
:显示行号
sed
sed 命令是利用脚本来处理文本文件。可依照脚本的指令来处理、编辑文本文件。
sed [选项] [表达式] [文件]
a
:在后面新增一行i
:在前面插入一行s
:文件内容替换
sort
sort命令用于将文本文件内容以行为单位加以排序。
sort [选项] [文件]
-u
:对输出结果去重-r
:以相反的顺序排序
wc
wc命令用于计算字数。
wc [选项] [文件]
-c
:统计字节数-w
:统计单词数-l
:统计行数
压缩备份
tar
tar命令用于将文件打包。
tar [选项] [文件或目录...]
-c
:用于创建新的包-x
:用于从包中还原文件-f
:用于指定文件-z
:通过gzip
压缩文件或者通过gunzip
解压文件-v
:显示执行的过程-C
:用于指定目标文件夹
gzip
gzip命令用于压缩文件。文件经它压缩过后,其名称后面会多出.gz
的扩展名。
gzip [选项] [文件]
-f
:强行压缩文件-d
:解压缩文件-v
:显示执行的过程
gunzip
gunzip命令用于解压文件。它用于解开被gzip压缩过的文件。
gunzip [选项] [文件]
-f
:强行解压文件-v
:显示执行的过程
zip
zip 命令用于压缩文件。压缩后的文件后缀名为 .zip
。
zip [选项] [文件]
-r
:递归压缩目录下的所有文件-m
:压缩后删除原有文件-v
:显示执行的过程
unzip
unzip命令用于解压缩zip文件。
unzip [选项] [文件]
-f
:更新现有文件-n
:解压时不要覆盖原有文件-v
:显示执行的过程