区块链入门(一)Linux基础

新手建议

学习Linux的注意事项

  • Linux严格区分大小写(命令全都是小写)—— 命令、文件名、选项等均区分大小写

  • Linux中所有内容以文件形式保存,包括硬件

    • 硬盘文件是/dev/sd[a-p]
    • 光盘文件是/dev/sr0等
  • Windows通过扩展名区分文件类型,还有图标可以区分;Linux不靠扩展名区分文件类型,靠文件权限区分,但也有一些约定俗成的扩展名:

    • 压缩包:”.gz”, “.bz2”, “.tar.bz2”, “.tgz”等
    • 二进制软件包:”.rpm”
    • 网页文件:”*.sh”
    • 配置文件:”*.conf”

    注意:这些扩展名不是必要的,即时不加扩展名也没有影响,只是便于管理而已

  • Linux所有存储设备都必须挂在之后用户才能使用,包括硬盘、U盘、光盘(将设备与挂载点连接的过程就是挂载)

  • Windows下的程序不能直接在Linux中安装和运行

服务器管理和维护建议

服务器管理

目录名 目录作用
/bin/ 存放系统命令的目录,普通用户和超级用户都可以执行,不过放在/bin下的命令在单用户模式下也可以执行
/sbin/ 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看
/usr/bin/ 存放系统命令的目录,普通用户和超级用户都可以执行,这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin/ 存放根文件系统不必要的系统管理命令,例如多数服务程序。只有超级用户可以使用
/boot/ 系统启动目录,保存系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/ 设备文件保存位置,我们已经说过Linux中所有内容以文件形式保存,包括硬件,这个目录就是用来 保存所有硬件设备的
/etc/ 配置文件保存位置,系统内所有采用默认安装方式(npm安装)的服务的配置文件全部保存在这个目录中,如用户账户和密码,服务的启动脚本,常用服务的配置文件等
/home/ 每个用户的默认登陆位置,普通用户的home目录就是在/home下建立一个和用户名相同的目录
/lib/ 系统调用的函数库保存位置
/lost+found/ 当系统意外崩溃或机器意外关机时,产生的一些文件碎片放在这里,当系统启动的过程中fsck工具会对其进行检查,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如/lost+found就是根分区的备份恢复目录,/boot/lost+found就是/boot分区的备份恢复目录
/media/ 挂载目录,系统建议是用来挂载媒体设备的,例如软盘和光盘
/mnt/ 挂载目录,建议挂载额外设备,如U盘,移动硬盘和其他操作系统的分区
/misc/ 挂载目录,系统建议用来挂载NFS服务的共享目录
/opt/ 第三方安装的软件保存位置,但现在更多的是保存在/usr/local中
/proc/ 虚拟文件系统,该目录的数据不保存到硬盘中,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态灯,如/proc/cpuinfo是保存CPU信息的,/proc/devices是保存设备驱动的列表的,/proc/filesystems是保存 文件系统列表的,/proc/net/是保存网络协议信息的
/sys/ 虚拟文件系统,主要保存内核相关信息
/root/ 超级用户的家目录
/srv/ 服务数据目录, 一些系统服务启动后可以在这个目录保存需要的数据
/tmp/ 临时目录,系统存放临时文件的目录,该目录下所有用户都可以访问和写入,我们建议此目录不能保存重要数据,最好每次开机都把该目录清空
/usr/ 系统软件资源目录,注意usr不是user的缩写,而是”Unix Software Resource”的缩写,所以不是存放用户数据,而是存放系统软件资源的目录。系统中安装的软件大多数都在这里
/var/ 动态数据保存位置,主要保存缓存、日志以及软件运行所产生的文件

服务器注意事项

  1. 远程服务器不允许关机,只能重启
  2. 重启时应该关闭服务
  3. 不要在服务器的访问高峰运行高负载命令
  4. 远程配置防火墙时不要把自己踢出服务器(可以设置每五分钟将防火墙规则重置一次,配置完之后再取消该设置)
  5. 指定合理的密码规范并定期更新
  6. 合理分配权限
  7. 定期备份重要数据和日志

磁盘分区是用分区编辑器在磁盘上划分几个逻辑部分,碟片一旦划分成数个分区,不同类的目录和文件 可以存储进不同的分区。

系统分区

分区类型

  • 主分区:最多只能有4个
  • 扩展分区:
    • 最多只能有1个
    • 主分区加扩展分区最多有4个
    • 不能写入数据,只能包含逻辑分区(这种限制是硬盘的限制)
  • 逻辑分区

格式化

硬盘经过正确分区后仍不能写入数据,我们的硬盘还必须经过格式化之后才能写入数据。格式化又称逻辑格式化,它是根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT 2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划分出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。格式化就是按照文件系统的规则将硬盘分成等大小的数据块,我们把数据块称为block。

注:Windows可以识别的系统有FAT16、FAT32、NTFS;Linux可以识别的系统有EXT2、EXT3、EXT4

设备文件名

硬盘设备文件名

Windows是直接分区——>格式化——>分配盘符即可使用,Linux需要分区——>格式化——>给分区建立设备文件名——>分配盘符才能使用。

硬件 设备文件名
IDE硬盘 /dev/hd[a-d]
SCSI/SATA/USB硬盘 /dev/sd[a-p]
光驱 /dev/cdrom或dev/sr0
软盘 /dev/fd[0-1]
打印机(25针) /dev/lp[0-2]
打印机(USB) /dev/usb/lp[0-15]
鼠标 /dev/mouse

分区设备文件名

分区设备文件名直接在硬盘设备文件名后面加分区号即可,如

  • IDE硬盘接口第一个分区:/dev/hda1(如今几乎看不到)
  • SCSI硬盘接口、SATA硬盘接口的第一个分区:/dev/sda1

IDE硬盘是最古老的硬盘,理论最高传输速度是133M/s

SCSI硬盘接口与IDE硬盘同时代,更加昂贵但速度更快,理论最高传输速度可达200M/s,但这种硬盘主要用在服务器上

但上两种硬盘接口如今已经基本淘汰,如今使用更多的是小口的SATA串口硬盘,SATA已发展到3代,其理论传输速度最高可达500M/s,目前不管是服务器还是个人机基本使用的都是SATA硬盘接口。

需要留意的是,逻辑分区永远都是从5开始的

挂载

挂载实际上就是Windows中分配盘符的过程,盘符则被相应地称为挂载点,必须分区的分区有以下两种:

  1. 根分区:/
  2. swap分区(交换分区):可以理解为虚拟内存,当真正内存不够用时,可以使用这部分交换分区的硬盘空间来当内存,理论上来说交换分区应该是内存的两倍,但最大不超过2GB

若无这两个分区,Linux不能正常使用,但我们还推荐把/boot单独分区,这是为了防止Linux系统启动不起来,一般200MB即可。

远程登陆管理工具

网络连接

网络连接从虚拟机设置中可以看到,一共有三种:桥接、NAT和Host-only,下面讲解其区别:

  • 桥接:桥接意味着虚拟机如同一个单独的主机一样访问Wifi等,也可以和其他机器通信
  • NAT:虚拟机仅能和主机通信,但若主机可以访问互联网,虚拟机也可以访问互联网
  • Host-only:虚拟机仅能和主机本机通信,不能访问互联网

网络配置

  1. 首先调成Host-only模式,使得虚拟机仅与主机连接
  2. 在主机上找到VMware Network Adapter VMnet1的IP地址,我本地地址为192.168.19.1
  3. 在虚拟机上使用ishw -c netwowrk命令找到logical name,此即为虚拟机的网卡名称,我的虚拟网卡名称为ens33
  4. 使用命令ifconfig [不等于IP地址] logical name,例如我使用的是ifconfig ens33 192.168.19.2
  5. 此时再ifconfig即可看到我们设置的已生效
  6. 我们可以在主机ping这个IP地址看到生效
  7. 使用secureCRT连接即可

需要注意的是,以上方法配置IP地址时不是永久生效的,也就是重新启动电脑时就失效了,若想永久生效需要改变配置文件

若使用NAT模式,则步骤简单很多,只需要ifconfig获得IP地址之后直接用secureCRT连接即可

WinSCP

另外推荐一个Windows主机与Linux虚拟机进行文件传输的工具——WinSCP,操作方法与上面类似,只需输入对应的IP地址即可连接。

安装linux系统(以ubuntu为例)

Linux常用命令

一、最常用命令

这是我们使用得最多的命令了,Linux最基础的命令

  • 可用 pwd命令查看用户的当前目录
  • 可用 cd 命令来切换目录
  • .表示当前目录
  • .. 表示当前目录的上一级目录(父目录)
  • -表示用 cd 命令切换目录所在的目录
  • ~ 表示用户主目录的绝对路径名

绝对路径:

  • 以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用

相对路径 :

  • 不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式

二、文件处理命令

1. 命令格式与目录处理命令ls

命令格式命令[-选项][-参数],例:ls -la /etc

说明

  1. 个别命令使用不遵循此格式
  2. 当有多个选项时,可以写在一起
  3. 简化选项与完整选项:-a 等于 --all

ls命令的语法:

  1. ls -a可以显示所有文件,包括隐藏文件(以点.开头的文件是隐藏文件)

  2. 若希望查询的不是当前目录,可以使用ls+其他目录进行查询

  3. ls -l可以显示更多属性(long),属性阐述如下:

  4. 第一列分为三个部分,第一部分(如d告诉我们文件的类型是一个目录,-为二进制文件,1为软链接文件),drwx表示该文件支持读写和执行操作,r,w,x分别对应读、写、执行三个权限,三列分别对应所有者,所属组,其他人的权限

  5. 第二列的2、2、3等表示调用次数

    1. 第三列表示所有者,也就是这个文件的总负责人(拥有文件的所有权,可转让)
  6. 第四列表示所属组,也就是可以操作这个文件的人
    1. 第五列表示文件大小,默认单位是字节(很反Windows)
  7. 最后一个是文件的最后一次修改时间(Linux没有创建时间这个概念)

  8. ls -lh比原先的更人性化(humanitarian),它将对应的单位也显示了出来,-h实际上是一个通用选项,很多命令都可以加

  9. -d显示当前目录本身而不显示目录下的数据,一般与-l结合使用,如ls -ld /etc

  10. ls -id可以查看当前目录对应的文件ID

2. 目录处理命令

mkdir

语法mkdir -p [目录名]

功能描述:创建新目录,-p递归创建(若一个目录本身不存在,可以在创建这个目录的同时创建子目录),也可以同时创建多个目录

cd

语法cd directory

功能描述:改变当前目录

pwd

语法pwd

功能描述:显示当前目录(print working directory)

rmdir

语法rmdir [目录名]

功能描述:删除空目录(若目录非空则不能删除)

cp

语法cp -rf [源文件或目录] [目标目录] -r 复制目录 -p 保留文件属性(文件创建时间等不发生变化)

功能描述:复制文件或目录

mv

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

功能描述:剪切文件、改名

rm

语法rm -rf [文件或目录] -r 删除目录 -f 强制执行

功能描述:删除文件

3. 文件处理命令

touch

语法touch [文件名]

功能描述:创建空文件

cat

语法cat [文件名]

功能描述:显示文件内容 -n可显示行号

tac

cat相反,可以倒着显示

more

cat命令显示的往往过多,若希望分页显示可以使用more,用法与cat相同,使用时按空格可以一页页往后翻,使用q或Q退出

less

由于more无法向上翻,我们可以使用less命令,可以使用page up一页页往上翻,也可以使用上箭头一行行往上翻,其他操作与more相同。另外less还可以进行搜索,比如想要搜索关键词service,可以输入/service进行检索,页面会对这些关键词进行高亮,可以使用n找到其他关键词位置

若只想要看文件的前几行,可以使用head -n加指定行数,若不加则默认显示前10行

tail

head类似 ,但是显示后面几行。

常用搭配为:tail -f,该命令会动态显示文件末尾内容

三、链接命令ln

语法ln -s [原文件] [目标文件] -s 创建软链接

功能描述:生成链接文件

示例

  • ln -s /etc/issue issue.soft:生成软链接
  • ln /etc/issue issue.hard:生成硬链接

软链接和硬链接的区别

我们使用ls -l查看这两个文件的信息:

1
2
-rw-r--r-- 2 root root 26 Jul 15  2020 issue.hard
lrwxrwxrwx 1 root root 10 Jan 31 04:55 issue.soft -> /etc/issue

我们会发现这两个文件的信息相差的非常多,软链接文件开头的文件类型是l(link),三个权限都是rwx,即可读可写可执行,软链接文件就类似于Windows的快捷方式,用处是便于做管理,我们可以看到最后有一个箭头指向/etc/issue。另外我们看到这个文件只有31个字节,因为它只是一个符号链接。我们可以总结得出软链接的三个特点:

  1. 权限是rwx
  2. 文件很小,只是符号链接
  3. 箭头指向源文件

下面我们看硬链接的特点,我们首先分别查看 这两个文件的信息:

1
2
ls -l issue.hard
ls -l /etc/issue

我们可以看到这两个文件的所有信息一模一样,包括文件的大小,这类似于拷贝,似乎相当于cp -p,而硬链接和cp -p的最大不同就是硬链接可以实现同步更新,我们可以做一个简单的实验,我们先查看硬链接文件,然后往源文件中写入文件,可以发现硬链接文件也被同时修改了,当然软链接也会同步修改。

但当我们将源文件复制到另一个位置并删除原位置文件之后,再试图打开软链接会提示“没有那个文件或目录”,而且再显示这个目录软链接会标红并一直闪,而硬链接可以正常访问,没有影响,这就是硬链接和软连接的不同之处。

实际上我们可以通过命令ls -i来识别其i节点以辨别出是硬链接还是软链接,硬链接和源文件的i节点相同,软链接则不同。

硬链接相当于一个同步文件,但可以做实时备份(一个文件删了不会影响另一个文件),硬链接有两个限制,这也是硬链接和软链接的区别:

  1. 不能跨分区
  2. 不能针对目录使用

四、权限管理命令

Linux用户一共分成三类,分别是所有者(U),所属组(G)和其他人(O),权限也分成三类,分别是rwx,对应读、写、执行,我们首先学习如何更改权限。

chmod

更改文件的人只能是文件所有者或者管理员root用户,更改文件权限有两种方式,第一种方式如下:

1
chmod [{ugoa}{+-=}{rwx}][文件或目录]

其中第一个花括号里ugoa分别表示所有者,所属组,其他人和所有人,第二个花括号+-分别表示增加和减少权限,=表示成为后面的权限。第二种方式如下:

1
chmod [mod=421][文件或目录] -R 递归修改

数字的意思只是将三个权限位分别用数字来表示,比如r用4表示,w用2表示,x用1表示,则若要表示rwxrw-r--则记为764

chown

命令英文原意是change file ownership,作用是改变文件或目录的所有者,改变文件file的所有者为user的具体用法为:

1
chown user file

要注意只有root和文件的所有者可以改变文件的权限

chgrp

命令英文原意是change file group ownership,作用是改变文件或目录的所属组,若具体用法和前面chown相同。我们可以使用groupadd命令添加组(使用useradd命令添加用户)

umask

命令英文原意是the user file-creation mask,作用是显示、设置文件的缺省权限,语法是:

1
umask [-S]

其中-S的作用是显示新建文件的缺省权限,但需要注意的是缺省创建文件时不可以有可执行权限的,所以当touch创建文件时会发现所有权限都少了x

当我们直接使用umask时,比如显示0022,第一个0是特殊权限,我们暂时不涉及,第二只第四位分别是所有者、所属组和其他人,我们的最终权限实际上是777-022=755,也就是rwx r-x r-x,当然这指的是目录,如果是文件由于没有可执行权限,文件权限应当是rw- r-- r--,当然缺省创建的权限可以更改,直接使用umask 077即可将文件缺省权限更改为rwx --- ---,但不推荐做这种更改

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2021 chenk
  • 由 帅气的CK本尊 强力驱动
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信