前言:
使用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超级用户,而有用户root和110_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行内容