# 常用shell命令

# 启动shell

大部分linux都默认使用GNU bash shell/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。其中就包括了用户登陆时使用的shell类型。

# 获取shell命令的帮助

man 命令用来访问存储在Linux系统上的手册页面。

man ls展示如下

LS(1)                            User Commands                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speci‐
       fied.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

如果不记得命令名,可以使用关键字搜索手册页,命令格式为man -k 关键字

# shell命令管理linux文件系统

Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。根目录下的目录和文件会按照访问它们的目录路径一一列出。

在Linux PC上安装的第一块硬盘称为根驱动器。根驱动器包含了虚拟目录的核心,其他目录都是从那里开始构建的。Linux会在根驱动器上创建一些特别的目录,我们称之为挂载点(mount point)。挂载点是虚拟目录中用于分配额外存储设备的目录。

常见Linux目录名称表:

目 录 用 途
/ 虚拟目录的根目录。通常不会在这里存储文件
/bin 二进制目录,存放许多用户级的GNU工具
/boot 启动目录,存放启动文件
/dev device,设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录
/home 主目录,Linux在这里创建用户目录
/lib 库目录,存放系统和应用程序的库文件
/media/ 媒体目录,可移动媒体设备的常用挂载点,如移动硬盘等
/opt option,可选目录,常用于存放第三方软件包和数据文件
/proc 进程目录,存放现有硬件及当前进程的相关信息
/root root用户的主目录
/sbin 系统二进制目录,存放许多GNU管理员级工具
/run 运行目录,存放系统运作时的运行时数据
/srv 服务目录,存放本地服务的相关文件
/sys 系统目录,存放系统硬件信息的相关文件
/tmp 临时目录,可以在该目录中创建和删除临时工作文件,系统重启后将失去该路径下的文件
/usr 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里
/var 可变目录,用以存放经常变化的文件,比如日志文件

切换目录命令 cdshell会话切换到另一个目录。

pwd 命令可以显示出shell会话的当前目录,这个目录被称为当前工作目录。

要想知道系统中有哪些文件,可以使用列表命令 ls

文件或目录的inode编号是一个用于标识的唯一数字,这个数字由内核分配给文件系统中的每一个对象。要查看文件或目录的inode编号,可以给 ls 命令加入 -i 参数。

mv命令可以将文件和目录移动到另一个位置或重新命名。

bash shell中删除文件的命令是 rm,-i 命令参数提示你是不是要真的删除该文件。bash shell中没有回收站或垃圾箱,文件一旦删除,就无法再找回。因此,在使用 rm 命令时,要养成总是加入 -i 参数的好习惯。

file命令是一个随手可得的便捷工具。它能够探测文件的内部,并决定文件是什么类型的。

file build
# build: directory

cat用来查看文件的内容。

cat命令的主要缺陷是:一旦运行,你就无法控制后面的操作。为了解决这个问题,开发人员编写了 more命令。可以将文本文件类型按进度展示。less 命令是more命令的升级版,能够识别上下键以及上下翻页键。

tail命令会显示文件最后几行的内容。-n 参数来修改所显示的行数。默认情况下,它会显示文件的末尾10行。

head命令,会显示文件开头那些行的内容。

# 后台模式

sleep 3000&

会将sleep 3000放入后台运行。jobs 命令可以显示出当前运行
在后台模式中的所有用户的进程。

将进程列表置入后台模式,另一种简单的方式是使用协程。

coproc sleep 100

# reference

1.https://book.douban.com/subject/35933905/ (opens new window)