linux学习笔记

linux基本学习

终端的使用和联网

打开终端

点击鼠标的右键 -选择打开终端

1584492410492

配置网路

选择这个

1584492561117

选择eth0就可以上网

vmtoos安装

vmtoos介绍

可以直接粘贴命令在windos和centos系统之间

可以设置windows和centos的共享文件夹

示意图:

1584494103164

安装vmtools的步骤

  • 进入cenetos
  • 点击vm菜单的-》install vmware tools
  • centos会出现一个vm的安装包
  • 点击右键解压,得到一个安装文件
  • 进入vm解压得目录,该文件在/root/桌面/vmware-tools-distrib/下
  • 安装./vmware-install.pl
  • 全部使用默认设置即可
  • 需要reboot重新启动即可生效

文件系统目录结构

基本介绍:

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层的是根目录“/”,然后在此目录下在创建其他的目录。

深刻理解linux树状文件目录是非常重要的。在linux世界中,一切皆为文件。

1584497806443

1584498441180

1584498531891

1584498545264

1584498618618

总结一下:

  • linux的目录中有且只要一个根目录/
  • linux的目录存放的内容是规划好的,不用乱放文件
  • linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件。
  • linux的各个文件目录存放什么内容,必须要了解掌握一下
  • 学习后脑海中应该有一颗linux目录树

linux实操篇

远程登陆

1584499011988

1584500107149

xshell介绍

1584499333533

特别说明

如果希望安装好xshell5就可以远程访问linux系统的话,需要有一个前提,就是linux启用了sshd服务,该服务会监听22好端口。(系统中端口越多越不安全)

安装xshell

1584501285422

远程上传下载(暂无学习)

vi和vim编辑器

vi和vim编辑器介绍

1584501818176

vi和vim的三种常见的模式介绍

正常模式

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

插入模式

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

命令行模式

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

三种模式快速入门案例

vim中的命令

刚打开一个文件时这个时候时正常模式,如果想进入插入模式的话在当前屏幕上(我们默认输入从键盘输入i),然后就进入了插入模式。如果想退出插入模式的话,从键盘输入按下esc这个按键。这时候就进入了正常模式,如果想从正常模式中进入命令行模式的话,需要从键盘输入:此时代表进入了命令行模式。

命令行模式中

  • wq :代表保存并退出
  • q! :不保存并退出
  • q :只有对文件没动做任何修改时才能使用q退出,如果文件有一点改动 q就没办法退出

vim中快捷键的使用

  • 拷贝当前行 :yy, 拷贝当前行向下的5行5yy,并粘贴(p)。

  • 删除当前行 : dd, 删除向下的5行 :5dd

  • 在文件中查找某个单词{命令行下 /关键字,回车查找,输入n就是查找下一个}

  • 设置文件的行号,取消文件的行号{命令行下 :set nu 和 :set nonu}

  • 编辑 /ect/profile文件,使用快捷键到底文档的最末行{G}和最首行{gg}

  • 在一个文件中输入“hellow”,然后又撤消这个动作{在正常模式下} uo

  • 编辑 /etc/profile文件,并将光标移动到第20行 shift+g

    显示行号:set nu

    输入20这个数输入

    shift+g

开机、重启和用户登录注销

关机&重启命令

基本介绍

shutdown

​ shutdown -h now

​ shutdown -h 1

​ shutdown -r now

halt

​ 就是直接使用,效果等于关机

reboot

​ 就是重启系统。

sync

​ 把内存的数据同步到硬盘

注意细节:

​ 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写道磁盘中。

用户的登陆和注销

基本介绍

登陆时尽量少用root账号登陆,因为它是系统管理员,最大权限,避免操作失误。可以利用普通用户登陆,登陆后再用su -用户名命令来切换成系统管理员身份

在提示符下输入logout即注销用户

使用细节:

​ logout注销指令在图形运行级别无效,在运行级别3有效

​ 运行级别这个概念,后面介绍。

用户管理

图示理解

1584514757341

说明:

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

​ linux的用户需要至少要属于一个组

添加用户

useradd [选项] 用户名 添加用户名

passwd 用户名 为用户名添加密码

su 用户名 切换用户

cd 要切换的目录 切换到指定的目目录

细节说明:

当创建用户成功后,会自动的创建和用户同名的的目录

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

给用户指定或者修改密码

基本语法

passwd 用户名

删除用户

userdel 用户名

应用案例

删除用户yang,但是 要保留家目录

userdel yang

删除用户 yang1以及用户主目录

1584516546639

思考题:

在删除用户时,我们一般不会把家目录删除掉

如何查询用户信息

基本语法

id 用户名

应用实例

查询root用户信息

id root

1584517741889

切换用户

su 要切换的用户

例如 su root

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

当需要返回原来用户时,使用exit指令

1584518128782

查看当前用户/登陆用户

两个指令

who am i

whoami

1584518238202

用户组

用户组介绍

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

增加用户组

groupadd 组名

演示:

1584518707510

删除一个组

groupdel组名

案例演示

指令(基本语法)

useradd -g 用户组 用户名

步骤:

第一步创建一个组cat

第二步创建一个用户并指定组

第三步查询用户信息

1584519164294

修改用户组

基本语法

usermod -g 用户组 用户名

演示案例:
创建一个dog组,让cat用户修改到dog组中

1584519727904

查询所有的用户的信息

cat /ect/passwd;

查询所有的组信息

cat/etc/group

linux实用篇

linux运行级别

运行级别说明

  1. 关机
  2. 单用户【找回丢失密码】
  3. 多用户状态有网络服务
  4. 系统未使用保留用户
  5. 图形界面
  6. 系统重启

常用的运行级别是3和5,要修改默认的运行级别可改文件

/etc/inittab的id:5initdefault:这一行中的数字

命令:init[0123456]

切换到指定的运行级别

案例1:通过init来切换不同的运行级别,比如5>3,然后关机

init 3

init 5

init 0

运行级别的面试题

如何找回root密码,如果我们不小心,忘记了root密码,怎么找回

思路:

进入到单用户模式,然后修改模式,因为进入单用户模式,root不需要密码就可以登陆

演示:

1584521929485

1584521992105

1584522058768

1584522105731

然后就root身份进入单用户模式 然后就可以修改密码

帮助指令学习

介绍:
当我们对某个指令不熟悉时,我们可以使用linux提供帮助指令来了解这个指令的使用方法。

man指令 :获得帮助信息

基本语法:

man[命令或配置文件](功能描述:获得帮助信息)

应用案例:

案例:查看ls命令的帮助信息

help指令

功能描述:

获得shell内置命令的帮助信息

案例:

查看cd的使用

help cd

文件目录指令

pwd指令

基本语法:

pwd(功能描述:显示当前工作目录的绝对路径)

应用实例

案例:显示当前工作目录的绝对路径

1584524140296

ls指令

基本语法

ls(选项)【目录或是文件】

常用选项:

  • -a:显示当前目录所有的文件,包括隐藏文件
  • -l:以列表的方法显示信息

应用案例:

查看当前目录下的所有内容信息

1584524359109

cd指令

基本语法:

cd [参数] 【功能描述:切换到指定目录】

常用参数:

绝对路径和相对路径

cd ~或者cd :回到自己的家目录

1584525358108

cd .. 回到当前目录的上一级目录

1584525405204

应用实例:

案例1:使用绝对路径切换到root目录

1584525264583

案例2:使用相对路径到/root目录

案例3:表示回到当前目录的上一级目录

1584524818777

案例4:回到家目录

思考题:

当前工作目录时/root.我们希望进入到/home下

1584525135328

绝对路径:/home即从根目录开始定位

相对路径: ../home,从当前工作目录开始定位到需要的目录去

mkdir指令

mkdir指令用于创建目录

基本语法

mkdir [选项] 要创建的目录

常用选项

-p:创建多级目录

应用实例:

案例1:

创建一个目录/home/dog

1584525932811

案例2:

创建多级目录/home/animal/tiger

1584526295374

rmdir

介绍:

rmdir指令删除空目录

基本语法:

rmdir [选项] 要删除的空目录

应用实例

案例1:删除一个目录/home/dog

1584526711023

案例2:删除一个目录/animal/tiger

1584527165966

使用细节

mdir删除的是空目录,如果目录下有内容时无法删除

提示:如果需要删除非空白目录,需要使用 rm -rf 要删除目录

touch指令

touch指令创建空文件

基本语法:

touch 文件名称

应用实例

​ 案例1:创建一个空问价 hellow.txt

1584527548355

一次性创建多个文件

1584527646668

cp指令(重要)

cp指令拷贝文件到指定目录

基本语法

cp[选项] source dest

常用选项

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

应用实例

案例1:将/home/aaa.txt拷贝到/home/bbb目录下

1584528252145

案例2:递归复制整个文件夹,举例

1584528362072

使用细节

强制覆盖不提示的方法:cp

rm指令

rm指令移除文件或目录

基本语法

rm【选项】要删除的文件或目录

常用选项

-r:递归删除整个文件夹

-f:强制删除不提示

应用实例

案例1:将/home/1.txt删除

案例2:递归删除整个文件夹/home/cp

使用细节

强制删除不提示的方法:带上-f参数即可

mv指令

mv移动文件与目录或重命名

基本语法:

mv oldNameFile newNameFIle (功能描述:重命名)

mv /temp/movefile /targetFolder(功能描述:移动文件)

.应用实例

案例1将/home/1.txt文件重命名为pig.txt

1584584056586

案例2:将/home/pig.txt文件移动到/root目录下

1584584169765

cat

cat查看文件内容

基本语法

cat [选项] 要查看的文件

常用选项

-n:显示行号

应用实例

案例1: /etc/profile 文件内容,并显示行号

1584584788075

1584584764379

案例2: /etc/profile 文件内容,不显示行号

1584584853783

使用细节

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

cat /etc/profile |more

分页显示 按回车键显示下一行

more指令

more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件内容。

more指令中内置了若干快捷键

基本语法

1584585154687

more要查看的文件

操作说明

应用实例

案例:采用more查看文件 /etc/profile

more /etc/profile

1584585311076

less指令

1584585422643

less 要查看的文件(大型文件推荐使用)

>指令和>>指令

{>输入重定向和>>追加}

1584585814174

ls -l >文件(注意如果文件不存在则载当前目录下床架一个文件 ,如果存在则直接覆盖问价内容)

1584586469848

ls -al >>文件

1584586907859

1584586879658

cat 文件 >文件

1584587220897

echo "内容" >文件 将内容追加到文件的内容

1584587353005

echo "内容" >>文件 将内容追加到文件后面

1584587446935

应用实例:

案例1:将/home目录下的问价列表写入到/home/info.txt中

案例2:j将当前日历信息追加到/home/mysql文件中【提示cal】

1584587594857

cal日历信息

1584587478435

echo指令

echo输出内容到控制台

基本语法

echo【选项】【输入内容】

应用实例

案例:使用echo指令输出环境变量,输出当前的环境路径

1584587877158

案例:使用echo指令输出hellow,wold!

1584587977088

head指令

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

基本语法

head文件(功能描述:查看头文件10行内容)

head -n5 文件 (功能描述:查看头文件5行内容,5可以是任意行数)

应用实例:

案例:查看etc/profile的前5行内容

1584588312402

tail指令

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

基本语法

tail 文件 (功能描述:查看问价后10行内容)

tail -n5 文件 (功能描述:查看问价后5行内容,5可以是任意行数)

tail -f 文件 (功能描述:实时追踪该文档的所有更新,工作经常使用)

应用实例

案例:查看/etc/profile最后5行的内容

1584588666134

案例:实时监控mydata.txt,看看到文件有变化时,实时日期追加

tail -f mydata.txt

1584588788947

IN指令

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

基本语法

in -s[原文件或目录] [软连接名] (功能描述:给原文件创建一个软连接)

细节说明

当我们使用Pwd指令查看目录时,仍然看的是软连接所在目录

hestory指令

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

基本语法

history(功能描述:查看已经执行过历史命令)

应用实例

案例:显示所有的历史命令

1584589529216

案例:显示最近使用过的10个指令

1584589569834

案例:执行历史编号为382的指令

1584589642134

时间日期类相关指令

date指令-显示当前日期

基本语法

date (功能描述:显示当前时间)

1584589814821

date +%Y (功能描述:显示当前年份)

1584590188021

date +%m (功能描述:显示当前月份)

1584590218662

date +%d (功能描述:显示当前是哪一天)

1584590245276

date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

1584590303162

应用案例

案例:显示当前时间信息

1584590457835

案例:显示当前时间年月日

1584590392259

案例:显示当前时间年月日时分秒

1584590370596

设置时间日期

基本语法:

date -s 字符串时间

应用实例

案例:设置系统当前时间,比如设置成 2020-3-20 12:00:00

1584590822203

cal指令

查看日历指令

基本语法:

cal [选项] (功能描述 :不加选项,显示本月日历)

应用实例

案例:显示当前日历

1584596075354

案例:显示2020年日历

1584596119232

搜索查找类

find指令

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

基本语法

find [搜索范围] [选项]

选项说明

1584596743017

应用实例:

案例1:按文件名,根据名称查找/home目录下的hellow.txt文件

1584597125480

案例2:按拥有者:查找/opt目录下,用户名称为nobdy的文件

1584597198432

案例3:查找整个linux系统下大于20m的文件(+n 大于 -n小于 n等于)

1584597257910

locate指令

1584597555374

1584597533019

grep指令和管道符号|

1584597624457

1584598031563

压缩和解压缩指令

gzip和gunzip

gzip用于压缩文件,gunzip用于解压缩文件

基本语法

gzip文件 (功能描述:压缩文件,只能将文件压缩为*.gz)

gunzip文件.gz (功能描述:解压文件命令)

应用实例

案例:gzip压缩,将/home下的hellow.txt文件进行压缩

1584598858693

案例:gunzip压缩,将/home下的hellow.txt.gz文件进行解压缩

细节说明:

当我们使用gzip对文件经行压缩后,不会保留原来的文件

zip和unzip指令

zip用于压缩文件,unzip用于解压缩的,在这个项目打包发布中使用很有用的

基本语法:

zip [选项] xxx.zip将要压缩的内容(功能描述:压缩文件和目录的命令)

unzip [选项] xxx.zip (功能描述:解压缩文件)

zip常用的选项

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

unzip常用选项

-d<目录> :指定解压文件的存放目录

应用实例:

案例1:将/home下的所有文件进行压缩成mypackge.zip

1584599603698

1584599620364

案例2:将mypackge.zip解压到/opt/tem目录下

1584599830324

1584599793058

tar指令

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

基本语法

tar [选项] xxx.tar.gz打包内容(功能描述:打包目录,压缩后的文件格式.tar.gz )

选项说明

1584600028335

应用实例

案例1:压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz

1584600921801

1584600954174

案例2:将/home的文件夹压缩成myhome.tar.gz

压缩 tar zcvf

1584601061129

1584601037862

1584601018438

案例3:将a.tar.gz解压缩到当前目录

解压 tar -zxvf

1584601194339

案例4:将home.tar.gz解压到/home/cp/目录下

1584601450777

细节注意:

指定解压到的目录一定要存在,不存在的话会报错(解压不成功)

组管理

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

所有者

所在组

其它组

改变用户所在组

目录/文件所有者

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

查看文件的所有者

指令:ls -ahl

应用实例:创建一个组test,在创建一个用户tt,然后使用tt来创建一个文件。

1584668086367

1584668113888

做完上述操作后删除组和用户

1584668342416

修改文件的所有者

指令:chown用户名 文件名

应用案例:

要求:使用root创建一个文件apple.txt,然后将其所有者修改成tom

1584668687809

1584668738009

组的创建

基本指令:

groupadd组名

应用实例:

创建一个组,test

创建一个用户fox,放到test组中

1584668909244

文件/目录所在组

查看文件/目录所在组

基本指令:

ls -ahl

修改文件所在组

基本指令:

chgrp 组名 文件名

应用实例:

使用root用户创建文件orange.txt,看看当前这个文件属于那个组,修改文件到police组中

1584669486466

1584669599188

其他组

除了文件的所有者所在组的用户外,系统的其它用户都是文件的其他组

改变用户的所在组

基本指令

usermod -g 组名 用户名

1584669851497

删除上述创建组和用户

1584669928591

权限的基本介绍

ls -l 中显示的内容如下:

-rwxrw-r-- 1 root root 1234 Feb 2 09:03 abc

0-9为说明

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

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

第4-6为确定所属组(同用户组的)拥有该文件的权限

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

1584670748380

rwx权限详解

1584670811750

文件及目录的实际案例

1584670926043

修改权限

基本说明:
通过chmod指令,可以修改文件或者目录的权限

修改权限的第一种方式:+、-、=变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u,g,o的总和)

chmod u=rwx,g=rx,o=x 文件目录名

chmod o+w 文件目录名

chmod a-x 文件目录名

案例演示:

给abc文件的所有者读写执行 权限,给所在组读执行权限,给其它组读执行权限

1584673117573

给abc文件的所有者除去执行权限,增加组写的权限

1584673129016

给abc文件的所有组用户添加读的权限

1584673147395

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

1584673327166

原文地址:https://www.cnblogs.com/liu-xin-yang/p/12581053.html