Linux Common Commands

2020/07/15 Linux 共 5179 字,约 15 分钟
PlanDoCheckAction

Linux 处理目录的常用命令

  • ls:列出目录及文件名;
  • cd:切换目录;
  • pwd:显示目前的目录;
  • mkdir:创建一个新的目录;
  • rmdir:删除一个空的目录;
  • cp:复制文件或目录;
  • rm:移除文件或目录;
  • mv:移动文件与目录,或修改文件与目录的名称。

我们可以在终端使用 man [命令] 来查看各个命令的使用文档,如:man cp。

ls(列出目录)

常用语法:

   ls [-adl] 目录名称

选项参数:

  • -a:全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来;
  • -d:仅列出目录本身,而不是列出目录内的文件数据;
  • -l:长数据串列出,包含文件的属性与权限等等数据,ls -l 可简写为 ll。

cd(切换目录)

cd 是 Change Directory 的缩写,这是用来变换工作目录的命令。

常用语法:

   cd [相对路径或绝对路径]

相对路径是指相对于当前目录位置的路径,绝对路径是指由根目录写起的路径。

pwd(显示目前所在的目录)

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

常用语法:

   pwd [-P]

选项参数:

  • -P:显示出确实的路径,而非使用连结(link)路径。

mkdir(创建新目录)

mkdir 是 Make Directory 的缩写,也就是创建目录。

常用语法:

   mkdir [-mp] 目录名称

选项参数:

  • -m:手动配置文件的权限;
  • -p:帮助你直接将所需要的目录(包含上一级目录)递归创建起来。
   mkdir test                      <=可以成功
   mkdir test1/test2/test3         <=不能成功
   mkdir -p test1/test2/test3      <=可以成功,且连 test1 和 test2 目录也创建成功

   mkdir -m 711 test

711三个数字表示 rwx(读写执行)在不同用户下的权限和。

第一个数字表示「属主」权限的权限和,第二个数字表示「属组」权限的权限和,第三个数字表示「其他用户」权限的权限和。

r(读)表示的数字是 4,w(写)表示的数字是 2,x(执行)表示的数字是 1,所以 7 代表 4+2+1,表示「属主」权限为 rwx,后面的数字以此类推。

rmdir(删除空的目录)

常用语法:

   rmdir [-p] 目录名称

选项参数:

  • -p:连同上一级的空目录也一起删除。

要注意,这个 rmdir 仅能删除空的目录,可以使用 rm 命令来删除非空目录。

cp(复制文件或目录)

cp 即 copy 文件或目录。

常用语法:

   cp [-adfilprsu] 来源档(source) 目标档(destination)

选项参数:

  • -a:相当于 -pdr 的意思(常用);
  • -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • -i:若目标档已经存在时,在覆盖时会先询问动作的进行(常用);
  • -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • -r:递归持续复制,用于目录的复制行为(常用);
  • -s:复制成为符号连结档(symbolic link),亦即『捷径』文件;
  • -u:若目标档比来源档旧才升级目标档。
   cp ~/.bashrc /tmp/bashrc     <=将用户本身目录下的 .bashrc 复制到 /tmp 下,并命名为 bashrc
   cp -i ~/.bashrc /tmp/bashrc  <=若 bashrc 已经存在,则会进行询问动作

注:Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。

硬连接

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止『误删』的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是『主从』关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

rm(移除文件或目录)

rm 即 remove 文件或目录。

常用语法:

   rm [-fir] 文件或目录

选项参数:

  • -f:就是强制(force)的意思,忽略不存在的文件,不会出现警告信息;
  • -i:互动模式,在删除前会询问使用者是否动作;
  • -r:递归删除!最常用在目录的删除!这是非常危险的选项!

mv(移动文件与目录,或修改名称)

mv 即 move 的意思。

常用语法:

   mv [-fiu] 来源档(source) 目标档(destination)
   mv [-fiu] source1 source2 source3 source4 destination
   mv 更前名 更后名

选项参数:

  • -f:就是强制(force)的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i:若目标文件已经存在时,就会询问是否覆盖;
  • -u:若目标文件已经存在,且 source 比较新,才会更新。

Linux 文件内容查看命令

在 Linux 系统中可以使用如下命令来查看文件的内容:

  • cat:由第一行开始显示文件内容;
  • tac:从最后一行开始显示,可以看出 tac 是 cat 的倒着写;
  • nl:显示的时候输出行号;
  • more:一页一页的显示文件内容;
  • less:与 more 类似,但是比 more 更好的一点是他可以往前翻页;
  • head:只看头几行;
  • tail;只看尾巴几行。

cat

由第一行开始显示文件内容。

语法:

   cat [-AbEnTv] 文件

选项参数:

  • -A:相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b:列出行号,仅针对非空白行做行号显示,空白行不标行号;
  • -E:将结尾的断行字节 $ 显示出来;
  • -n:列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T:将 [tab] 按键以 ^I 显示出来;
  • -v:列出一些看不出来的特殊字符。

tac

与 cat 命令相反,文件内容从最后一行开始显示。

nl

显示行号。

语法:

   nl [-bnw] 文件

选项参数:

  • -b:指定行号的指定方式,主要有两种:
    • -b a:表示不论是否为空行,也同样列出行号(类似 cat -n);
    • -b t:如果有空行,空的那一行不要列出行号(默认值);
  • -n:列出行号表示的方法,主要有三种:
    • -n ln:行号在荧幕的最左方显示;
    • -n rn:行号在自己栏位的最右方显示,且不加 0;
    • -n rz:行号在自己栏位的最右方显示,且加 0;
  • -w:行号栏位的占用的位数。

more

一页一页向后翻动。

语法:

   more 文件

在 more 这个程序的运行过程中,我们有几个按键可以按:

  • 空格键(space):代表向下翻一页;
  • Enter:代表向下翻『一行』;
  • /字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f:立刻显示出文件名以及目前显示的行数;
  • q:代表立刻离开 more,不再显示该文件内容;
  • b 或 [ctrl]+b:代表往回翻页,不过这动作只对文件有用,对管线无用。

less

一页一页翻动,不同于 more,less 可向前或者向后翻。

在 less 这个程序的运行过程中可以输入的命令有:

  • 空格键(space):向下翻一页;
  • [pagedown]:向下翻一页;
  • [pageup]:向上翻一页;
  • /字串:向下搜寻『字串』这个关键字;
  • ?字串:向上搜寻『字串』这个关键字;
  • n:重复前一个搜寻 (与 / 或 ? 有关);
  • N:反向的重复前一个搜寻 (与 / 或 ? 有关);
  • q:离开 less 这个程序。

取出文件前面几行。

语法:

   head [-n number] 文件

选项参数:

  • -n:后面接数字,代表显示几行的意思。

注:默认是10行

tail

取出文件后面几行,用法与 head 类似。


Vim 的使用

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

以下是常用的几个命令:

  • i:切换到输入模式,以输入字符;
  • x:删除当前光标所在处的字符;
  • :(英文冒号):切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动 Vim,进入了命令模式,按下 i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下 i 就进入了输入模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及 Shift 组合,输入字符;
  • ENTER,回车键,换行;
  • BACK SPACE,退格键,删除光标前一个字符;
  • DEL,删除键,删除光标后一个字符;
  • 方向键,在文本中移动光标;
  • HOME/END,移动光标到行首/行尾;
  • Page Up/Page Down,上/下翻页;
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;
  • ESC,退出输入模式,切换到命令模式。

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q:退出程序;
  • w:保存文件。

按 ESC 键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:


yum 命令

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

   yum [options] [command] [package ...]
  • options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等;
  • command:要进行的操作;
  • package:操作的对象。

yum常用命令

  1. 列出所有可更新的软件清单命令:yum check-update;
  2. 更新所有软件命令:yum update;
  3. 仅安装指定的软件命令:yum install
  4. 仅更新指定的软件命令:yum update
  5. 列出所有可安裝的软件清单命令:yum list;
  6. 删除软件包命令:yum remove
  7. 查找软件包命令:yum search
  8. 清除缓存命令:
    1. yum clean packages:清除缓存目录下的软件包;
    2. yum clean headers:清除缓存目录下的 headers;
    3. yum clean oldheaders:清除缓存目录下旧的 headers;
    4. yum clean, yum clean all (= yum clean packages; yum clean oldheaders):清除缓存目录下的软件包及旧的headers。

替换国内 yum 源

  1. 首先打开 CentOS 的 yum 文件夹,备份原始 yum 源:
   cd /etc/yum.repos.d/
   mv CentOS-Base.repo CentOS-Base.repo.bak
  1. 然后下载国内对应版本的 repo 文件,我这里使用的是 CentOS7 的 Linux 版本,国内镜像使用的是阿里 yum 源:http://mirrors.aliyun.com/repo/Centos-7.repo ,现在开始用 wget 下载 repo 文件:
   wget  http://mirrors.aliyun.com/repo/Centos-7.repo

如果 wget 命令不生效,说明还没有安装 wget 工具,输入 yum -y install wget 回车进行安装。

  1. 将下载好的 repo 文件替换为系统原来的 repo 文件:
   mv Centos-7.repo CentOS-Base.repo
  1. 最后执行 yum 源更新命令即可:
   yum clean all

   yum makecache

   yum update

如有理解错误或偏差,望大家指出,非常感谢!

文档信息

Search

    Table of Contents