我的Linux学习笔记(1)

前言

此文章为本人自学Linux的学习笔记,供自己和小白学习参考,如有错误和问题,欢迎各位评论,一起进步。自学课程为韩顺平老师的《2021图解Linux全面升级》,笔记为参考韩老师的教学笔记综合个人情况进一步总结。特别注意:指令中的符号均为纯英文符号,在记录过程中可能误将中文符号记进去,为了方便阅读识别,指令中还不同数的多加了空格,学习时请读者自行识别。


文章目录

前言

一、Linux入门

1.1 Linux是什么?

1.2 吉祥物--Tux

1.3 Linux 主要的发行版

二、目录结构

2.1 Linux 目录结构

2.1.1 基本介绍

2.2 具体的目录结构 

三、Linux 上手工具

3.1 远程登录 Linux -- Xshell

3.2 远程上传下载文件--Xftp

3.3 VI 和 VIM 编辑器

3.3.1 基本介绍

 3.3.2 常用的三种模式

 3.3.3 vi 和 vim 快捷键

四、Linux 上手--开机、重启和用户登录注销

4.1 关机&重启命令

4.1.1 基本语法

4.1.2 注意细节

4.2 用户登录和注销

4.2.1 基本介绍

4.2.2 使用细节

五、Linux 上手--用户管理

5.1 基本介绍

5.2 常用语法及细节说明

5.2.1 常用语法

5.2.2 细节说明

5.3 用户组

5.3.1 介绍

5.3.2 常用语法

5.4 用户和组的相关文件

5.4.1 /etc/passwd 文件

5.4.2 /etc/group 文件

六、实用指令

6.1 指定运行级别

6.1.1 运行级别说明

6.1.2 CentOS7后运行级别说明

6.2 找回root密码

6.3 帮助指令

6.3.1 常用语法

6.3.2 百度更直接

6.4 文件目录类

6.4.1 pwd 指令

6.4.2 ls 指令

6.4.3 cd 指令

6.4.4 mkdir 指令

6.4.5 rmdir 指令

6.4.6 touch 指令

6.4.7 cp 指令

6.4.8 rm 指令

6.4.9 mv 指令

6.4.10 cat指令

6.4.11 more 指令

6.4.12 less 指令

6.4.13 echo 指令

6.4.14 > 指令和 >> 指令

6.4.15 head 指令

6.4.16 tail 指令

6.4.17 ln 指令

6.4.18 history 指令

6.5 时间日期类

6.5.1 date 指令

6.5.2 cal 指令

6.6 搜索查找类

6.6.1 find 指令

6.6.2 locate 指令和which 指令

6.6.3 grep 指令和管道符号 |

6.7 压缩和解压类

6.7.1 gzip/gunzip 指令

6.7.2 zip/unzip 指令

6.7.3 tar 指令

七、Linux上手--组管理和权限管理

7.1 组管理

7.1.1 组的基本介绍

7.1.2 文件/目录所有者

7.1.3 常用语法

7.2 权限管理

7.2.1 权限的基本介绍

7.2.2 rwx 权限详解

7.2.3 修改权限的两种语法--chmod

总结


一、Linux入门

1.1 Linux是什么?

Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/c++/php/python/java/go)都会部署到Linux/unix系统上。

1.2 吉祥物--Tux

1.3 Linux 主要的发行版

Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、SuSE、OpenSUSE

二、目录结构

2.1 Linux 目录结构

2.1.1 基本介绍

  1. linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录
  2. 在Linux世界里,一切皆文件!
  3. 树状目录示意图

树状目录示意图

2.2 具体的目录结构 

  1. /bin [常用] (/usr/bin、/usr/local/bin) 是Binary的缩写,这个目录存放着最经常使用的命令  
  2. /sbin (/usr/sbin、/usr/local/sbin) s就是Super User 的意思,这里存放的是系统管理员使用的系统管理程序
  3. /home [常用] 存放普通用户的主目录,在Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
  4. /root [常用] 该目录为系统管理员,也称作超级权限者的用户主目录
  5. /lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的 DLL文件。几乎所有的应用程序都需要用到这些共享库
  6. /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
  7. /etc [常用] 所有的系统管理所需要的配置文件和子目录,比如安装mysql 数据库 my.conf
  8. /usr [常用] 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的 program files目录。
  9. /boot [常用] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  10. /proc [不能动] 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
  11. /srv [不能动] service缩写,该目录存放一些服务启动之后需要提取的数据
  12. /sys [不能动] 这是limux2.6内核的一个很大的变化.该目录下安装了2.6内核中新出现的一个文件系统 sysfs
  13. /tmp 这个目录是用来存放一些临时文件的
  14. /dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储
  15. /media [常用] linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下
  16. /mnt [常用] 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里的内容了
  17. /opt 这是给主机额外安装软件所存放的目录。如安装ORACLE 数据库就可放到该目录下。默认为空
  18. /usr/local [常用] 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
  19. /var [常用] 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
  20. /selinux [security-enhanced linux] SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置

三、Linux 上手工具

3.1 远程登录 Linux -- Xshell

  1. 说明:Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员的首选软件。
  2. Xshell是一个强大的安全终端模拟软件,它支持SSH1, SSH2,以及Microsoft Windows 平台的TELNET协议。
  3. Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

3.2 远程上传下载文件--Xftp

介绍:是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp 以后,windows 用户能安全地在UNIX/Linux和Windows PC之间传输文件。

3.3 VI 和 VIM 编辑器

3.3.1 基本介绍

  Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

VIM

 3.3.2 常用的三种模式

正常模式 :  以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用「复制、粘贴』来处理你的文件数据。

插入模式 :  按下i, I,o,O, a,A, r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可。

命令行模式 :  输入 esc再输入:在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的!

 3.3.3 vi 和 vim 快捷键

  1. 拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴(输入p)
  2. 删除当前行dd,删除当前行向下的5行5dd
  3. 在文件中查找某个单词[命令行下/关键字,回车查找,输入n就是查找下一个
  4. 设置文件的行号,取消文件的行号.[命令行下: set nu和:set nonu]
  5. 在一般模式下,使用快捷键到该文档的最末行[G/shift+g]和最首行[gg]
  6. 在一个文件中输入"hello",在一般模式下,然后又撤销这个动作 u
  7. 更多查询百度等

四、Linux 上手--开机、重启和用户登录注销

4.1 关机&重启命令

4.1.1 基本语法

  • shutdown  -h  now   立刻进行关机
  • shutdown  -h  1        1分钟后关机
  • shutdown  -r  now    现在重启计算机
  • halt             强制关机
  • reboot        现在重启计算机
  • sync           把内存的数据同步到磁盘

4.1.2 注意细节

  1. 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
  2. 目前的 shutdown / reboot / halt 等命令均已经在关机前进行了 sync , 小心驶得万年船

4.2 用户登录和注销

4.2.1 基本介绍

  • su  -  用户名       登录到用户
  • logout  /  exit     注销

4.2.2 使用细节

  1. logout 注销指令在图形运行级别无效,在运行级别3下有效.
  2. su  -  用户名  指令,当高权限用户登录到低权限用户时,无需密码;当低权限用户登录到高权限用户时,需要输入密码

五、Linux 上手--用户管理

5.1 基本介绍

  Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一账号,然后以这个账号的身份进入系统

5.2 常用语法及细节说明

5.2.1 常用语法

  • useradd  用户名     添加用户
  • useradd  -d  指定目录  用户名     添加用户并指定该用户的家目录
  • useradd  -g  组名  用户名     添加用户,并直接将他加入某组内
  • passwd  用户名     指定/修改密码
  • userdel  用户名     删除用户,但是保留家目录
  • userdel  -r  用户名     删除用户及其家目录 
  • id  用户名     查询用户信息
  • su  -  用户名     切换用户
  • exit  /  logout     注销
  • whoami  /  who am i     查看当前用户

5.2.2 细节说明

1.当创建用户成功后,会自动的创建和用户同名的家目录  /home/用户名

2.也可以通过 useradd -d 指定目录 用户名,给新创建的用户指定家目录

3.一般情况下,我们删除用户时,保留其家目录

4.从权限高的用户切换到权限低的用户,不需要输入密码,反之需要

5.当需要返回到原来用户时,使用 exit / logout 指令

5.3 用户组

5.3.1 介绍

类似于角色,系统可以对有共性/权限的多个用户进行统一的管理

5.3.2 常用语法

  • groupadd  组名     新增组
  • groupdel   组名     删除组
  • useradd   -g  组名  用户名     添加用户时直接上组
  • usermod  -g  组名  用户名     修改用户的组

5.4 用户和组的相关文件

5.4.1 /etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  

5.4.2 /etc/group 文件

组(group)的配置文件,记录Linux包含的组的信息

每行的含义:组名:口令:组标识号:组内用户列表

六、实用指令

6.1 指定运行级别

6.1.1 运行级别说明

1:单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启

常用运行级别是3和5,也可以指定默认运行级别

6.1.2 CentOS7后运行级别说明

在centos7以后,/etc/inittab文件中进行了简化,如下:

multi-user.target: analogous to runlevel 3

graphical.target: analogous to runlevel 5

# To view current default target, run:

systemctl get-default

# To set a default target, run:

systemctl set-default TARGET.target

6.2 找回root密码

6.3 帮助指令

6.3.1 常用语法

  • man  [命令或配置文件]     获得帮助信息
  • help  命令     获得shell内置命令的帮助信息

6.3.2 百度更直接

6.4 文件目录类

6.4.1 pwd 指令

  • pwd     显示当前工作目录的绝对路径

6.4.2 ls 指令

  • ls  [选项]  [目录或文件]     查看当前目录所有文件和目录

常用选项:

  • -a  显示隐藏文件和目录
  • -l  以列表的方式显示信息
  • -h  大小从字节换算为k,M,G

6.4.3 cd 指令

  • cd  [路径]      切换到指定目录
  • cd  ..     切到当前目录的上一级目录
  • cd  ~     切到自己的家目录

注意:路径可以是绝对路径或相对路径

绝对路径:从根目录 开始

相对路径:从当前所在目录开始

6.4.4 mkdir 指令

  • mkdir  [选项]  目录     创建目录

常用选项:

  • -p:创建多级目录

例如:

mkdir  -p  /home/xc/1/2/3

6.4.5 rmdir 指令

  • rmdir  [选项]     删除空目录
  • rm  -rf     删除非空目录

6.4.6 touch 指令

  • touch  文件名称     创建空文件

注意:只创建,不打开编辑。

6.4.7 cp 指令

  • cp  [选项]  要复制的文件  目标目录     拷贝文件(复制)

常用选项:

  • -r     递归复制整个文件夹

案例:将/home 全部拷贝到/opt:

cp  -r  /home  /opt

使用细节:强制覆盖不提醒的方法:\cp 

\cp  -r  /home  /opt

6.4.8 rm 指令

  • rm  [选项]  目录或文件     删除目录或文件

常用选项:

  • -r:递归删除整个文件
  • -f:强制删除不提醒

6.4.9 mv 指令

  • mv  旧名字  新名字     重命名
  • mv  原目录  目标目录     移动文件(剪切)

注意:移动整个文件时不需要-r递归(cp拷贝时需要)

6.4.10 cat指令

  • cat  [选项]  要查看的文件     查看文件内容

常用选项:

  • -n:显示行号

使用细节:

cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 |more

 cat  -n  /etc/profile  |  more

6.4.11 more 指令

介绍:more 指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见下图

  •  more  要查看的文件     查看文件

6.4.12 less 指令

介绍:less指令用来分屏查看文件内容,它的功能与more指令类似,但是比 more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

操作说明: 

  • less  要查看的文件     查看文件

6.4.13 echo 指令

  • echo  [选项]  内容     输出内容到控制台

6.4.14 > 指令和 >> 指令

输出重定向(直接内容)

>> 追加(补在后面)

  • ls  -l  >  文件     列表的内容写入文件中(覆盖)
  • ls  -al  >>  文件     列表的内容追加到文件的末尾(不覆盖)
  • cat  文件1  >  文件2     将文件1的内容覆盖到文件2
  • echo  “内容”  >>  文件     把“内容”追加到文件末尾

应用实例:

1.将/home 目录下的文件列表覆盖写入到/home/info.txt:

ll  /home  >  /home/info.txt  [如果没有info.txt,则会自动创建]

2.将当前日历信息追加到/home/mycal文件中:

cal  >>  /home/mycal

6.4.15 head 指令

介绍:head 用于显示文件的开头部分内容,默认情况下head 指令显示文件的前10行内容

  • head  文件     查看文件前10行内容
  • head  -n  x  文件     查看文件前x行内容

6.4.16 tail 指令

介绍:tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。

  • tail  文件     查看文件末10行内容
  • tail  -n  x  文件     查看文件末x行内容
  • tail  -f  文件     实时追踪该文档的所有更新

6.4.17 ln 指令

介绍:软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

  • ln  -s  原文件或目录  放置目录和软连接名     给原文件创建一个软连接

案例:

1.在/home目录下创建一个软连接myroot,连接到/root目录

ln  -s  /root  /home/myroot

2.删除软连接myroot

rm  /home/myroot

6.4.18 history 指令

介绍:查看已经执行过历史命令,也可以执行历史指令

  • history     查看所有的历史指令
  • history  x     先最最近使用过的x条指令
  • !x     执行历史编号为x的指令

6.5 时间日期类

6.5.1 date 指令

  • date     显示系统时间
  • date  +  %Y     显示系统年份
  • date  +  %m     显示系统月份
  • date  +  %d     显示系统是哪一天
  • date  "+%Y-%m-%d %H:%M:%S"     显示年月日时分秒
  • date  -s  时间字符串     设置系统时间

注意:区分字母大小写

例如:将系统时间设置为 2022/7/16 16:16:10

date  -s  "2022-07-16 16:16:10"

6.5.2 cal 指令

  • cal  [选项]     不加选项,显示本月日历
  • cal  Year     显示Year年日历

6.6 搜索查找类

6.6.1 find 指令

介绍:find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

  • find  [范围]  [选项]  xxx     目录下查找

常用选项:

  • -name:按照文件名查找文件
  • -user:查找属于指定用户名所有文件
  • -size:按照指定的文件大小查找文件

注意:

按大小查找单位有k,M,G:

+n为大于n,-n为小于n,n为等于n

6.6.2 locate 指令和which 指令

介绍:locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate数据库

  • locate  文件名     搜索文件所在目录
  • which  指令     查看指令所在目录
  • updatedb     创建和更新locate数据库

注意:由于locate指令基于数据库进行查询,所以第一次使用前,必须使用updatedb指令创建locate数据库

6.6.3 grep 指令和管道符号 |

介绍:grep过滤查找,管道符“|”表示将前一个命令的处理结果输出传递给后面的命令处理。

  • grep  [选项]  查找内容  源文件     过滤查找
  • cat  源文件  |  grep  查找内容     过滤查找

常用选项:

  • -n:显示匹配行及行号
  • -i:忽略字母大小写
  • -v:反选,有xxx的不显示

6.7 压缩和解压类

6.7.1 gzip/gunzip 指令

  • gzip  文件     压缩文件,只能将文件压缩为*.gz文件
  • gunzip  文件.gz     解压缩文件

6.7.2 zip/unzip 指令

  • zip  [选项]  XXX.zip  要压缩的文件或目录
  • unzip  []  XXX.zip     解压在当前目录下

zip常用选项:

  • -r:递归压缩,即压缩目录

unzip常用选项:

  • -d:指定解压后文件的存放目录

例如:

将/home/myhome.zip解压到/opt/tmp中

unzip  -d  /opt/tmp  /home/myhome.zip

6.7.3 tar 指令

介绍:tar指令是打包指令,最后打包后的文件是.tar.gz 的文件。

  • tar  []  XXX.tar.gz  打包的内容     打包
  • tar  -zcvf  XXX.tar.gz  内容1  内容2 ...     把内容1,2,...打包
  • tar -zxvf  xxx.tar.gz     解包
  • tar -zxvf  xxx.tar.gz  -C  目标目录     解包到xxx

常用选项:

  • -c:产生.tar打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包同时压缩(解包时也要加)
  • -x:解包
  • -C:解包时指定解压后的目录

6.8 补充指令

6.8.1 sort排序

sort   从小到大排序

sort -nr   从大到小排序

6.8.2 uniq

uniq

6.8.3 cut

cut

6.8.4 awk

awk

七、Linux上手--组管理和权限管理

7.1 组管理

7.1.1 组的基本介绍

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

7.1.2 文件/目录所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

7.1.3 常用语法

  • ls  -l     查看文件/目录所有者
  • ls  -l     查看文件/目录所在组
  • chown  新所有者名  文件/目录名     修改文件/目录所有者(目录内不改变
  • chown  -R  新所有者名  目录名     递归修改该目录及该目录下的文件/目录所有者 
  • groupadd  组名     创建组
  • useradd  -g  组名  用户名     创建用户时直接进组
  • chgrp  新组名  文件/目录名     修改文件/目录所在组
  • usermod  -g  新组名  用户名     改变用户所在组
  • usermod  -d  目录  用户名     改变该用户登录的初始目录

注意:改变用户初始目录时,用户需要有进入到新目录的权限(即执行权x)

7.2 权限管理

7.2.1 权限的基本介绍

 drwxr-xr-x       0-9位,共十位

0-9位说明:

第0位确定文件类型(-,d,l,c,b)

  • -是文件
  • d是目录,相当于Windows的文件夹
  • l是链接,相当于Windows的快捷方式
  • c是字符设备文件,如鼠标,键盘
  • b是块设备,比如硬盘

第1-3位确定所有者(该文件的所有者)拥有该文件的权限---User

第4-6位确定所属组(与文件同组的人)拥有该文件的权限---Group

第7-9位确定其他用户拥有该文件的权限---Other

7.2.2 rwx 权限详解

  • rwx作用到文件
  1. r代表可读(read):可以读取,查看文件内的内容
  2. w代表可写(write):可以修改文件内的内容(不代表可以删除和重命名)
  3. x代表可执行(execute):可以运行
  • rwx作用到目录
  1. r代表可读(read):可以读取,ls查看目录内的内容
  2. w代表可写(write):可以修改,在目录内创建,删除,重命名
  3. x代表可执行(execute):可以进入目录内

7.2.3 修改权限的两种语法--chmod

1.第一种方式:+、-、=变更权限

u:所有者   g:所在组   o:其他人   a:所有人

  • chmod  u=rwx,g=rx,o=x  文件/目录名     给u,x,o对应权限
  • chmod  o+x,a-x  文件/目录名     在原来基础上增加/减少对应权限

2.第二种方式:通过数字变更权限

r=4  w=2  x=1,则w+x=3,r+x=5,r+w=6,r+w+x=7

  • chmod  abc  文件/目录名     分别给u:a的权限,g:b的权限,o:c的权限
  • a,b,c均为0到7的数字

注意:以上两种变更权限的方式都是只对单个指定的目录/文件生效,如果想要将目录,及目录下的文件/目录都进行权限变更,则需要加上 -R 进行递归处理

例如:

chmod  -R  u=rwx,g+w,o-w  目录名

chmod  -R  741  目录名

总结

  此篇笔记到此已经写完了,为Linux学习笔记的第一篇,之后的Linux学习笔记也将以博客的形式进行记录总结。此部分的内容较为简单,基础知识,常用指令较多,应该以实际操作为主,多多上手练习,无他, 但手熟尔。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值