目录

一.为什么要学习Linux系统?

二.什么是Linux系统?

三.什么是Linux的内核和发行版?

四.Linux发行版都有哪些?

1)Red Hat Linux

2) Ubuntu Linux

3) SuSE Linux

4) Gentoo Linux

5) 其他 Linux 发行版

五.Linux 发行版本的选择?

六.我们学习的版本?

七.CentOS Linux的安装?

1、购买阿里云服务器。

2、重置实例密码。

3、配置安全组。

八.Xshell的安装并链接Linux?

九.Linux的基本目录。

Linux目录结构及含义:

十.目录的相关命令。

1、Linux cd(英文全拼:change directory)命令用于切换当前工作目录。

2、Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

3、Linux pwd(英文全拼:print work directory) 命令用于显示工作目录。

4、Linux mkdir(英文全拼:make directory)命令用于在工作目录下创建目录。

5、Linux rmdir(英文全拼:remove directory)命令删除空的目录。

6、Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。

7、Linux rm(英文全拼:remove)命令用于删除一个文件或者目录。

8、Linux mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。

十一.文件属性查看和修改。

1、lrwxrwxrwx  这个字符串的含义(文件类型和权限)

2、后面几个字段的含义

3、权限的数字表示

4、更改文件属组 chgrp

5、更改文件属主 chown

6、更改文件的读写权限 chmod

十二.查看文件的方式(命令都很强大,这里简单介绍,具体的可以去 菜鸟 搜)。

1、cat命令

2、tac命令

3、nl命令

4、more命令

5、less命令

6、head命令

7、tail命令

8、man命令

十三.Linux的硬链接和软连接。

1、ln命令

2、touch命令

3、echo命令

十四.Vim编辑器的使用。

1、什么是Vim编辑器?

2、Vim的工作模式?

十五.回顾。


一.为什么要学习Linux系统?

Linux是一套操作系统,和我们熟悉的windows,苹果电脑的mac OS X一样,都是可以在电脑上运行的操作系统。但是相对于windows7,windows10,以及mac os来说,Linux在个人电脑上可以说是很小众了,在我们的日常生活中可能根本看不到。其实不然,Linux在我们生活中的方方面面都起着作用,我们的手机上使用的安卓系统正是Linux的一个分支,家里用的路由器,机顶盒可能是Linux系统的,银行里的ATM机,电视上的超级计算机如天河,神威太湖之光,基本上都是Linux系统;智能电视,智能手表,店里的POS机等等都是基于Linux系统的android系统。那么问题来了,为什么这么多地方都会使用Linux系统呢?

首先,在服务器端,因为其稳定、可靠、免费的特点,Linux占据了大量的市场份额,世界上大部分公司的的后台服务器都是Linux系统,服务器可以在Linux在上稳定安全地长期运行。

其次,由于安全性,在银行,政府等对信息安全要求较高的场所,使用的操作系统大部分也是Linux,基本不会使用安全性差的windows,而且绝大多数的黑客攻击手段和病毒都是针对windows系统的。

简单来说,就是Linux系统:

    1、免费(使所有企业都可以使用,尤其是小企业)。

    2、开源(可以自定义底层代码)。

    3、安全(由于开源的原因,导致Linux的漏洞很少)。

    4、稳定(服务器可以在Linux上稳定长期的运行,不容易宕机)。

由于上面的4个原因,Linux系统在服务器端称王称霸,所以我们要学习Linux。

二.什么是Linux系统?

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

三.什么是Linux的内核和发行版?

从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。

Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

Linux 的发行版本可以大体分为两类:

1、商业公司维护的发行版本,以著名的 Red Hat 为代表。

2、社区组织维护的发行版本,以 Debian 为代表。

四.Linux发行版都有哪些?

1)Red Hat Linux

Red Hat(红帽公司)创建于 1993 年,是目前世界上资深的 Linux 厂商,也是最获认可的 Linux 品牌。

Red Hat 公司的产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)。

Red Hat 是在我国国内使用人群最多的 Linux 版本,资料丰富,如果你有什么不明白的地方,则容易找到人来请教,而且大多数Linux教程是以 Red Hat 为例来讲解的。

CentOS 是基于 Red Hat Enterprise Linux 源代码重新编译、去除 Red Hat 商标的产物,各种操作使用和付费版本没有区别,且完全免费。缺点是不向用户提供技术支持,也不负任何商业责任。有实力的公司可以选择付费版本。

2) Ubuntu Linux

Ubuntu 基于知名的 Debian Linux 发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的 Linux 发行版本,而且 Ubuntu 的所有发行版本都免费提供。

Ubuntu 的创始人 Mark Shuttleworth 是非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999 年以 5.75 亿美元被收购,由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth 于 2002 年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了 8 天的时光。之后,Mark Shuttleworth 创立了 Ubuntu 社区,2005 年 7 月 1 日建立了 Ubuntu 基金会,并为该基金会投资 1000 万美元。他说,太空的所见正是他创立 Ubuntu 的精神之所在。如今,他最热衷的事情就是到处为自由开源的 Ubuntu 进行宣传演讲。

3) SuSE Linux

SuSE Linux 以 Slackware Linux 为基础,原来是德国的 SuSE Linux AG 公司发布的 Linux 版本,1994 年发行了第一版,早期只有商业版本,2004 年被 Novell 公司收购后,成立了 OpenSUSE 社区,推出了自己的社区版本 OpenSUSE。

SuSE Linux 在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了 Red Hat Linux 的很多特质。

SuSE Linux 可以非常方便地实现与 Windows 的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。

4) Gentoo Linux

Gentoo 最初由 Daniel Robbins(FreeBSD 的开发者之一)创建,首个稳定版本发布于 2002 年。Gentoo 是所有 Linux 发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。

不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。自从 Gentoo 1.0 面世后,它就像一场风暴,给 Linux 世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入 Gentoo Linux 的怀抱。

有人这样评价 Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性(基于源代码的发行版)。尽管安装时可以选择预先编译好的软件包,但是大部分使用 Gentoo 的用户都选择自己手动编译。这也是为什么 Gentoo 适合比较有 Linux 使用经验的老手使用。

5) 其他 Linux 发行版

除以上 4 种 Linux 发行版外,还有很多其他版本,这里略过。

五.Linux 发行版本的选择?

Linux 的发行版本众多,在此不逐一介绍,下面给选择 Linux 发行版本犯愁的朋友一点建议:

1、如果你需要的是一个服务器系统,而且已经厌烦了各种 Linux 的配置,只是想要一个比较稳定的服务器系统,那么建议你选择 CentOS 或 RHEL。

2、如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大价钱购买商业软件,不想自己定制,也不想在系统上浪费太多时间,则可以选择 Ubuntu。

3、如果你想深入摸索一下 Linux 各个方面的知识,而且还想非常灵活地定制自己的 Linux 系统,那就选择 Gentoo 吧,尽情享受 Gentoo 带来的自由快感。

4、如果你对系统稳定性要求很高,则可以考虑 FreeBSD。

5、如果你需要使用数据库高级服务和电子邮件网络应用,则可以选择 SuSE。

六.我们学习的版本?

Red Hat旗下的 CentOS 7.7 version。

七.CentOS Linux的安装?

由于在学习的过程中,我们可能只有一台电脑,那么我们安装Linux系统只能是在虚拟机中安装,即使安装过程不复杂,但是对电脑的性能要求较高,而且为了更加贴合公司的开发环境,我们就使用阿里云来当作CentOS Linux服务器(远程服务器)。

1、购买阿里云服务器。

我买的是n4型,一年87,很舒服:

2、重置实例密码。

我们购买的一个阿里云服务器就相当于一台Linux操作系统,这个实例就是这个电脑(Linux操作系统),我们重置实例密码,就相当于重置这个电脑密码(参考windows系统登陆界面),该实例登陆用户为root(区分大小写)。

3、配置安全组。

阿里云的安全组,可以简单理解为能设置访问这个实例的IP有哪些,IP能访问的端口有哪些。

其中0.0.0.0/0代表所有IP都可以访问。当用xshell工具远程连接阿里云时,只有可以访问实例的22端口的IP才可以链接,并且链接时会要求输入用户名(root)和密码(上面修改的实例密码),否则连要求输入用户名的提示框都弹不出来。

    这样一个Linux远程服务器就安装完成了(购买完成了)。

八.Xshell的安装并链接Linux?

通过电脑管家里的软件管理,可以轻松下载Xshell。

之后,我们可以新建链接,并把阿里云的公网IP地址填写进去,22端口,用户名,密码依次输入即可。

当我们出现下面这个界面是时,就说明我们成功链接上了阿里云服务器。

九.Linux的基本目录。

Linux系统“ 一切皆文件 ”,并且所有的文件都在 “ / ” 目录下(可以把这个当作根目录,Linux系统的根目录)。并且带有 “ / ” 的路径是绝对路径(windows系统的绝对路径是从盘符开始的,如:D:\QQ),相对路径就是相对于该目录的路径,其中Linux中,../代表上层目录,./ 代表当前目录。

在Xshell中我们可以看到Linux的目录结构:

Linux目录结构及含义:

/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz 为 linux 的内核文件,以及 /boot/gurb。建议单独分区,分区大小100M即可。

/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。

/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。

注:/etc/X11 存放与 x windows 有关的设置。

/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据。

/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为 /lib/modules。

/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于 /disk 中,此目录下就会自动产生目录 /disk/lost+found。

/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。

/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的 KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下。

/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。

/root:系统管理员root的家目录,系统第一个启动的分区为 /,所以最好将 /root和 /放置在一个分区下。

/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。

/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。

/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。

/usr:应用程序存放目录(非常重要,类似于windows的C:\Program Files文件),/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls 时会查询 /usr/share/man/man1/ls.1.gz 的内容建议单独分区,设置较大的磁盘空间。

/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间。

十.目录的相关命令。

“ ../  ”代表上层目录,“ ./  ”代表当前目录。“ /  ”代表根目录,通常只有绝对路径的时候使用。

1、Linux cd(英文全拼:change directory)命令用于切换当前工作目录。

其中cd .. 和 cd ../ 是一样的,都是返回上级目录,我个人倾向于后者的写法。. 和 ./ 同理。

cd ~ 进入用户家目录,比如root用户就进入到/root,比如zzz用户,就进入到/home/zzz。

语法:cd [dirName]

2、Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法: ls [-alrtAFR] [name...]

参数:

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)。

-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。

-r 将文件以相反次序显示(原定依英文字母次序)。

-t 将文件依建立时间之先后次序列出。

-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)。

-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"。

-R 若目录下有文件,则以下之文件亦皆依序列出。

其中命令是可以拼接的,例如 ls -a -l 命令和 ls -l -a  命令和 ls -al  命令和 ls -la 命令的效果是一样的,并且都是成功的,这就是说,一个命令执行方式可以融合执行(一起执行)。

3、Linux pwd(英文全拼:print work directory) 命令用于显示工作目录。

执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。

4、Linux mkdir(英文全拼:make directory)命令用于在工作目录下创建目录。

语法:mkdir [-p] dirName         -p 确保目录名称存在,不存在的就建一个。

简单来说,mkdir不可以创建文件,只可以创建文件夹,并且如果创建层级文件夹时,中间的某个文件夹不存在,要使用 参数-p(我称之为执行模式)才能创建成功。

5、Linux rmdir(英文全拼:remove directory)命令删除空的目录。

语法:rmdir [-p] dirName        -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

简单来说,rmdir不可以删除文件,只可以删除文件夹,而且删除的文件夹要有一个条件,那就是所删除的这个文件夹必须为空,否则是不能删除的。而夹 -p参数的区别就是,如果文件夹是层级的,那么当子目录被删除后使当前目录也成为空目录的话,则连当前目录顺便一并删除。而且如果层级文件夹有文件,那么删除将会失败,即使使用-p(可参考图片后两行)。

6、Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。

语法:cp [options] source dest 或 cp [options] source... directory

参数:

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"或“yes”时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

上面图片中可以验证 -i 和 -r  ,但是我使用 -f 和 什么都不使用(没有执行方式)的时候,仍然提示是否覆盖信息,并没有忽略。

并且,../  还可以这么用(上面图片中)。

7、Linux rm(英文全拼:remove)命令用于删除一个文件或者目录。

语法:rm [options] name...

参数:

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

当使用 rm 命令删除文件夹的时候,如果文件夹里面不为空,则删除失败,这时候我们要使用  -r 模式,并搭配 -f 使用,这样可以避免确实是否删除的步骤。

8、Linux mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法:mv [options] source dest  或者 mv [options] source... directory

参数:

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

命令格式:

mv source_file(文件) dest_file(文件)
将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录)
将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录)
目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件)
出错

上面几个执行模式都很好理解,就不贴Xshell执行步骤了,重点可以看一下命令格式。

十一.文件属性查看和修改。

查看主目录“ / ” 下的目录详情。

1、lrwxrwxrwx  这个字符串的含义(文件类型和权限)

当第一个字符为:

-             普通文件

d            目录

s            socket套接字

l             软链接   (相当于windows系统中的快捷方式)

p           管道

c           字符设备

b           块设备

除去第一个字符后面的9个字符:

读写权限,三三一组(例如rwx  r-x  --x),分别对应:

属主权限(文件拥有者对文件能做的动作),

属组权限(文件所在组的组成员能对文件做的动作),

其他用户权限(其他人对与文件能做的动作),

其中,r(read),w(write),x(execute),这三个权限的位置不会改变,切如果没有对应的权限,那对应位置就会用“ - ”来代替。

2、后面几个字段的含义

 看下面这个例子:

  • d      rwxr-xr-x    3       kiosk    kiosk   33     Aug 27 09:47         directory
  • [1]        [2]         [3]        [4]       [5]      [6]          [7]                         [8]
  1. [1]     d                          类型(目录)
  2. [2]    rwxr-xr-x              权限
  3. [3]      3                        子目录个数
  4. [4]     kiosk                   目录拥有者
  5. [5]      kiosk                  目录所在组
  6. [6]       33                     目录中内容的属性大小
  7. [7]   Aug 27 09:47        目录中文件增加或减少或被更名的时间
  8. [8]     directory              目录名称

3、权限的数字表示

r 读权限用数字4表示 (2的2次方,从rwe的位置就可以看出来)。

w 写权限用数字2表示 (2的1次方,从rwe的位置就可以看出来)。

e 执行权限用数字1表示 (2的0次方,从rwe的位置就可以看出来)。

如果没有权限即 “ - ” 则用0表示。

4、更改文件属组 chgrp

Linux chgrp(英文全拼:change group)命令用于变更文件或目录的所属群组。

与 chown 命令不同,chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员。

在 UNIX 系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用 chgrp 指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

语法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

参数:

          -c或--changes 效果类似"-v"参数,但仅回报更改的部分。

          -f或--quiet或--silent  不显示错误信息。

          -h或--no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。

          -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理 (这个属性是非常重要的)。

          -v或--verbose  显示指令执行过程。

          --help  在线帮助。

          --reference=<参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

          --version  显示版本信息。

5、更改文件属主 chown

Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。

chown 需要超级用户 root 的权限才能执行此命令。

只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

使用权限 : root。

 语法:chown [-cfhvR] [--help] [--version] user[:group] file...

  参数:

         user : 新的文件拥有者的使用者 ID

         group : 新的文件拥有者的使用者组(group)

         -c : 显示更改的部分的信息

         -f : 忽略错误信息

         -h :修复符号链接

         -v : 显示详细的处理信息

         -R : 处理指定目录以及其子目录下的所有文件

         --help : 显示辅助说明

         --version : 显示版本

6、更改文件的读写权限 chmod

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。mode(工作状态)。

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

语法:chmod [-cfvR] [--help] [--version] mode file...

可以通过数字的方式(一个数字代表主,组或者其他用户的wrx权限的集合),这里只介绍数字一种,还有加减号的方式,比较复杂,很少使用。

-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)。

有一个非常重要的参数就是 -R ,如果不指定这个参数,那么修改的只是指定的这个文件夹,加上之后,会把子文件夹的权限一并更改掉( -R 也可对文件使用)。

十二.查看文件的方式(命令都很强大,这里简单介绍,具体的可以去 菜鸟 搜)。

这个文件是进行网络配置的目录,我们可以通过pwd的命令来查看文件的路径:

可以通过ifconfig来查看网络配置,相当于windows系统中的ipconfig命令:

1、cat命令

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

  语法:cat [-AbeEnstTuv] [--help] [--version] fileName

  参数:

                      -n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

除此之外,cat还可以将文档输出到别处。

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里: cat -n textfile1 > textfile2。

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:cat -b textfile1 textfile2 >> textfile3。

2、tac命令

就是在查看文件内容的时候,将内容倒着输出。

3、nl命令

查看文件的时候,会显示行号,有执行方式,这里不介绍了。

4、more命令

Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按回车enter键是查看下一行,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

5、less命令

less 与 more 类似,less 可以随意浏览文件(通过键盘的上下键),支持翻页和搜索(用 / 来向下查询,用 ?来向下查询,n 用来向下查找搜到的关键字,N 用来向上查找),支持向上翻页和向下翻页(空格 和 b)。

有很多好玩的参数,例如-N -e -m,这个less比more命令更为强大。

        当使用less命令时,文件结束后,并没有退出命令,这个时候,我们需要按下   q (quite)来结束less命令。

6、head命令

head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。

7、tail命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

8、man命令

可以通过man命令来查看命令的使用说明,例如:man cp。

但是正经人谁看这个啊,百度中文的使用说明不好吗,非得看英文。

十三.Linux的硬链接和软连接。

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
       另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

上面说的太乱了,总结一下:

硬链接:当给一个文件one.txt创建了一个硬链接two.txt的时候,两个文件之间就形成了 “ 同步复制” 的关系(先复制文件,在同步文件,two.txt是真正的文件,我是这么理解的,虽然这么说,但是硬链接不必重复的占用磁盘空间,所以只是表现上类似 “ 同步复制  ”,但貌似底层的实现并不是这样),有点类似于redis的主从复制,写入one.txt 中的文本,会被同步复制到two.txt,即使one.txt 被删除了,在two.txt仍能查到原来的内容(这就是硬链接的特点)

软连接:类似于Windows的快捷方式,文件实际上是一个文本文件,里面并不包含文本,只是包含了另一文件的位置信息,如果one.txt 被删除了,那么在通过访问 " 快捷方式" 肯定是失败的

这里思考一下,既然写可以同步复制,那么删除可不可以同步复制呢?并且从硬链接的文件two.txt增加或删除值后,原文件one.txt是否会增加或删除值(反向同步复制)?

经过测试,是可以反向同步复制(删除操作也是可以复制的)的,也就是说,一但硬链接成功,那么这两个文件的内容肯定完全一致。

而且经过测试,硬链接是可以 “串联” 和 “并连”。 即 ln a b  , ln  a c  或者 ln a b , ln b c。而且这些文件的内容是完全一致的。

1、ln命令

Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当使用参数 -s 时,那么这个链接就变成了一个软链接。

2、touch命令

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件(注意是只能创建文件,而且即使这个文件没有后缀名,它也是个文件,而不是文件夹)。

ls -l 可以显示档案的时间记录。

3、echo命令

               可以把文本写入到文件中,例如 : echo " 要一碟茴香豆"  >>  two.txt      。

十四.Vim编辑器的使用。

1、什么是Vim编辑器?

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。

vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;

vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。

vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。

vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。

             ①vi是Visual Interface的缩写,即 可视化接口。

          ②vim是vi iMprove的缩写,即 vi的增强版(具有语法着色功能)。

2、Vim的工作模式?

        vim工作模式可分为三种,即——命令模式,编辑模式,末行模式。

        1. 命令模式:可以用vim加上任意一个已经存在或是想创建的文件名,如果系统还不存在该文件,就意味着创建文件,如果系统存在该文件,就意味着编辑该文件。此时就可以进入vim的默认模式—命令模式。此时vim等待输入正确的命令,键入的每一个字符都会当作命令来处理

在命令行模式下进入到输入模式 可以敲击 i、a、o、 s、 I、 A、 O、 S。

  • i:在光标所在字符前开始插入。
  • a:在光标所在字符后开始插入。
  • o:在光标所在行的下面另起一新行插入。
  • s:删除光标所在的字符并开始插入。
  • I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入。
  • A:在光标所在你行的行尾开始插入。
  • O:在光标所在行的上面另起一行开始插入。
  • S:删除光标所在行并开始插入。
  • 另外 u 撤销上一步的操作 Ctrl+r 恢复上一步被撤销的操作。
  • :      进入末行模式。
  • x:删除当前光标所在位置的字符。
  • dd:删除当前光标所在行。
  • dw:删除当前光标所在位置的单词。
  • 。。。  其他的命令。

        2. 插入模式:在进入命令模式之后,按下a, i  ,o等键可进入插入模式。进入插入模式后可以对文件进行编辑,左下角出现INSERT。

这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

当我们点击Esc按键后,我们就从插入模式变为命令模式了。

        3. 末行模式:在进入末行模式前先按下【Esc】确认处于命令模式后,按下冒号【:】,即可进入末行模式。

在命令模式下,按下『:,/,?』中任意一个,就可以将光标移动到最底下那一行,进入底线命令模式(也称为指令列命令模式)。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、退出、显示行号等等的动作则是在此模式中达成的!同理,必须按下『Esc』按钮才可以退出该模式。

  • /   word :向光标之后查找字符串word,按 n 向后继续搜索。
  • ?word:向光标之后查找字符串word,按 n 向后继续搜索。
  • :n1,n2s/word1/word2/g  在n1-n2行之间查找word1,并替换为word2,不加g 则只替换每行的第一个word1。
  • :1:$s/word1/word2/g  将文档中所有的word1替换为word2,不加g则只替换每行的第一个word1。
  • eg: 把全文中的  /etc/hosts  替换为  aminglinux。
  • :w 保存文本。
  • :q 退出 vim。
  • :w!强制保存,在root用户下,即使文本只读,也可以完成保存。
  • :q!强制退出,所有改动不生效。
  • :wq  保存退出。
  • :set nu 显示行号。
  • :set nonu 不显示行号。
  • :nohl(hight light)不显示背景。
  • :x  与 :wq 作用一样,保存退出,但是:x 命令不会更改 mtime 的值。
  • :wq 命令会更改 mtime的值。

总的来说,vim就是一个文本编辑器,有三种工作模式,命令模式,编辑模式,末行模式。

命令模式 和 底线命令模式 都是操作命令的,可以将底线命令模式看作是命令模式的一个子集(毕竟底线命令模式是运行命令模式才出来的),它们命令操作的东西不同。

编辑模式就是用来编辑文本的,主要是用来写入内容的。

十五.回顾。

         回顾一下这篇文章都学习了什么:简单来说就是介绍了什么是Linux,Linux的发行版,购买阿里云的服务器,Linux的常用操作命令,硬链接和软连接,Vim编辑器等。

         其实Linux还有用户管理,组管理,磁盘管理等等,以后再详细说这些。

【neusoft】 Linux 的学习与使用相关推荐

  1. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  2. 与 Linux 一起学习:学习打字

    "与 Linux 一起学习"的所有文章: 与 Linux 一起学习:学习打字 与 Linux 一起学习:学习物理 与 Linux 一起学习:学习音乐 与 Linux 一起学习:学习 ...

  3. Linux系统管理学习路线图

    Linux系统管理学习路线图 随着Linux应用的扩展,许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.作为一个Linux系统管理员,我看了许多有关L ...

  4. Linux.NET学习手记(2)

    上一回合,我们讨论学习了如何在Linux环境中搭建能够供.NET运行的环境,不知道各位读者是否已经完成了环境的搭建?不过,无论各位读者是采用我们上回合介绍的方法还是采用网上提供的其他方法搭建Linux ...

  5. linux系统管理学习笔记之一-------linux解压缩命令

    linux系统管理学习笔记之一-------linux解压缩命令 2009-12-29 11:52:55 标签:linux tar [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接 ...

  6. 鸟哥的linux 实训教程,鸟哥的Linux基础学习实训教程

    1.理想的Linux上机实践课程 每周一次.每次三小时的学与练 本书所有例题讲解,均经过鸟哥在大专院校实施多年来的测试,对于学生的理解具有相当满意的效果. 2. 提供一致性教学环境 让学习者不再有陌生 ...

  7. Linux 系统学习梳理_【All】

    作者:小a玖拾柒 出处:http://www.cnblogs.com/ftl1012/ 第一部分---基础学习 00.Linux操作系统各版本ISO镜像下载 00.Linux系统下安装Vmware(虚 ...

  8. Linux内核学习--内存管理模块

    Linux内核学习--内存管理模块 首先,Linux内核主要由五个部分组成,他们分别是:进程调度模块.内存管理模块.文件系统模块.进程间通信模块和网络接口模块. 本部分所讲的内存是内存管理模块,其主要 ...

  9. 硬盘mdr转换成gdp linux,Linux 命令学习神器!命令看不懂直接给你解释!

    原标题:Linux 命令学习神器!命令看不懂直接给你解释! 转自: 良许Linux 大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件 ...

  10. linux操作系统学习网站整理(100个)

    linux操作系统学习网站整理(100个) 评选出的这100个优秀站点,将按照下述20个类别作以评介: (一) 文件下载 (二) 幽默娱乐 (三) 相关新闻 (四) 通用硬体 (五) 专用硬体 (六) ...

最新文章

  1. 第十五届全国大学生智能车全国总决赛获奖信息-华南赛区
  2. kmeans python interation flag_Python / Scipy Integration数组
  3. linux上进程状态查询
  4. locate: database too small: /var/db/locate.databas
  5. 前端学习(696):双重for循环
  6. shell 命令自动识别系统升级内核、系统索引更新
  7. Inkscape导出xaml
  8. Android Ubuntu 安装问题FAQ
  9. SOTA太难了?试试Dropout
  10. JXSE 2.5 : What's Cool #6 -- PeerGroup Executor and ScheduledExcutor
  11. 2012年3月份第1周51Aspx源码发布详情
  12. php bi系统,bi系统是什么系统
  13. webrtc 共享屏幕延时测试
  14. 转 Unity知识点0001(Yanlz+协程+List+MeshRender+对象池+链条关节+PlayerPrefs+脚本生命周期+LOD+)
  15. O2O电子商务 营销模式
  16. (源码)在LibVLC中增加录制接口libvlc_media_player_recorder_start
  17. 服装企业ERP软件哪个公司好?施行服装ERP体系的要点是什么
  18. 【AI视野·今日CV 计算机视觉论文速览 第215期】Tue, 8 Jun 2021
  19. VALUE DATE
  20. 黑马代码生成器2.5

热门文章

  1. win7计算机u盘不显示盘符,win7系统识别U盘但不显示盘符该如何解决?
  2. ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon runn
  3. 表结构 shopnc
  4. iptables匹配statistic
  5. 抖音 触摸精灵_touchscale.co在哪里玩 抖音爆火触摸称重游戏是什么
  6. Reincarnation
  7. word中将英文及数字全部修改为Times New Roman字体
  8. authorized_key 不生效。
  9. element-ui的upload 上传组件 照片墙当超过限定图片后隐藏上传按钮
  10. 阿里云 mysql 导出数据库_阿里云服务器如何操作导出数据库