【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行内容

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
84 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
78 2
|
8天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
121 78
|
11天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
45 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
131 48
|
7天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
57 13
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
35 3
|
8天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
26 0
|
1月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
55 4
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
37 1