01Linux常用指令

所有的指令不要强制记忆,选项要多多查一下,多多练习使用即可。

文章目录

  • 一、Linux简单介绍
    • 1.1.Linux的目录结构
    • 1.2.常见的具体目录结构
      • /bin
      • /sbin
      • /root
      • /lib
      • /etc
      • /usr
      • /boot
      • /tmp
      • /dev
      • /media
      • /mnt
      • /opt
      • /usr/local
      • /var
    • 1.3.路径
    • 1.4.空文件的大小
  • 二、常用的指令
    • whoami
    • ls
    • pwd
    • cd
    • touch
    • mkdir
    • rmdir
    • rm
    • man
    • cp
    • mv
    • echo
    • cat
    • tac
    • more
    • less
    • head
    • tail
    • date
    • cal
    • find
    • which
    • grep
    • zip压缩和unzip解压
    • tar
    • bc
    • uname
    • file
    • clear
  • 三、高频使用的按键(热键)
  • 四、关机和重启命令
  • 五、扩展命令
  • 六、shell命令以及运行原理


一、Linux简单介绍

Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲, Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。

linux是一个开源、免费操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/c++/php/python/java/go)都会部署到Linux/unix系统上。
目前市面上常见的操作系统有Linux、Windows、iOS、Android等。

linux在服务器领域的应用是最强的。因为linux免费、稳定、高效等特点在这里得到了很好的体现,尤其在一些高端领域(C++/Java等)尤为广泛。
同时在嵌入式领域、个人桌面领域、大数据/云计算也有广泛的应用。

Linux安装:Linux可以采用虚拟机或云服务器的方式来运行,并用Xshell远程登录。网上教程很多,在此省略。

01Linux常用指令_第1张图片

1.1.Linux的目录结构

不同于Windows,linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。这些目录的名字是不可以更改的。
01Linux常用指令_第2张图片

目录结构和命令行对Linux的学习非常重要,因为在实际生产中是没有图形化界面的,只有一个控制台窗口,如果对目录结构不熟悉很容易蒙圈。

Linux下一切皆是文件,对于硬件,Linux也会映射成文件来进行管理。

1.2.常见的具体目录结构

/bin

是binary的缩写,这个目录下存放着Linux下最经常使用的命令。

/sbin

s就是super user的意思,这个目录下存放的是权限比较高的指令,也就是系统管理员(root)使用的指令。

/root

该目录为系统管理员,也称作超级权限者(root)的用户主目录。

/lib

系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/etc

所有的系统管理所需要的配置文件和子目录,安装的所有程序的配置文件默认放在这个目录下面。

/usr

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

/boot

存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

/tmp

用来存放一些临时文件。

/dev

类似于windows的设备管理器,把所有的硬件用文件的形式存储

/media

linux系统会自动识别一些设备,例如U盘、光驱等等,当识别I后,linux会把识别的设备挂载到这个目录下.

/mnt

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。

/opt

这是给主机额外安装软件所存放的目录。可以将安装文件放在这个目录中,便于程序的管理。默认为空。

/usr/local

这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。

/var

这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。

1.3.路径

在Linux下目录用分割符/分隔开来,就像Windows下用\将文件夹分割开来。

01Linux常用指令_第3张图片
在这里插入图片描述

同时,Linux下也存在绝对路径和相对路径,任何一个目录都有从根目录开始的唯一的绝对路径,而相对路径是有多个的。

1.4.空文件的大小

空文件也是占用磁盘空间的,文件由文件内容和文件属性(文件大小,文件名称等)组成,对于一个空文件,文件属性是存在的,所以这个空文件也会占用磁盘空间。
所以,即使一个文件的大小为0,它也是要占磁盘空间的。


二、常用的指令

whoami

语法: whoami
功能: 显示用户当前的身份。
在这里插入图片描述

ls

ls的作用是显示当前目录的文件和子目录
语法: ls 选项 目录或文件
功能: 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,该命令列出文件名以及其他信息。
常用选项:

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

01Linux常用指令_第4张图片
每个目录下默认存在两个隐含文件 . 和 . . ( . 代表当前目录 . . 代表上级目录)。

  • -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

01Linux常用指令_第5张图片

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

在这里插入图片描述

  • -l 列出文件的详细信息。
    ls -l可以简写为ll

01Linux常用指令_第6张图片

  • -n 用数字的 UID,GID 代替名称。
    UID和GID相当于用户和所属组的身份信息,就像身份证一样,在系统中是唯一的。

01Linux常用指令_第7张图片

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

在这里插入图片描述

  • -r 对目录反向排序。

01Linux常用指令_第8张图片

  • -t 以时间排序。
    01Linux常用指令_第9张图片

在t前面加r即可实现正序排序
01Linux常用指令_第10张图片

  • -s 在文件名前输出该文件的大小。
    01Linux常用指令_第11张图片

  • -R 列出所有子目录下的文件。
    01Linux常用指令_第12张图片

  • -1 一行只输出一个文件。
    01Linux常用指令_第13张图片

pwd

语法: pwd

功能:显示用户当前从根目录开始的所在目录
在这里插入图片描述

cd

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

目录名可以按照绝对路径或者相对路径来写,例如:

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

touch

该命令只能用来创建普通的文本文件,其中文件的后缀与文件的属性无关,但为了符合人的习惯还是应该加上文件后缀,比如.c .txt等。

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

常用选项

  • -a 更改Access和Change的时间。

01Linux常用指令_第14张图片

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

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

01Linux常用指令_第15张图片

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

mkdir

该命令可以用来创建目录
语法: mkdir 选项 dirname
功能: 在当前目录下创建一个名为“dirname”的目录。

常用选项

  • -p dirname可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以递归建立多个目录。

01Linux常用指令_第16张图片

rmdir

rmdir是一个与mkdir相对应的指令,mkdir是建立目录,而rmdir是删除目录。这个命令只能删除空目录。

语法: rmdir 选项 dirname
功能: 删除空目录
常用选项

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

rm

rm可以删除所有目录和文件。对于目录一般加上-r才能删除。

语法: rm 选项 dirname
功能: 删除文件或目录。
常用选项

  • -f 即使文件属性为只读(即写保护),也直接删除,不进行询问
    01Linux常用指令_第17张图片

  • -i 删除前逐一询问确认

在这里插入图片描述

  • -r 递归式删除目录及其下所有文件和目录

rm -rf /则是从根目录下不询问式递归删除所有文件和目录,这是一条删库跑路的指令,一定要慎用。

man

man命令可以在man手册中查看具体的命令用法。
语法: man 选项 指令
功能: 查看指令的使用规则等。
常用选项:

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • -a 将所有章节的都显示出来

man手册是英文的,还有中文的手册cman,man和cman都需要自己安装。

手册分为8章:

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

cp

cp指令可以将文件或目录拷贝到另一个地方。
语法: cp 选项 源文件或目录 目标文件或目录
功能: 复制文件或目录。
常用选项

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

  • -i 或 --interactive 如果文件已经存在,则拷贝覆盖文件之前先询问用户
    01Linux常用指令_第18张图片

  • -r或-R递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
    01Linux常用指令_第19张图片

  • -p 在复制的时候文件的默认属性不变,包括最后修改时间、所属组等。

当拷贝的文件为多个或者全部时,可以用到通配符进行拷贝。

通配符是一种特殊语句,主要有星号 (*)和问号 (?),用来模糊搜索文件。 当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。

01Linux常用指令_第20张图片

01Linux常用指令_第21张图片

mv

mv类似于剪切功能,讲一个文件或目录移动到另一个目录中。
语法: mv 选项 源文件或目录 目标文件或目录
功能
(1)当第二个参数是不存在的名称时,mv指令完成文件重命名或目录重命名。
01Linux常用指令_第22张图片

(2)当第二个参数是已存在目录名称时,mv指令将文件移动置该目录中。
01Linux常用指令_第23张图片

echo

这个指令可以将字符串显示到显示器或者重定向输入到文件中。
语法: echo 字符或字符串

01Linux常用指令_第24张图片

另外,在后面加上 >(格式化追加)文件名或者 >>(在文件末尾追加) 文件名可以将字符或字符串写入文件中:
01Linux常用指令_第25张图片

cat

cat命令可以将文件的内容显示到显示器中。
语法: cat 选项 文件
功能: 查看目标文件的内容。
常用选项

  • -b 对非空输出行编号。
    01Linux常用指令_第26张图片

01Linux常用指令_第27张图片

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

01Linux常用指令_第28张图片

  • -s 不输出多行空行,只会保留一行空行
    01Linux常用指令_第29张图片

tac

tac与cat相反,tac可以方向查看文件的内容。
语法: cat 文件
功能: 反向查看目标文件的内容。

01Linux常用指令_第30张图片

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

more

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

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

01Linux常用指令_第31张图片

more指令只能通过按回车键进行下翻操作,无法进行上翻操作,并且more指令在查看之前会先加载整个文件。

less

相比于more,less指令可以同时支持上翻和下翻操作。

语法: less 选项 文件
功能: 既有查看目标文件的内容的功能,又有搜索功能。

less指令可以通过按上下键进行上翻和下翻操作,并且less指令在查看之前不会加载整个文件。

常用选项
-N:在每一行前面都显示行号
-m:显示读取文件的百分比
-M:显示读取文件的百分比、当前页面的行号和总行数

翻页和查找操作

  • u:向前滚动半页
  • d:向后滚动半页
  • b:向前翻一页
  • f:向后翻一页
  • k:向前滚动一行
  • j:向后滚动一行
  • g:移动到第一行
  • G:移动到最后一行
  • 回车 向后滚动一行
  • 空格 向后翻一页
  • 上/下键 向前/向后滚动一行
  • h:显示 less 的帮助文档
  • /字符串 向下搜索“字符串”的功能。
  • ?字符串 向上搜索“字符串”的功能。
  • n 重复前一个搜索(与/或?有关)。
  • N 反向重复前一个搜索(与/或?有关)。
  • v 进入编辑模式,可编辑当前文件

head

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

  • -n<行数> 显示的行数
    01Linux常用指令_第32张图片

tail

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

  • -n<行数> 显示的行数
    01Linux常用指令_第33张图片

提取中间的行数:
01Linux常用指令_第34张图片

|叫做管道,作用是将前面head -5010 file.txt的输出写到管道中,再将管道中的数据拿出来执行tail -10,这样就可以输出前5010行的后10行了。

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

在这里插入图片描述

2.在设定时间方面

  • 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 @时间戳 将时间戳转换为时间。

01Linux常用指令_第35张图片

cal

cal指令可以用于显示公历(阳历)日历。
语法: cal 选项 月份 年份
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。

常用选项

  • -3 显示系统前一个月,当前月,下一个月的月历,年份和月份不用输入。
    01Linux常用指令_第36张图片

  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

01Linux常用指令_第37张图片

  • -y 显示当前年份的日历
    01Linux常用指令_第38张图片

find

语法: find 路径 选项 …
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘->效率比较低)。

路径不写默认为当前路径
常用选项

  • -name 按照文件名查找文件。
  • -size 按照文件大小查找文件。-50M 小于50M +50M 大于50M
  • -ctime 按最新修改的时间查找 -5位最近五天
  • -type 根据文件类型查找

01Linux常用指令_第39张图片

which

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

其中,alias的作用是起别名,ls是ls --color=auto的别名

因此如果把我们自己写的可执行程序放到这个目录下,也可以使用名字直接执行:

01Linux常用指令_第41张图片

01Linux常用指令_第42张图片

grep

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

常用选项

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,显示出没有 ‘搜寻字符串’ 内容的那一行

01Linux常用指令_第44张图片

zip压缩和unzip解压

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

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

01Linux常用指令_第45张图片

打包压缩目录的时候要加通配符/*,要不然并不会打包压缩目录下的文件,只是打包压缩目录。

语法: unzip 压缩文件.zip 选项 目录
功能: 将压缩文件解压到指定目录当中。

01Linux常用指令_第46张图片

如果要解压到指定目录必须带上-d选项
01Linux常用指令_第47张图片

tar

tar指令也可以用来打包压缩和解压文件,并且还可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。

语法: tar 选项 压缩文件 …
功能: 打包/解包,不解开压缩包,直接查看里面内容。

常用选项

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

01Linux常用指令_第48张图片

01Linux常用指令_第49张图片
01Linux常用指令_第50张图片

bc

bc相当于Linux下的计算器
语法: bc进入计算器 输入表达式 按回车进行计算 Ctrl+C退出计算
功能: 进行运算。

01Linux常用指令_第51张图片

uname

语法: uname 选项
功能: 用于获取电脑和操作系统的相关信息。可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项

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

在这里插入图片描述

  • -r 输出电脑和操作系统相关信息。内核版本+CPU架构
    在这里插入图片描述

file

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

01Linux常用指令_第52张图片

clear

语法:clear
功能:清空屏幕。


三、高频使用的按键(热键)

  • [Tab]按键—具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—退出当前命令行。相当于exit
  • 上下按键。上下按键在Linux当中存储的是历史命令,通过按上下键我们可以查看我们最近敲的命令。也可以使用history指令查看历史命令。

四、关机和重启命令

关机语法: shutdown 选项
重启语法:reboot 选项
常见选项

  • -h 将系统的服务停掉后,立即关机。
  • -r 将系统的服务停掉之后就重新启动。
  • -t sec 经过sec秒后关机。
    注: 所有关机指令只能由root用户执行。所有的指令必须要在开机的情况下输入,所以没有开机命令。

五、扩展命令

  • 安装和登录命令: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)有两种理解:

  1. 广义上的操作系统:shell+kernel+配套的软件(应用、驱动等)
  2. 狭义上的操作系统:指的就是内核,是纯粹的操作系统部分。

我们很难直接使用内核,因为学习成本太大,所以在内核外嵌套了一个“外壳程序”,帮助我们和内核进行交互,同时也可以保护内核。

Linux使用shell命令行界面,而在Windows下则使用图形化界面,这两者都是内核外的“外壳程序”,相当于用户和操作系统之间的媒介。

从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:将使用者的命令翻译给内核(kernel)处理。同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

简单来讲,shell相当于内核的一层“外壳程序”,主要的功能是对我们的指令进行解析,解析指令完成后发给Linux内核。内核运行出结果后通过shell输出给用户。如果我们输入的命令是错误的或者不存在的,那么就不会将解析指令发给Linux内核。

所以,shell相当于用户和操作系统之间的媒介,用来和用户交互,提升用户的操作体验。同时用来保护操作系统。

01Linux常用指令_第53张图片
Shell运行原理:

  1. 创建子进程,让子进程进行命令行解释。
  2. 子进程出现任何问题,都不影响父进程Shell。

另外, Shell只是所有外壳程序的统称,在centos 7当中的外壳程序名叫bash。bash相当于Shell的子集。

你可能感兴趣的:(Linux,linux,centos)