第一部分:Linux入门与基础指令

发布于:2025-02-10 ⋅ 阅读:(38) ⋅ 点赞:(0)

目录

0、前言

1、Linux环境的安装

2、使用Xshell远程登陆云服务器

3、基础指令

3.1、ls命令

3.2、pwd命令

3.3、cd命令

3.4、clear命令

3.5、touch命令

3.6、mkdir命令

3.7、tree命令

3.8、rmdir命令

3.9、rm命令

通配符(*)

3.10、whoami命令

3.11、man命令

3.12、echo命令

重定向

3.13、cp命令

3.14、mv命令

3.15、which命令

3.16、alias命令

3.17、cat命令

3.18、more命令

3.19、less命令

3.20、head命令与tail命令

管道文件

3.21、date命令

时间戳

3.22、cal命令

3.23、whereis命令

3.24、find命令

3.25、grep命令

3.26、zip命令与unzip命令

3.27、tar命令

3.28、bc命令

3.29、uname命令

3.30、history命令

3.31、logout命令

3.32、exit命令

4、创建和删除普通用户以及修改密码

5、热键

6、关机

7、扩展


0、前言

操作系统是一款做软硬件管理的软件,操作系统的核心工作是通过对下管理好软硬件资源,达到对上提供良好的、稳定的、快速的、安全的操作或者使用环境。

计算机软硬件体系结构图:

从图中可以看到,操作系统是上层软件和底层硬件的的桥梁。实际上,我们所有的软件行为,全部都要自上而下贯穿计算机的软硬件结构。

设备驱动就是各种硬件对应的驱动程序,是用来驱动硬件的。

操作系统的操作方式一般有两种,比较古老的是使用命令行的方式,比较新的方式是使用图形化界面的方式操作。无论是图形化界面还是命令行其本质是一样的。使用命令行来操作,一般不如图形化界面操作方便,但是可以更加贴近系统。无论是命令行还是图形化界面都是操作计算机的方式。

接下来我们将使用命令行来操作Linux系统。

1、Linux环境的安装

Linux环境的安装有三种方式:

1、虚拟机(不太推荐:虚拟机安装麻烦,实验不方便)

2、双系统(特别不推荐)

3、云服务器(特别推荐:不需要安装,便于操作和实验,环境也是统一的)

在这里,我选择的是使用云服务器。使用的商业版本是CentOS7.6。

其实对于个人学习来讲对于选择什么什么版本并不重要,因为本质都是一样的,学会使用一种商业版本,也就能很快上手另一个商业版本。

2、使用Xshell远程登陆云服务器

XShell 是一个远程终端软件,我们使用xshell来远程操作云服务器。

首先要想登录云服务器需要使用命令:

ssh 云服务器的用户名@云服务器的地址

然后输入密码就可以成功登录,不再过多介绍。除了这种登录方式,还有其他更便捷的登录方式,但这不是主题,想要了解的可以自行搜索。

XShell 下的复制粘贴:

复制: ctrl + insert 

粘贴: shift + insert

ctrl + c / ctrl + v 是不行的

Xshell下的自动全屏和取消全屏:alt+Enter

3、基础指令

指令是很多的,很难一次性的说完所有的指令,一般我们也不需要学会所有的指令,也不会把一个指令的所有选项说完,只需要了解常用的指令以及对应的选项,还有未来工作或者学习会用到的指令即可。

3.1、ls命令

语法:ls [选项][目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用选项:

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

-d 也就是显示目录或者文件自己的属性。

-l 列出文件的详细信息。

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

注意:在Linux中是可以多个选项连用的,比如:

ls -a -l

是等价于:

ls -al
或者
ls -la

在Linux中以.开头的文件是隐藏文件。

Linux的任何一个目录下都有两个隐藏文件,分别是一个.和..,这两个文件的作用分别是:

.表示当前路径,用于定位当前目录的下一个文件。

..表示当前路径的上一级路径,用于返回上级路径。

3.2、pwd命令

语法:pwd

功能:显示用户当前所在的目录,也就是显示当前所在的路径。

3.3、cd命令

语法:cd 路径(可以是绝对路径也可以是相对路径)

功能:改变工作目录,将当前的工作目录改变到指定的目录下。

Linux系统中,磁盘上的文件和目录被组成一颗目录树(本质是一颗多叉树,他的叶子节点一定是空目录或非目录文件,路径上一个节点一定是一个非空目录),每个节点都是目录或者文件。

例如:

/:是Linux的根目录。

Linux的路径分隔符一般使用/(Windows一般使用的路径分割符是\)。

所以我们对文件或者目录的增删查改,本质上都是对这颗多叉树进行增删查改。文件=文件内容+文件属性。所以对文件的操作就=对文件内容的操作+对文件属性的操作。

例如:

cd ..

 可以返回上级目录。

cd ~

 可以用来返回用户的家目录。

cd -

 用来返回上一次访问的目录,类似于撤销,退回上一步。

在CentOS中一般root用户登录后默认会在/root这个路径下,普通用户登陆后会在/home中,用户登陆后所在的默认路径称为该用户的家目录。

3.4、clear命令

语法:clear

功能:清除终端命令行界面的内容,本质上只是将光标移动到屏幕的顶部。

3.5、touch命令

语法:touch [选项]... 文件...

功能:新建一个不存在的文件。

3.6、mkdir命令

语法:mkdir [选项] dirname...

功能:创建一个目录。

选项:

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

3.7、tree命令

语法:tree 路径

功能:将对应的目录结构以树的形式给呈现出来。

比如:

tree .

 是指以当前路径开始,呈现整个目录结构。

注意:tree命令是需要下载的,默认是没有的,要使用:

yum install -y tree

进行下载,直接在命令行输入即可,但要注意的是要在root账户上进行操作,未来等学习sudo命令后才可以使用普通用户进行下载(后面讲)。

3.8、rmdir命令

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

语法::rmdir 目录名

功能:删除空目录(注意不是空目录是没办法进行删除的。)

3.9、rm命令

语法:rm [选项] dirName/dir

功能:删除文件或目录

选项:

-f 即使文件属性为只读(即写保护),亦直接删除。(权限问题后面再提)

-i 删除前逐一询问确认(确认删除使用y或者yes,拒绝删除使用n或者no)。

-r 删除目录及其下所有文件(rm不能直接删除目录,要带上该选项才行)。

注意:使用该命令是比较危险的,要谨慎的使用该命令及其选项,因为删除后就没办法恢复,不像Windows里面有一个回收站。(补充:Windows中常称为的文件夹和Linux中的目录是一个东西)

通配符(*)

通配符*可以表示任意数量的任意字符。

例如:

ls *.c

 表示列举出所有以.c为后缀的文件。

ls test.*

 表示列举出所有的test.什么的文件。

再比如:

rm * -rf

 表示删除掉该目录下的所有文件。

另外要注意的是:rm这个命令的选项可以在操作对象的右边,但是一般不建议这么做,因为有些情况可能对此并不支持。

3.10、whoami命令

语法:whoami

功能:显示当前登录用户的用户名。

3.11、man命令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法:man [选项] 查找的东西

功能:查看对应的解释手册。

选项:num 只在第num章节找(下面列举出了所有的章节)。

解释一下,手册分为8章:

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3 是库函数,如printf,fread(主要是C语言的)

4 是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

例如:

man 3 printf

表示在第三章寻找C语言的printf函数。

注意:man命令不加选项默认是从手册的第一章开始一章一章向下查的,直到找到或者找不到。

3.12、echo命令

语法:echo 字符串

功能:将后面的字符串原封不动的显示到标准输出文件(也就是显示屏)。

例如:

echo "hello"

打印出hello

重定向

>:这个符号就叫输出重定向,可以将原本输入的内容进行重定向,输入到另一个文件。

在这里进行补充一下,Linux中一切皆文件的思想(具体内容后面再讲),大体意思就是,在Linux中一切都是文件,比如显示屏是一个文件,键盘也是一个文件。

例如:

echo "hello world" > test.txt

表示将内容输入到test.txt文件。这个写入分为两步:首先清空文件内容,然后写入新内容,这就是输出重定向的特点。

例如:可以使用>来清空文件内容

> test.txt

如果不想要在写入前清空文件,可以使用追加重定向

>>:和上面的输出重定向的唯一区别就是写入前不对文件进行清空。

除了上面讲的两个重定向,还有一个输入重定向

<:这个符号就是输入重定向表示从某个文件里面读。

例如:(cat命令后面提到了)

 cat < test.txt

 指本应该从键盘文件读变成了从指定的test.txt文件读。

注意:无论是输出重定向还是追加重定向,如果后面的文件不存在的话,都会直接创建出来一个。

所以可以使用:

> 文件名

 来创建一个文件。

printf命令

语法:printf 字符串

功能:向标准输出文件(也就是显示屏)打印字符串。

也是可以和上面的输出和追加重定向结合使用的,和上面的区别是使用printf写入的内容不会自动进行换行。

3.13、cp命令

语法::cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

选项:

-f :强制模式,覆盖已存在的目标文件。

-i :覆盖文件之前先询问用户

-r:递归处理,将指定目录下的文件与子目录一并处理。(cp不能直接拷贝目录,要加上-r选项)。

注意:在不同的环境下,指令可能会出现细小的差异。

3.14、mv命令

语法: mv [选项] 源文件或目录 目标文件或目录

功能:mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。

选项:

-f :强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件已经存在时,就会询问是否覆盖!

例如:

mv 文件 目录

 移动文件到目录中,再比如:

mv 文件1 目录/文件2

 移动文件1到目录并改名为文件2。

注意:当有些时候,因程序或者命令异常,而导致我们没办法进行指令输入,就可以使用Ctrl+c来强制终止异常的程序或者命令。

3.15、which命令

语法:which 命令

功能:用来查看对应命令所在的路径。

在这里我们要重新了解一下命令了:

命令本质上是一个可执行程序,在执行命令前,操作系统肯定是要查找对应的命令(关于查找是要利用环境变量进行查找到,后面讲),然后再进行执行,这些命令就在/usr/bin/目录下。

3.16、alias命令

语法:alias name='command'

功能:用来给别的起别名的。

例如:

alias cmd='ls -a -l'

 结果就是在命令行输入cmd时,就相当于执行ls -a -l这个命令。

注意:并不建议弄一些自己起别名的命令,因为容易搞混,时间久了就分不清是自己弄的命令还是系统自带的命令。

如果想要取消别名,可以把他置空,可以输入:

alias cmd=''

 也可以使用unalias命令来取消别名

unalias name

新创建的别名在当前shell会话中有效。如果想让其在每次启动新会话时都生效,可以将别名添加到您的shell配置文件中(感兴趣的可以自行查阅)。

之前我们学习过rm命令,但是rm命令比较危险,删除后没办法复原,在这里,我们就可以使用mv这个命令重写一下rm这个命令,搞一个类似于Windows的回收站。(感兴趣的可以自行查阅)。

3.17、cat命令

语法:cat [选项][文件]

功能:查看目标文件的内容

选项:

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

cat命令默认是从输入设备读,写入显示设备,也就是说直接在命令行输入cat后面不加任何东西,向输入设备里面写的东西,都会被写入显示设备。

注意:cat不适合看大文本,只适合看小文本。

3.18、more命令

语法:more [选项][文件]

功能:more命令,功能类似 cat

操作:

q键: 退出more。

b键:返回上一页。

回车键:向下滚动一行。

空格键:查看下一页内容。

注意:相对来说,more更适合读大文本。

3.19、less命令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

语法: less [参数] 文件

功能:less与more类似。

选项:

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

q:退出less

使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件。

3.20、head命令与tail命令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示文档开头至标准输出中,而 tail 想当然就是看文档的结尾。

语法:head [参数]... [文件]... 

功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:

-数字(或者-n数字):表示从开始向下显示几行。

语法: tail [参数] [文件]

功能: 用于显示指定文件末尾内容,常用来查看日志文件。默认tail命令打印其相应文件的结尾10行。

-数字(或者-n数字):表示从结尾向上显示几行。

日志:程序运行到自己的每一个重要时刻都要自己打日志。日志包括时间、日志等级、日志具体信息、其他信息等等;这些信息会被放到一个文件里面,这个文件就叫日志文件

管道文件

管道文件(|)不会放在磁盘中,而是放在内存中,作用是充当一个临时的文件,一般用完就销毁了。(关于管道文件,后面还会再讲,这里简单提一下)

例如:

head -n50 test | tail -n1

这个就表示从test文件中拿到前50行输入给管道文件,然后再从管道文件中提取最后一行。

3.21、date命令

语法:date [OPTION]... [+FORMAT]

功能:使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

%H : 小时

%M : 分钟

%S : 秒

%d : 日 

%m : 月份 

%Y : 年份

例如:

date +%H:%M:%S

 表示显示时:分:秒。

还可以

date +%Y-%m-%d

显示年-月-日

时间戳

时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

当前时间转化为时间戳:date +%s

时间戳转化为时间:date -d@时间戳(也是可以指定格式展示的,例如:date +%Y-%m-%d -d@1234567)。

3.22、cal命令

cal命令可以用来显示公历(阳历)。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,是以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

语法:cal [参数][月份][年份]

功能:用于查看日历等时间信息,如只有一个参数,则表示年份,如有两个参数,则表示月份和年份

选项:-3 显示系统前一个月,当前月,下一个月的月历。

3.23、whereis命令

语法:whereis 查阅的东西

功能:用于查找指定命令的二进制文件、源代码和手册页的位置。这个命令通常用于帮助用户快速找到某个程序的安装位置。

3.24、find命令

Linux下find命令提供了相当多的查找条件,功能很强大。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间

语法:find [路径] 选项 名称

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

选项:-name   按照文件名查找文件。

例如:

find ~ -name test.c

从用户的家目录开始查找test.c文件。

注意:find可以查任何文件,但是which只能查命令。

3.25、grep命令

语法:grep [选项] 搜寻字符串 文件

功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

例如:

grep "hello world" test

表示从test文件中搜索字符串hello world,并将找到的行打印出来。

补充:grep本质上是行文本过滤工具,读取的行如果包含字符串,则进行显示打印。

3.26、zip命令与unzip命令

语法:zip  压缩文件.zip  目录或文件

功能:将目录或文件压缩成zip格式

选项:

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

打包:也就是把所有的东西装起来。

压缩:就是把所有的东西装在一起的东西按某种算法合理的摆放,从而实现空间的充分利用。

例如:

zip -r test.zip test

 将test压缩成zip格式文件

语法:unzip 压缩文件.zip

功能:将zip格式的压缩包进行解压。

选项:

-d:该选项后面跟上路径,可以用来指定解压缩后的内容放置的路径。

例如:

unzip otherProgram.zip -d ..

 表示解压到上级路径。

注:打包压缩的方案有很多,上面是.zip的压缩方案。

注意:这个zip/unzip可能是默认没有的命令,要想使用这个命令可能需要下载,在root用户下使用如下命令:

yum install -y zip unzip

 即可安装成功。

3.27、tar命令

语法:tar [选项] 文件与目录

功能:进行打包/解包。

选项:

-c:创建一个新的归档文件。

-x :解压归档文件

-t :列出归档文件的内容。

-z :使用 gzip 压缩归档文件。

-f <file>:指定归档文件的名称(必须放在选项列表的最后)。

-C <directory>: 解压到指定目录

补充:.tar是打包的后缀;.gz是压缩后缀。这两个可以连起来写成.tgz表示打包压缩后缀(当然也可以写成.tar.gz表示打包压缩后缀)。

注意:一般选项是支持前面带-的,但是有些情况tar命令的选项前面不支持带-,具体情况具体分析。

例如:

tar czf test.tar.gz test d.txt

表示将test和d.txt打包压缩成test.tar.gz。

tar tzf test.tgz

表示进行预览test.tgz。

tar xzf xxx.tgz

表示解压解包。加上-C选项就可将压缩包解压到指定路径,例如:

tar xzf xxx.tgz -C 路径

3.28、bc命令

语法:bc

功能:输入bc就可以进入计算器。

除了直接输入bc进入计算器计算外,还可以使用下面的方式进行计算:

echo "12+12" | bc

 通过管道传递表达式。计算结果为24

若想要退出计算器,可以输入quit。

3.29、uname命令

语法:uname [选项]

功能:用来获取电脑和操作系统的相关信息。补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

选项:

-r :显示内核版本号。

-a :显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等。。

3.30、history命令

语法:history

功能:可以查看历史上使用过的命令。Linux默认记录的是最新的1000条命令。

3.31、logout命令

语法:logout

功能:结束当前会话并退出系统。

3.32、exit命令

语法:exit

功能:用于退出终端。

4、创建和删除普通用户以及修改密码

建议创建普通用户来使用,而不是直接使用root账号。除root账号外,其他的账号都是普通账号。

ssh是用来登录远程服务器的,格式为:

ssh user@remote

其中user是用户名,remote是远程服务器的地址。可以使用exit退出当前的用户登录。

adduser是用来创建普通用户的,格式为:

adduser username

username表示用户名。

passwd是用来修改用户登录密码的,格式为:

passwd username

userdel是用来删除普通用户的,格式为

userdel -r username

5、热键

热键是指经常使用的按键。

[Tab]按键:具有命令补全和档案补齐的功能

[Ctrl]+c按键:让当前的程序停掉

[Ctrl]+d按键:通常代表着:键盘输入结束的意思;另外,他也可以用来取代exit。可以退出登录,也可以退出xshell。

[Ctrl]+r按键:历史命令搜索,使用Ctrl+c退出。

6、关机

一般情况下,Linux服务器永不关机,直到报废。

语法:shutdown [选项]

功能:用来关机。

选项:

-h: 将系统的服务停掉后,立即关机。

-r: 在将系统的服务停掉之后就重新启动。

-t sec:-t 后面加秒数,亦即过几秒后关机的意思。

注意:shutdown命令普通用户是不能随便用的,要root用户或者普通用户使用sudo命令(后面讲)。

7、扩展

◆ 安装和登录命令: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。

感兴趣的话可以去了解上面很多没提到过的命令,命令是很难一次性讲完的,更多的指令将会在后面穿插讲到。


网站公告

今日签到

点亮在社区的每一天
去签到