《前端运维》一、Linux基础–01基础命令与vim

在开始之前,你需要做一些准备工作,去阿里买一台服务器,服务器的具体细节其实并不是十分重要,我也不会在这里一步一步的教大家如何去买一个服务器。百度一下足够了,但是还是要贴一下这系列文章中,我所使用的服务

大家好,又见面了,我是你们的朋友全栈君。

在开始之前,你需要做一些准备工作,去阿里买一台服务器,服务器的具体细节其实并不是十分重要,我也不会在这里一步一步的教大家如何去买一个服务器。百度一下足够了,但是还是要贴一下这系列文章中,我所使用的服务器系统及其版本:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 版本之间应该不会有太大的差异,但是最好不要选太新的版本,因为还不够稳定。好了,下面我们开始进入正题。

零、开始之前

在开始linux相关的内容之前,得先简单聊一下背景,比如什么是服务器。除了linux以外还有什么其他的系统之类的。先从什么是服务器开始吧。其实服务器就是电脑,跟我们平时打游戏,看电影,学习使用的电脑并没有什么特别的区别,无非就是运行速度更快,负载更高,简而言之就是性能特别好的电脑罢了。而作为区分,可以从另外一个角度去理解,存储数据的电脑就是服务器,获取数据的电脑就是客户端,服务器为客服端提供数据服务。

好了,我们现在大体能区分出来什么是服务器,什么是客户端了。那就像我们使用的电脑一样,只有电脑还不行,还需要安装操作系统,比如我们平常上网使用的windows系统,mac系统等等。服务器也有很多的系统,其中最主要的有四大服务器系统,分别是:

  1. Windows Server,是美国微软公司研发的一套操作系统,后续的系统版本由于微软不断更新升级,不但易用,也是当前应用最广泛的操作系统。
  2. Linux,是开源系统,受到所有开发者的共同监督,已经是非常成熟的服务器系统,并且拥有着一套完整的权限机制,安全性与稳定性都很高。
  3. Unix,作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域。
  4. Netware,是具有多任务、多用户的网络操作系统,一般适用于各种工作站操作的系统。

那其实上面都是百度来的,给大家一个简单的了解即可。就我个人的理解,Netware已经逐渐退出历史舞台,或许极特殊的场景才会用到。Unix本身过重,价格又高(百度来的,不然我又没经历过我哪知道咋回事)。windows呢,大多数用于客户端的使用,服务器我个人知道的真的用的不多。所以最后就只剩下Linux,开源,成熟,可移植性高,社区丰富。

最后,我们来看下阿里云上可购买的服务器都有哪些,都是什么,都有什么区别:

  • Alibaba Cloud Linux,Alibaba Cloud Linux(原Aliyun Linux)是阿里云推出的Linux发行版,针对阿里云基础设施做了深度的优化,Alibaba Cloud Linux镜像由阿里云官方提供长期支持和维护(LTS),针对ECS做了大量深度优化,完全兼容CentOS生态和操作方式。
  • Windows Server,是微软在2003年4月24日推出的Windows 的服务器操作系统,其核心是Microsoft Windows Server System(WSS),每个Windows Server都与其家用(工作站)版对应
  • CentOS,CentOS是Community Enterprise Operating System的缩写,也叫做社区企业操作系统。是企业Linux发行版领头羊Red Hat Enterprise Linux(以下称之为RHEL)的再编译版本(是一个再发行版本),而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖
  • Ubuntu,Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”“我的存在是因为大家的存在”,是非洲传统的一种价值观。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。其实可以理解为就是Linux的桌面版。
  • Debian,Debian系统目前采用Linux内核或者FreeBSD内核。
  • SUSE Linux,SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。
  • Open SUSE,是由Novell发起的开源项目,旨在推进Linux的广泛使用,提供了自由简单的方法来获得世界上最好用的Linux发行版之一。
  • CoreOS,是一个基于Linux 内核的轻量级操作系统,为了计算机集群的基础设施建设而生,专注于自动化,轻松部署,安全,可靠,规模化。
  • FreeBSD,是一种类 UNIX操作系统,是由经过 BSD386BSD 和 4.4BSD 发展而来的Unix的一个重要分支。
  • Fedora CoreOS,Fedora CoreOS是Fedora Atomic Host和CoreOS Container Linux的后续产品,作为运行容器化工作负载的新发行版,重点在于安全性和可扩展性。
  • Fedora,是由Fedora项目社区开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由(开放源代码)的操作系统。Fedora是商业化的Red Hat Enterprise Linux发行版的上游源码。

一共这些,都是从百度百科和知乎啥的粘下来,大家了解下就行了。其实纵观上述内容,各个系统无非就是Linux或unix的各种分支版本,但是既然准备学习Linux,我们就不能仅仅只知道Linux,还得在其基础上有些额外的了解。

一、目录

作为一台电脑,我们首先要知道的就是其目录的含义及用处,在后面的学习中十分重要,这些都是最基础的概念。我们可以先来看一下,linux中都有哪些目录:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 我们看到一共有这些目录,那么下面我们一一解释一下:

  1. /,即系统的根目录。注意,在linux中并没有windows中的C盘、D盘这样的分区,所以“/”就可以简单理解为windows的C盘目录。用于存放系统文件。
  2. /boot,启动目录,启动相关文件。
  3. /dev,设备文件
  4. /etc,配置文件
  5. /home,普通用户的家目录,可以操作
  6. /lib,系统库保存目录
  7. /mnt,移动设备挂载目录
  8. /media,光盘挂载目录
  9. /misc,磁带机挂载目录
  10. /root,超级用户的家目录,可以操作
  11. /tmp,临时目录,可以操作
  12. /proc,正在运行的内核信息映射,主要输出进程信息、内存资源信息和磁盘分区信息等等
  13. /sys,硬件设备的驱动程序信息
  14. /var,主要针对常态性变动文件,包括缓存(cache)、登录文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),或者例如Mysql数据库的文件等
  15. /bin,普通的基本命令,如ls、chmod等,一般的用户也都可以使用。
  16. /sbin,基本的系统命令,如shutdown、reboot,用于启动系统,修复系统,只有管理员才可以运行
  17. /usr/bin,后期安装的一些软件的运行脚本
  18. /usr/sbin,放置一些用户安装的系统管理的必备程序

以上只是简单地目录结构,还不够详细,但是目前这些足够了,更细致的内容会在后面的学习中更加深入。

二、命令的基本格式

1、命令提示符

我们先来看个图:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 上面的图中实际上有四个关键信息,是这样的[当前登录用户@主机名 当前工作目录]提示符。我们再来看上图:

  1. root,即当前登录用户,
  2. @后面的一串就是主机名(我买的时候就这样啊,可以改的)。
  3. ~即当前用户的家目录,root就是/root,普通用户就是/home/用户名。(这个很简单,可以自己验证一下)
  4. 中括号后面的#就是提示符,超级用户是#,普通用户就是$。

2、命令格式

这个我就简单说下吧,很好理解。命令格式就是这样的:

命令 [选项] [参数]

其中当有多个选项的时候,可以写在一起,参数呢有简化和完整写法,是等效的。

3、ls命令

ls [选项] [目录或文件],即查询目录中的内容,选项有这些

  • -a,显示所有文件,包括隐藏文件。
  • -l,显示详细信息。
  • -d,查看文件本身的属性,而非子文件。
  • -h,人性化的方式显示文件大小。
  • -i,显示inode,也就是i节点,每个节点都有ID号。

以上的命令,其实都不复杂,大家自己要去试一下。

那么这里有个需要详细说明一下的内容,就是当我们使用ls -l命令,显示的信息是什么意思,如下图所示:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 我们先分解下红框里的内容:

d rwx r-x r-x .   2 root root 6 May 4 19:18 readbook
文件类型和权限 硬链接引用计数 所有者 所属组 文件大小 最后修改时间 文件名

这里面唯一要多解释一下的就是文件类型和权限,表格中的部分我都用空格分割开了,一一解释一下:

  • d,代表文件的类型,可能的值有这些,其中-和d是最常见的类型:
    • -:普通文件,
    • d:目录文件,
    • l:链接文件,
    • b:设备文件,
    • c:字符设备文件,
    • p:管道文件。
  • 后面的三部分其实都由rwx组成:
    • r:read、读、4
    • w:write、写、2
    • x:execute、执行、1
    • 其中-即代表没有对应权限。后面的数字代表着对应的权限数值。分为的三组,按照顺序分别代表着文件所有者、文件所属组、其他用户。
  • 最后的”.”,代表ACL权限,简单来说就是我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限的分配。

三、文件处理命令

 我们先罗列一下常用命令及其含义:

  1. mkdir [目录名],创建目录,
    • -p,允许创建目录及其子目录,比如mkdir -p a/b/c。
  2. cd  [目录名],切换目录。相对路径是根据当前所在目录而言。绝对路径是从根目录开始。TAB可以补全命令或目录。
    • ~,家目录。
    • . ,当前目录
    • .. ,上级目录
  3. pwd,显示当前目录
  4. rmdir  [目录名],删除目录
  5. rm [选项] [文件或目录名],删除文件或者目录。
    • -r,递归删除目录
    • -f,强制删除
    • -rf,递归强制删除所有目录。慎用!
  6. cp  [源文件或目录名] [目标文件或目录名],复制。
    • -r,复制目录,默认是复制文件
    • -p,连带文件属性复制
    • -d,若源文件是链接文件,则复制链接属性
    • -i,可重命名文件,会在复制的时候提示,如果存在同名文件,是否覆盖
    • -a,相当于-rpd。
  7. mv [源文件或目录名] [目标文件或目录名],移动文件或者改名。
  8. ln [源文件] [目标文件],链接命令,生成链接文件。可以理解成windows桌面上的快捷方式。
    • 硬链接,拥有相同的i节点和存储block块,可以看做是同一个文件,可以通过i节点访问,不能跨分区,不能针对目录使用,一般不使用。
    • 软连接,-s即创建软连接,类似windows的快捷方式,软连接拥有自己的i节点和block块,但是数据块中只保存源文件的文件名和i节点号,并没有实际的文件数据。软连接的文件权限都是777,修改任意一个文件,另一个都会改变,删除源文件,软连接不可以使用,软连接源文件必须写绝对路径。

以上,我们已经了解了一些基本的文件处理命令,那么下面,我们基于此来看一些例子:

 ok,我们先执行cd /,来到根目录

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 然后,我们执行mkdir a/b/c

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 哦吼,他报错了,当然它肯定会报错的,我们回忆一下,好像缺了点什么

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 是的,我们缺了一个“-p”的选项,递归创建,好了,目录创建完了,我们进去看看吧。执行cd a

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 一如我们所料,那…我想把b文件删了,该怎么办呢?哦对了,rmdir命令。我们来试一下

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 可惜,又报错了,好像又缺了点什么,它说文件夹不是空的,哦对了,刚才我们创建了一个递归的目录,所以b下面还有c,所以以此可以知道rmdir不能删除非空文件夹,那在怎么办呢?

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 根据上面学习的内容试了下-r和-f,好像都不行,哎?给了提示,试一下–help。哦,好像用-p可以:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 终于可以了。

除此以外,还有另外一种方法,rm -r也可以。

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 但是这样好像有点麻烦,它会一级一级的让你去确认,有没有更舒服一点的方法呢,那我们把删除掉的b/c复原一下(复原过程省略)。于是我们的目录又变成这样了:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 我们使用rm -rf

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 这里尤其强调一下,如果在实际工作中,你有root权限,请一定要小心使用这个命令,如上图所示,删除了所有的东西又不会有任何提示。

好了,我们上面是删除的目录,那我删除个文件试试:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 删除文件会有提示。

以上,我们经历了简单地创建文件夹、进入文件夹、删除文件夹及文件等内容。下面我们继续。

首先我们先想一个问题,假设我不是root用户,我刚进入服务器,或者我经历了大量的操作,忘记了当前目录在哪。怎么办呢?

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

pwd命令可以告诉你所处的位置。

那,我们现在来试试复制一个文件夹或文件:

我们进入到a目录,把之前存在的b目录删掉,然后创建两个文件夹b1和b2,所以我们的目录现在是这样的:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

然后呢,我们进入b1,创建个文件,名字叫c1.js好了。

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

最后呢,我们把c1.js复制到b2中去:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

这样就完成了复制。

如果我想复制的时候改名的话,可以试一下-i选项。

ok,我们完成了复制,那我想把c1.js从b1目录移动到b2目录怎么办呢?我们使用时光机,回到b1文件夹中有c1.js而b2中没有的那个时刻,然后移动c1.js到b2目录

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

很简单,这样我们就完成了移动。

最后,我们来看下链接怎么使用。我们先到b2里。然后执行命令

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

这样,我们就创建了一个硬链接。然后,我们再来创建个软连接:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

那,这也看不出来软和硬到底有啥区别啊,那我们这样:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 可以看到一点区别了吧,具体的内容跟我上面说过的一样哦,如果不理解,可以回过头去看一下之前的内容。

 

四、文件搜索命令

按照我们之前的方式,先把相关的命令罗列一下:

  1. locate,搜索文件所在位置,比如locate 1.js
    • 需要依赖mlocate,通过yum install mlocate -y来安装
    • 数据保存在/var/lib/mlocate后台数据库,每天更新一次
    • 可以updatedb命令立刻更新数据库
    • 只能搜索文件名
  2. whereis,搜索命令所在路径以及帮助文档所在位置,比如 whereis ls
    • -b,只查找可执行文件
    • -m,只查找帮助文件
  3. which,可以查找别名,比如which ls
  4. 环境变量,通过echo $PATH命令可以查看,定义的是系统搜索命令的路径
  5. find,文件搜索命令,find [搜索范围] [搜索条件]
    • 按名称搜索,避免大范围的搜索,会十分消耗性能。比如:find / -name 1.js
    • 通配符,其实就是类似于js正则。

      • *匹配任意内容
      • ?匹配任意一个字符
      • []匹配任意一个中括号中的内容
    • -i,不区分大小写,比如find / -iname A.js
    • -user,按所有者进行搜索 
      • find /root -user root
      • find /root -nouser
    • 按时间搜索,find /a/1.js -mtime -5
      • mtime:文件访问时间,ctime:改变文件属性时间,mtime:修改文件内容时间
      • -5:五天内修改的内容,5:五天前当前修改的文件,+5:五天前修改的文件。
    • 按大小搜索,-size,find . -size 100k
      • -8k:小于8k,8k:等于8k,+8k:大于8k,+8M:大于8M
    • -inum,按照i节点搜索,比如find . -inum 123456,find . 中.的意思是搜索范围为当前目录下的所有文件
    • -a,既and,逻辑与,两个条件都满足。-o,既or,逻辑或,满足一个条件即可。比如:find /tmp -size +10k -a -size -20k
  6. grep,在文件当中匹配符合条件的字符串,也就是匹配的是文件中的内容,而不是文件名。
    • -i,忽略大小写
    • -v,排除指定字符串

我们来实践一下我们学习过的命令:

1、首先,我们在根目录创建一个demo文件夹,在demo文件夹内创建一个test.js的文件,那么现在我们的目录结构看起来是这样的:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 然后,要注意的是locate命令需要依赖一个mlocate数据库。我们通过yum install mlocate -y安装即可。然后我们使用locate test.js命令:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 结果什么也没发生,好像不太对劲,哦对了,mlocate是依赖数据库的,它大概每五分钟更新一次,所以,刚才我们创建的test.js文件还未更新,我们可以使用updatedb命令立即更新数据库,然后再执行查询命令:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 这样就达到我们的目的啦。

2、whereis是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件,很简单:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 那么第一个是目标名称,就是“冒号”前面的,冒号后面的第一个路径就是它的执行文件路径,第二个或者后面的就是帮助页面所在路径。如果只是想查看它的可执行文件路径,可以使用:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 3、which比较简单,就是查找别名

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 输出的结果什么意思呢,就是我们使用的ls实际上是命令ls –color=auto的别名,执行ls就相当于执行ls –color=auto了。

4、打印环境变量,这个也没啥好说的

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 5、find命令的选项比较多,需要大家都试一下。

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 6、这个要注意,它查找的是文件的内容,而不是文件名啊什么的。那,我们现在test里面通过vim(下节会讲)写东西:

 <span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 <span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

好了,我们把之前学过的命令都简单实践了一遍,我们往下继续学下压缩。

五、压缩与解压缩命令

  1. zip格式
    • 压缩文件,zip [压缩文件名] [原文件]
    • 压缩目录,zip -r [压缩文件名] [源目录]
    • 解压,unzip [压缩文件名]
  2. gzip格式
    • gzip [源文件],gzip a.txt,压缩为.gz格式的压缩文件,源文件会消失
    • gzip -c [源文件] > [压缩文件],gzip -c yum.txt > yum.txt.gz,压缩为.gz格式的压缩文件,源文件会消失
    • gzip -r [目录],gzip -r xx,压缩目录下的所有子文件,但是不压缩目录
    • gzip -d [压缩文件名],gzip -d yum.txt.gz,解压缩文件,不保留压缩包
    • gunzip [压缩文件],gunzip yum.txt.gz,解压缩文件,不保留压缩包
  3. tar,打包命令,只打包,不压缩
    • -c,打包
    • -v,显示过程
    • -f,指定打包后的文件名
    • -x,解打包
  4. bz2格式,不能压缩目录
    • bzip2 源文件,bzip2 1.txt,压缩为.bz2格式的文件,不保留源文件
    • bzip2 -k 源文件,bzip2 -k 1.txt,压缩为.bz2格式的文件,保留源文件
    • bzip2 -d 压缩文件名,bzip2 -d 1.txt.bz2,解压压缩包
    • bunzip2 压缩文件名,bunzip2 1.txt.bz2,解压压缩包
  5. tar.gz压缩,zip可以压缩目录,但是压缩效率不高,gzip压缩效率高但是不能压缩目录,所以先通过tar打包后再通过gzip压缩。
    • tar -zcvf book.tar.gz book,压缩
    • tar -zxvf book.tar.gz

我们继续实践:

1、我们继续使用之前的test.js文件来实践压缩命令即可:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 多了个zip文件,那名字是我们随便写的么?

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 答案是是的。解压缩的命令,大家可以自己去试一下哦。有惊喜哦。

2、gzip使用的比较多,因为压缩比比较大。

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

我们看到,gzip压缩后,源文件消失了。

那我们先把刚压缩的gz包解压缩一下:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim 

然后为了让目录干净点,我们把test.zip和test.zip.js删除掉。只留下test.js。

假设我们不想让gzip压缩后的源文件消失,我们可以这样用:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

这里要强调一下,zip可以压缩目录和文件,但是gzip只能压缩文件,不能压缩目录。

3、tar命令仅仅只是打包命令,不是压缩命令,所以tar经常与gzip压缩一起使用。这样就可以打包并压缩文件夹了。

我们新建一个book目录,,然后book目录下有两本书,分别是zaking.txt和wong.txt。

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 然后我们可以先执行tar打包命令,再执行gzip压缩:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 然后再压缩我们刚才打包的tar包:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 这样就有了最终的book.tar.gz,但是其实我们还可以使用更简单的命令,直接打包压缩成tar.gz,我们先把现在book.tar.gz删除了:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 一步到位!

六、关机和重启命令

这个就简单说一下

  1. shutdown,关机命令
    • -c,取消前一个关机命令
    • -h,关机
    • -r,重启,shutdown -r 06:00
  2. init,关机
    • init 0,关机
    • init 6,重启
    • 系统的运行级别:
      • 0 关机
      • 1 但用户
      • 2 不 完全多用户,不包含NFS服务
      • 3 完全多用户
      • 4 未分配
      • 5 图形界面
      • 6 重启
  3. logout,退出登录

这些命令就不带大家去一一实践了,有兴趣自己玩下。哈哈。

七、查看用户登录信息

  1. w,查看登录用户信息,结果列表中的含义分别是:
    • USER 登录的用户名
    • TTY 登录的终端 tty1 本地终端 pts/0远程终端
    • FROM 登录的IP
    • LOGIN 登录时间
    • IDLE 用户闲置时间
    • JCPU 该终端所有进程占用的时间
    • PCPU 当前进程所占用的时间
    • WHAT 正在执行的命令
  2. who,查看登录用户信息:
    • USER 登录的用户名
    • TTY 登录的终端 tty1 本地终端 pts/0远程终端
    • LOGIN 登录时间(登录的IP)
  3. last,查看当前登录和过去登录的用户信息 默认读取 /var/log/wtmp 文件
    • 用户名
    • 登录终端
    • 登录IP
    • 登录时间
    • 退出时间(在线时间)
  4. lastlog,查看所有用户的最后一次登录时间
    • 用户名
    • 登录终端
    • 登录IP
    • 最后一次登录时间

这些命令咱们可以来玩一下:

1、w,直接一个w就完事。具体的字段上面有解释

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 2、who,解释看上面,哈哈

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

 last和lastlog,大家可以自己试下。

八、查看文件命令

  1. cat,链接文件并打印到标准输出设备上
  2. more,类似cat,但会一页一页的打印出来,方便查看
  3. head,head -n 5 wong.txt,用于查看文件开头多少行的内容。
  4. tail,tail -n 5 wong.txt,默认显示尾部的10行内容。

这几个命令很短小,但是十分有用。我们一起来试一下:

我们就用刚刚的那本叫wong.txt的书,我已经在里面写了一些内容,通过cat来查看:

<span role="heading" aria-level="2">《前端运维》一、Linux基础--01基础命令与vim

这样会全部显示到命令行中,不太好查看,所以我们可以使用more命令。

head和tail命令,大家可以自行尝试。这里就不多说了。

其实就单拿以上的命令来说,还有很多额外的选项可以使用。这里不再多说。

 九、Vi与Vim

先说下这俩玩意都是啥吧。首先,Vi是linux选默认的文本编辑器。就像Windows里的记事本一样。然后,Vim就是Vi的升级版。没了,这篇文章的范围内你知道这些就足够了。(因为后面我也不知道了)

在开始学习相关的命令之前,我们要先来了解一下Vi的三种常用模式。要注意,这三种只是最常用的,并不是所有的。

  1. 普通模式
  2. 插入模式
  3. 命令行模式

还是以前面内容中的wong.txt文件为例,输入vi wong.txt进入普通模式。此时,要开始学习了。

可以通过输入键盘按键:

  1. a,append,在光标后面插入字符
  2. i,insert,在光标处插入字符
  3. o,换行插入字符
  4. s,删除当前光标处字符,插入字符。

进入插入模式。

然后呢,按esc键,进入命令模式:

  • :w,把写入字符保存到硬盘中
  • :q,退出当前vi编辑器打开的文件
  • :wq,保存并退出
  • :wq!,强制保存并退出
  • :15,跳转到指定行
  • /xxx,从光标开始向后搜索内容
  • ?xxx,从光标开始向前搜索内容。

在命令模式下,可以通过键入以下按键,来操作光标位置

  • h,左移
  • j,下移
  • k,上移
  • l,右移

可以通过键入以下按键,来操作翻页

  • ctrl + f,向下翻页
  • ctrl + b,向上翻页
  • ctrl + d,向下翻半页
  • ctrl + u,向上翻半页

通过键入,

  • x,可以删除当前光标字符。
  • dd,删除光标所在行

通过键入,

  • u,撤销上一次的操作

通过键入,

  • yy,复制光标所在行
  • p,在光标所在行的下行黏贴
  • P,在光标所在行的上行黏贴

通过键入,

  • r,替换当前字符

可以通过键入:

  • :s/old/new,把光标所在字符的old换成new
  • :s/old/new/g,把光标所在行的old换成new
  • :%s/old/new/g:将当前文件所有行的old替换成new,%是第一行的意思

vi的基本使用方法差不多就这些了。

 

好了,今天就到此为止了,我们总结一下目前学过的内容:

1、我们简单学习了linux系统的基本目录结构。以及/和~都是什么。

2、还学习了命令的基本格式。

3、然后,我们还学习了一些常用的增删改查的命令,以及软硬链接的区别。

4、还学习了一些文件搜索命令、压缩命令、用户信息相关,以及文件内容查看的命令。

5、然后我们一起对学习过的命令进行了实际的操作

6、最后,我们学习了一下vi的相关命令。

 

实际上,这篇内容仅仅只是简单地罗列了基本的linux命令以作了解和学习,以上的每一个命令其实都由更深入的内容,比如更多的选项,更多的关联性,更多的底层原理等等。这些应该在更深入的背景下再去学习。本人能力有限,也是初学linux。无法给大家提供更深入的理解,但是入门是够了的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124375.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数组和链表的区别浅析

    数组和链表的区别浅析1.链表是什么链表是一种上一个元素的引用指向下一个元素的存储结构,链表通过指针来连接元素与元素;链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思就是说,链表就是将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。所以,链表允许插入和删…

  • 软件设计和开发准备

    软件设计和开发准备1.团队序号:1撰写人:施贤开发软件名称飞机大战产品代码仓库: https://gitee.com/tanglibo/plane_wars软件测试工程师商守义:https://git

  • 键值对pair「建议收藏」

    什么是pairpair类是C++标准库的一部分,它使得我们可以在一个对象的内部把相同类型或不同类型的两个值关联起来,它被包含在头文件unility中:pair类的结构大致如下:template&lt;classT1,classT2&gt;classpair{public:pair(T1v1,T2v2):first(v1),s…

  • Python面试必备的7大问题

    本文给大家总结了Python面试必备的7大问题。例如:交换变量值、is 和 == 的区别、可变对象和不可变对象、连接字符串用join还是+、__new__和__init__的区别,等等。

  • C语言中三目运算符_c语言中的单目运算符

    C语言中三目运算符_c语言中的单目运算符三目运算符三目运算符:也叫三元运算符。这个运算符的符号是:?:语法:表达式1?表达式2:表达式3;语义:先执行表达式1,执行完毕,表达式1的结果如果为真,那么执行表达式2,并且这

  • 计算机学生选课系统毕业论文,学生选课管理系统论文「建议收藏」

    计算机学生选课系统毕业论文,学生选课管理系统论文「建议收藏」摘要本学生选课信息管理系统是选课信息展现与管理的系统,能够解决学生的选课问题,提高教务处管理学生选课的效率,降低人力物力财力的开销,具有重要的社会研究价值和研究意义。论文介绍了学生选课信息管理系统的研究背景、项目意义和目前的研究与应用现状,明确了论文研究的内容和主要工作:在业务分析中,论文对系统存在的问题、学生选课信息管理系统进行了细致的需求分析,涵括系统业务、功能、数据,对原有业务流程进…

    2022年10月15日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号