【Linux系统编程】命令模式1

简介: 【Linux系统编程】命令模式1

前言:

       使用Linux系统有很多方法,比如虚拟机,云服务器等,虽说形式有很多种,但基本方法都基本类同。本文我们使用云服务器的方式来进行操作命令的讲解,我自己用的是CentOS 7.9 64位操作系统,不同类型的操作系统少部分命令可能有些不同,后文会讲解。在已有自己的云服务器后可以安装一个Xshell的软件进行云服务器的操作。

一,云服务器登入

1,root超级用户的登入

       安装完Xshell工具后,我们需要远程连接自己的云服务器。首先,对于初学者来说,我先介绍一种基本的登入方式:ssh root@公网IP地址。其中,root是用户名,因为初次登入默认的都是root用户,即超级管理员(拥有最高的权限)。

       输入完命令后要输入开机密码,密码是自己在云服务器上设置的密码,对应Windows系统下的开机密码。输入完之后将会出现以下界面,即目前的系统已经是云服务器上的系统。

       只要出现以上红色部分的就说明登入成功。


2,系统的多用户使用

       一台机器可供多人使用,我们的云服务也是如此,通常,使用以下命令来创建一个新用户zhu(也可可以是其它名字,zhu只是)。

创建用户zhu:adduser zhu

给用户制定登入密码passwd zhu

       这里要说的是,在Linux系统中的命令行里输入密码是不显示出来的,我们不要以为是出问题了。

       当我们要删除此用户的时用userdel -r zhu即可删除,但是,若此用户已经在登入将删除失败,只能在用户已经退出时才可以删除。

       注意:要说明的是,普通用户无法完成新用户的创建和删除,只有超级用户root才有这些权限,而超级用户root的权限很大,因此,不要轻易的让别人使用超级用户root。


3,用户的显示

       使用命令whoami可显示当前用户,使用who显示当前有哪些人登入了我的机器。

       上图中,当前登入的用户是root超级用户,而有用户root110_user登入了我的机器,后面是用户登入机器的时间点。


二,基础命令模式

1,ls指令和pwd指令

       pwd指令是用来查看当前我所处的工作目录,即当前我使用的用户的目录

       ls指令查看当前目录下的文件信息,而文件信息有很多要点,所以ls的用法也很多,它的语法为ls [选项] [目录文件],我们常用的也就是“ls -l(等效于ll指令)目录”列出文件的详细信息和“ls -a 目录”列出目录下的所有文件,包括以.开头的隐含文件,而在这里要说的是在Linux系统下,我们可同时用多个选项,即用ls -al或ls -la或ll -a或ls -a -l或ls -l -a显示出文件信息,同时具备ls -a和ls -l的两大特性。

       不仅如此,还可以将目录像文件一样显示,而不是显示其下的文件,即命令ls -d [目录],如图:


2,touch,mkdir和cd指令
2-1文件,目录,路径的认识

      在介绍这方面的命令之前我们要先了解一下目录,文件和路径。文件相信大家都不陌生,通常用来存储信息数据,而目录在Windows系统下指的是文件夹。如下图:

Liunx的目录


2-2命令的安装和tree树形目录

       通常用树型结构查看目录用命令tree [目录],但在机器中一般是没有此命令的,我们需要安装此命令。安装命令的命令操作在不同机器中会有些不同,在CentOs中用yum install -y [命令]可安装命令;ununtu系统中用apt-get install [命令]可安装命令。因为本人的机器中已经安装过了,在这里我就不演示了。没有安装过的人且机器是CentOs系统的,直接输入yum install -y tree即可安装命令tree。tree的使用如下图:


2-3指令的初级运用

       有了以上的认识之后我们再看这些命令,具体使用如下;

      touch用法:touch 文件

       mkdir用法:mkdir 目录

       cd用法:cd 目录

       touch是创建一个文件,mkdir是在当前的目录里创建一个目录,cd是进入一个目录里。如下:

       以上只是普通的用法,在讲解深入的用法之前,我们先了解以下结构。


2-4指令的高级运用

       我们在刚开始的登入一个系统中默认进入的是家目录,家目录用"~"表示,而在Centos系统中,root账号的家目录:/root;普通用户的家目录:/home/xxx(用户的姓名),用pwd命令可看出。

       在Liunx中,"."表示当前目录(一个点);".." 表示上一级目录(两个点)。如图:

       在很多情下,当前目录或上一级目录用路径表示很是麻烦,我们可很方便的借助"."或".."来表示。

       cd ..是返回上一级命令,而cd -可直接跳转到最近一次所处的目录。对于touch和mkdir命令也可在不同的目录中创建文件和目录,如图:

      除此之外,由于目录都是树结构,我们也可运用递归原理先遍历树状目录,然后再通过递归方法来进行建立一系列目录,用命令mkdir -p [目录]即可完成,如图:


3,rm和rmdir删除指令

       我们先介绍比较低级的用法rmdir。rmdir只能删除目录,并且还是空的目录,非空目录rmdir不能删除,通常用rmdir删除空目录的时候还常用rmdir -p [目录],即如果子目录被删除后父目录也为空的话,就连父目录也一并删除了,如下图:

       rm的功能与rmdir类似,但rm的功能强大,rm可以直接删除任意的文件或目录,一次性也可删除多个文件或多个目录。用rm [文件]可直接删除文件,而用rm -r可递归式的删除目录及以下的所有子目录,因为-r选项表示递归过程,很多命令中的选项-r与之同理。有人可能会问为什么不能只删除中间的一个目录,因为之前说过,Linux系统下的目录结构是树结构,如数据结构中的树,一旦其中一个结点被删除,后面的所有子结点也无法与之相连,只能全部删除。

       由于rm的权限太高,所以当使用root用户(超级用户)删除的时候,系统都会提醒我们是否要删除,按"y"表示删除,按"n"表示不删除,但如果加上选项-f操作将表示强制删除,这时系统将不会提醒我们,而-i选项与-f选项相反,在删除前逐一询问是否确认删除(即root用户使用的时候将默认-i)。其它普通用户系统不会自动提醒。如下图:

rm删除文件

rm删除多个文件

rm删除目录

rm删除多个目录

       这里要提醒的是,像类似于rm的删除指令,不会默认删除隐藏文件或隐藏目录,只是删除普通的目录和文件。

       由以上可知,rmdir局限性太大,对于初学者而言本人不建议用rmdir来删除,使用功能更加高级的rm来删除,但在删除时一定要控制好,在后面的深入学习中一旦将重要用户数据删除将很难再次找回。


4,通配符"*"的使用

      通配符:指定路径下的所有文件,符号用"*"表示。

       通配符的引用使我们在很多情况下都可更方便的遍历整个文件,如使用通配符来删除所有文件。如图:


5,man查找指令

       Linux命令有很多参数,我们往往不可能全部记住,但我们可以通过查看联机手册获取帮助。访问Liunx手册页的命令是man。当有不会的命令可直接man [命令]进行查找,党项退出时按"q"键即,可如下图,查看clear命令:

       man的使用还有很多种,但我们常用的基本就直接man查找命令,其它的可暂时不考虑。


6,cp的复制命令

       cp命令是用来复制文件或目录的。

语法:

       cp [文件] [目录] 将文件复制粘贴到目录下;

       cp [文件1] [文件2] 将文件1复制给文件2,当不存在文件2时系统会创建文件2;

       cp -r [目录1] [目录2] 将目录1复制粘贴到目录2下,当不存在目录2时系统会创建目录2;

       补:之前都说过 -r 选项代表递归过程,用此选项可将指定目录逐渐递归遍历。

图1:

图2:


7,mv移动指令

       mv命令是用来移动文件或更改文件名, 此命令经常用来备份文件或目录,此用法与cp基本相同。

语法:

       mv [文件1] [文件2],将文件1重命名为文件2,若存在文件2,则将会把文件1的数据全部移到文件2中并删除文件1;

       mv [文件1] [目录1],将文件1移动到目录1中;

       mv [目录1] [目录2],将目录1移动到目录2中,当不存在目录2时系统将目录1重命名为目录2。如图:


8,alias重命名指令

       系统下的指令相当于可执行程序,而将可执行程序进行重命名就相当于指令。在系统下,我们通常用alias将系统指令进行重命名。

语法:

       alias (别名)='指令',该功能可将指令取别名,如图:

       Linux系统下的指令多种多样,通常我们可以用which [指令]来查看指令的路径。

       这里要注意的是,此命令进行取别名不是永久的,一旦关闭系统用此命令取得别名都将会消失。除此之外,alias指令的重命名是将右边直接赋给左边,倘若左边是指令,右边是无效指令,则原本的指令将会变成无效指令,如图:

       不过发生这种情况也不必慌张,因为此命令进行取别名不是永久的,一旦关闭系统用此命令取得别名都将会消失,我们只需重启即可恢复如初。


9,cat,more,less查看指令

       在Linux系统中,指令cat,more,less都是用来显示文件内容的,但它们的用法各有异同,在讲解这些命令之前,我们先了解以下知识。

       Linux中,无论是什么设备,一切皆为文件,而大部分的硬件设备都可以看做有读写的方法,只不过有些方法可以为空,在平常我们的输出,默认都是向显示器打印输出。如用echo来输出内容,如下图:

       无论输出什么,都默认输出到显示器上。  

cat指令:

       语法:cat [选项] [文件] 指定选项的功能来查看文件内容

       cat [文件] 直接正向的将文件内容输出到屏幕上。

       cat -b [文件] 对非空输出行编号

       cat -n [文件] 对输出的所有行编号

       cat -s [文件] 不输出多行空行

       cat指令是最普通的正向查看文件指令,很方便的将短文件内容显示到显示器上,但它有自己的缺陷,当我们要查看大工程的数据文件时cat命令就显的不是那么方便,很大的数据将在屏幕上显示,很不方面我们查看,所以,cat命令只适合我们查看小文件内容。cat的使用如下:

       当只使用cat时,表示输入什么就打印什么,即cat从键盘文件读取什么,就直接向显示器文件写入什么,按下"Ctrl + c"键可停止,cat的本质即时如此。这种原因是因为之前说过,Linux下一切皆文件,如果不加以说明就默认读取的时候是从键盘文件中输入的,输出是默认从显示器中输出的。如图:

               然而,若将命令倒过来输出,即tac,可将文件逆置输出,如图:

more指令:

       语法:more [文件] 在显示器上显示文件内容,与cat不同的是more命令是先显示一页,按"回车"键继续往下翻一行,但只限于"回车"往下查看,无法上翻。

       q 退出more命令

       more -n [文件] 对输出所有行进行编号

       more一般是用来查看大文件数据,当查看小文件数据时效果跟cat一样,但由以上可观察到,more指令在查看大文件时不能随意查看,所以此命令也不经常使用,具体使用就不在展示了。

less指令:

       常用用法:less [文件]

       less用法与more相似,但less的用法比more强大,more可以按上下键来往上,往下查看,或按回车键往下查看,可随意调动。当退出时也是只需按下"q"键即可。在这里我就不做演示了。

总:一般情况下,当要查看短文件信息时用cat指令,当要查看大文件信息时用less指令,more指令通常不用。


10,输入输出重定向和追加重定向

      输入重定向符号为"<",输出重定向符号为">",追加重定向符号为">>",而这个名词对于初学者可能有些陌生,但其实它们非常好理解。输入重定向用法:"左边 < 右边",把本来应该从键盘文件中读入的内容,更改为从普通文件中进行输入。输出重定向用法:"左边 > 右边" ,将左边的内容输出到右边保存起来,但每次输出都会先清空右边的内容,若右边为不存在的文件,系统会自动建立起文件。追加重定向用法:"左边  >> 右边",将左边的内容输出到右边内容末尾的下一行,不会清理原本右边的内容。如图:

输入重定向

输出重定向

追加重定向


11,head和tail显示文件

       head从开头开始显示文件内容,tail从末尾开始显示文件内容。其中,head和tail指令最大的特色是可以随意显示文件多少行的内容。

语法:head [文件] 默认从开头起显示文件10行内容

head -n [文件] 从开头起,显示文件前n行内容

tail [文件] 显示文件后10行内容

tail -n [文件] 显示文件后n行内容

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
Unix Linux Windows
Linux 系统目录结构
这篇文章详细解释了Linux系统目录结构,重点介绍了/etc目录存放系统配置文件,/root为管理员主目录,/usr存放应用程序和共享资源,/var存放日志等变动文件,以及/home、/boot等目录的作用。
Linux 系统目录结构
|
6天前
|
运维 Ubuntu Linux
Linux系统之ncdu命令的基本使用
【8月更文挑战第8天】Linux系统之ncdu命令的基本使用
14 2
Linux系统之ncdu命令的基本使用
|
1天前
|
Linux 程序员 开发者
源社区的兴起:从“代码隐士”到Linux引领的“全球编程嘉年华”
在编程的古老森林中,曾有“代码隐士”默默耕耘,惧怕智慧外泄。直到“开源”春风拂过,源社区如全球编程嘉年华盛开!开源文化颠覆了“独门秘籍”的传统,像“武林秘籍共享”般在网络上公开,鼓励知识传播与智慧碰撞。程序员组队开发,分享代码,提升科技实力。Linux则从“首席大厨”变身为“总导演”,以强大内核调制出诱人应用,引领潮流并推动技术创新。加入这场没有血腥厮杀,只有知识盛宴的“编程版《饥饿游戏》”吧!与全球开发者共享编程的乐趣与成就感!别忘了带上你的“独门秘籍”,可能下一个改变世界的创意就在其中!
17 7
|
1天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
1天前
|
Ubuntu Java Linux
查看Linux系统中日志文件
查看Linux系统中日志文件
|
1天前
|
Linux
Linux源码阅读笔记17-资源分配及总线系统
Linux源码阅读笔记17-资源分配及总线系统
|
2天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
1天前
|
关系型数据库 MySQL Linux
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
这篇文章提供了在Linux系统中使用Docker安装Mysql 5.7版本的详细过程和图解,包括安装指定版本、创建实例、启动、使用Navicat连接测试、文件挂载与端口映射、进入容器、配置文件修改以及重新启动容器等步骤。
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
|
8天前
|
存储 安全 Unix
揭秘Linux配置之谜:为何重启成常态?动态刷新配置竟成奢望?一场关于系统稳定性与灵活性的较量!
【8月更文挑战第12天】Linux以其卓越性能在各领域广泛应用,但配置更新需重启而非动态刷新。这源于系统架构的静态设计、配置管理机制的局限、安全考量及性能优化需求。配置文件存储于磁盘,改动不自动反映至内存;服务管理依赖systemd等初始化系统,启动时加载配置而不主动监测变更;动态刷新可能引入安全风险;频繁更新配置亦影响性能。开发者可通过信号或IPC机制实现在特定信号下重新加载配置。
22 4
|
5天前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)