Bootstrap

Linux常用指令及命令运行原理

基本指令

ls

语法:ls [选项][目录]
功能:显示出该目录下的所有子目录和文件,对于文件,将列出文件名以及其他信息
常用选项

  • -l 列出文件的详细信息 可以减写成ll

在这里插入图片描述

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。

在这里插入图片描述
每个目录下默认存在两个隐含文件 . 和 . . ( . 代表当前目录 . . 代表上级目录)。

  • -d 将目录象文件一样显示,而不是显示其下的文件.

在这里插入图片描述

  • -i 输出文件的 i 节点的索引信息。

在这里插入图片描述

  • -n 用数字的 UID,GID 代替名称。 UID和GID相当于身份证

在这里插入图片描述

  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

在这里插入图片描述

  • -r 对目录反向排序。

在这里插入图片描述

  • -t 以时间排序

在这里插入图片描述 也可以结合r使用就变成正向排序

  • -s 在l文件名前面输出该文件的大小。

在这里插入图片描述

  • -R 列出所有子目录下的文件。(递归)

在这里插入图片描述

  • -1 一行只输出一个文件。

在这里插入图片描述

pwd

语法:pwd
功能:显示当前所处的目录

在这里插入图片描述

cd

语法:cd [目录]
功能:将当前工作目录改变到指定的目录下。

cd .. : 返回上一级目录
/home/CCT/test : 绝对路径
cd ./test : 相对路径 
cd ~:进入用户家目录(主工作目录)
cd -:返回最近访问目录
普通用户的家目录(主工作目录)默认为 /home/xxx,root用户的家目录(主工作目录)默认为 /root。

touch

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项

  • -a 或–time=atime或–time=access或–time=use只更改存取时间。

在这里插入图片描述
其中stat命令可以显示文件或文件系统的详细信息。
Access:表示最后一次访问(仅仅是访问,没有改动)文件的时间
Modify:表示最后一次修改文件的时间
Change:表示最后一次对文件属性改变的时间,包括权限,大小,属性等等。

  • -c 或–no-create 不建立任何文档。
  • -d 使用指定的日期时间,而非现在的时间。

在这里插入图片描述

  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或 --time=mtime 或–time=modify 只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t 使用指定的日期时间,而非现在的时间。

mkdir

语法: mkdir 选项 dirname
功能: 在当前目录下创建一个名为“dirname”的目录。
常用选项

  • mkdir dirname

在这里插入图片描述

  • mkdir -p dirname1/dirname2/…… # 递归式创建文件夹

在这里插入图片描述
tree 可以递归式查看目录下的文件
安装指令: yum install -y tree

rmdir

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法 rmdir [-p] [ditanme]
使用对象 :具有当前目录操作权限的所有者
功能: 删除空目录
常用选项

  • p 当子目录被删除后如果父目录也变成空目录的话,就连同父目录一起删除。

rm

语法: rm [选项] [dir]
适用对象 :所有使用者
功能 : 删除文件或者目录
常用选项

  • -f 即使文件属性为只有读(既写保护),也直接删除
    在这里插入图片描述

  • -i 删除前逐一确认询问
    在这里插入图片描述

  • -r 删除目录机其下所有文件

rm -rf / 删库必备

man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是

语法: man [选项] 命令
** 功能** 查找一些指令
常用选项

  • -k 根据关键字搜索联机帮助
  • -num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

cp

语法 :cp [选项] 目录或者目标文件
功能 复制文件或目录
常用选项

  • -f 或者–force 强制复制文件或目录,不论目的文件或目录是否已经存在
  • -i 或者-- ineractive 覆盖文件之前先询问用户
  • -r / -R递归式处理,将指定目录下的文件及子目录一并处理

如果一次要复制的文件过多可以使用*通配符
列如:
在这里插入图片描述

mv:

语法: mv [选项] 源文件或目录 目标文件或目录
功能

  • 当第二个参数是不存在的名称时,mv指令完成文件重命名或目录重命名。

在这里插入图片描述* 当第二个参数是已存在目录名称时,mv指令将文件移动置该目录中。
在这里插入图片描述

cat

语法 :cat [选项][文件]
功能 : 查看目标文件的内容
常用选项 :

  • -b 对非空输出行编号

在这里插入图片描述

  • -n 输出所有行编号
    在这里插入图片描述

  • -s 不输出多行空行,只保留一行空行
    在这里插入图片描述

tac

tac与cat相反,tac可以方向查看文件的内容。
语法: cat 文件
功能: 反向查看目标文件的内容。
在这里插入图片描述

注意: cat指令会将目标文件内容全部打印到屏幕上。若是目标文件内容过多,则会导致刷屏(直到将文件内容全部打印到屏幕上)。因此cat和tac指令一般仅适用于查看内容较少的文件。

more

cat适合查看内容较少的文件,而more适合查看内容较多的文件,因为它不会一下子全部显示出来,而是可以进行翻页。
语法 more [选项] [文件]
功能:more命令,类似cat
常用选项

  • -n 对输出的所有行编号
  • q 退出more

less

  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
    语法 less [参数] 文件
    ** 功能** less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
    常用选项
  • -N 显示每行的行号
  • /字符串 向下搜索“字符串”
  • ?字符串 向上搜索字符串
  • n指向下一个搜索到的位置 与/ 和? 相关
  • N 反向重复前一个搜索(与/或?有关)。
  • v 进入编辑模式,可编辑当前文件

head指令

从头开始查看指定行数的文本。
语法: head [选项] [文件]
功能: 用于显示文件的开头至标准输出中,默认head指令打印其相应文件的开头10行。
选项

head -5 文件

tail指令

将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail 选项 文件
功能: 用于显示文件的末尾至标准输出中,默认tail指令打印其相应文件的末尾10行。
选线:

  • -n<行数> 显示的行数
    在这里插入图片描述

  • -f 循环读取

date

date 指定格式显示时间: date +%Y:%m:%d

  1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
  • %H : 小时(00…23)
  • %M : 分钟(00…59)
  • %S : 秒(00…61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01…31)
  • %m : 月份 (01…12)
  • %Y : 完整年份 (0000…9999)
  • %F : 相当于 %Y-%m-%d

在这里插入图片描述

  1. 在设定时间方面

date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
3. 时间戳

  • date +%s 显示当前时间的时间戳。
  • date -d @时间戳 将时间戳转换为时间。
    在这里插入图片描述

find

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
    语法 find path -options mame
    功能 用于在文件树种查找文件,并作出相应的处理
  • -name 按照文件名查找文件。
  • -size 按照文件大小查找文件。-50M 小于50M +50M 大于50M
  • -ctime 按最新修改的时间查找 -5位最近五天
  • -type 根据文件类型查找

which

查找某一条命令所在的路径。
语法: which 指令
功能: 用于查找某一指令的程序文件所在路径。
命令实际上也是一个可执行程序,它所在的目录可以不用让执行这些命令时加路径,直接使用命令即可。
在这里插入图片描述

alias 起别名 为ls -l指令起别名

grep

grep是文本行过滤工具,它在过滤时以行为基本单位。将符合条件的行显示出来。
语法: grep 选项 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来。
** 常用功能**

  • -i 忽略大小写
  • -n 顺便输出行号
  • -v 反向选择
  • -R 递归搜索 查找不止一个文件

zip/unzip

zip指令用于打包压缩目录或文件。
语法: zip 选项 压缩文件 .zip 待打包目录或文件
功能: 将目录或文件打包压缩成zip格式。
常用选项

  • -r 递归处理,将指定目录下的所有文件和子目录一并处理。

如果没有加-r选项,zip默认只是打包压缩目录。
在这里插入图片描述

  • 如果要解压到指定目录必须带上-d选项:

在这里插入图片描述

tar

tar指令也可以用来打包压缩和解压文件,并且还可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。
语法: tar 选项 压缩文件 …
功能: 打包/解包,不解开压缩包,直接查看里面内容。
常用选项:

  • -c 建立一个压缩文件的参数指令(create的意思)。
  • -x 解开一个压缩文件的参数指令。
  • -t 查看tarfile里面的文件。
  • -z 是否同时具有gzip属性?即是否需要用gzip压缩?
  • -j 是否同时具有bzip2属性?即是否需要用bzip2压缩?
  • -v 压缩的过程中显示文件(常用)。
  • -f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
  • -C 解压到指定目录。

在这里插入图片描述
在这里插入图片描述

bc

bc命令可以很方便的进行浮点运算
语法: bc进入计算器 输入表达式 按回车进行计算 Ctrl+C退出计算
功能: 进行运算。

在这里插入图片描述

uname

语法:uname [选项]
功能:uname用来会哦去电脑和系统的相关信息
常用选项

  • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

在这里插入图片描述

  • -r 输出电脑和操作系统相关信息。内核版本+CPU架构

在这里插入图片描述

file

语法: file
功能: 查看文件的更多属性信息。

在这里插入图片描述

热键

  • [Tab]按键—具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

shutdown 和reboot

关机语法:shutdown [选项]
重启语法:reboot [选项] / init 6
常见选项

  • -h 将系统的服务停掉后,立即关机。
  • -r 将系统的服务停掉之后就重新启动。
  • -t sec: sec 经过sec秒后关机。

扩展命名

  • 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
  • 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
  • 系统关系相关命令: df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
  • 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
  • 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who。
  • 其他命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

shell命令以及运行原理

  • Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“
  • shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
  • shell相当于用户和操作系统之间的媒介,用来和用户交互,提升用户的操作体验。同时用来保护操作系统。

运行原理:

  1. shell创建子进程,让子进程进行命令行解释。父进程进入休眠,等待子进程运行完毕。
  2. 子进程出现任何问题,都不影响父进程Shell。
;