linux学习笔记
linux基本学习
终端的使用和联网
打开终端
点击鼠标的右键 -选择打开终端
配置网路
选择这个
选择eth0就可以上网
vmtoos安装
vmtoos介绍
可以直接粘贴命令在windos和centos系统之间
可以设置windows和centos的共享文件夹
示意图:
安装vmtools的步骤
- 进入cenetos
- 点击vm菜单的-》install vmware tools
- centos会出现一个vm的安装包
- 点击右键解压,得到一个安装文件
- 进入vm解压得目录,该文件在/root/桌面/vmware-tools-distrib/下
- 安装./vmware-install.pl
- 全部使用默认设置即可
- 需要reboot重新启动即可生效
文件系统目录结构
基本介绍:
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层的是根目录“/”,然后在此目录下在创建其他的目录。
深刻理解linux树状文件目录是非常重要的。在linux世界中,一切皆为文件。
总结一下:
- linux的目录中有且只要一个根目录/
- linux的目录存放的内容是规划好的,不用乱放文件
- linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件。
- linux的各个文件目录存放什么内容,必须要了解掌握一下
- 学习后脑海中应该有一颗linux目录树
linux实操篇
远程登陆
xshell介绍
特别说明
如果希望安装好xshell5就可以远程访问linux系统的话,需要有一个前提,就是linux启用了sshd服务,该服务会监听22好端口。(系统中端口越多越不安全)
安装xshell
远程上传下载(暂无学习)
vi和vim编辑器
vi和vim编辑器介绍
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
-
在文件中查找某个单词
-
设置文件的行号,取消文件的行号
-
编辑 /ect/profile文件,使用快捷键到底文档的最末行{G}和最首行
-
在一个文件中输入“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有效
运行级别这个概念,后面介绍。
用户管理
图示理解
说明:
linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后就以这个账号的身份进入系统。
linux的用户需要至少要属于一个组
添加用户
useradd [选项] 用户名 添加用户名
passwd 用户名 为用户名添加密码
su 用户名 切换用户
cd 要切换的目录 切换到指定的目目录
细节说明:
当创建用户成功后,会自动的创建和用户同名的的目录
也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家的目录
给用户指定或者修改密码
基本语法
passwd 用户名
删除用户
userdel 用户名
应用案例
删除用户yang,但是 要保留家目录
userdel yang
删除用户 yang1以及用户主目录
思考题:
在删除用户时,我们一般不会把家目录删除掉
如何查询用户信息
基本语法
id 用户名
应用实例
查询root用户信息
id root
切换用户
su 要切换的用户
例如 su root
如果从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
当需要返回原来用户时,使用exit指令
查看当前用户/登陆用户
两个指令
who am i
whoami
用户组
用户组介绍
类似于角色,系统可以对有共性的多个用户进行统一的管理。
增加用户组
groupadd 组名
演示:
删除一个组
groupdel组名
案例演示
指令(基本语法)
useradd -g 用户组 用户名
步骤:
第一步创建一个组cat
第二步创建一个用户并指定组
第三步查询用户信息
修改用户组
基本语法
usermod -g 用户组 用户名
演示案例:
创建一个dog组,让cat用户修改到dog组中
查询所有的用户的信息
cat /ect/passwd;
查询所有的组信息
cat/etc/group
linux实用篇
linux运行级别
运行级别说明
- 关机
- 单用户【找回丢失密码】
- 多用户状态有网络服务
- 系统未使用保留用户
- 图形界面
- 系统重启
常用的运行级别是3和5,要修改默认的运行级别可改文件
/etc/inittab的id:5initdefault:这一行中的数字
命令:init[0123456]
切换到指定的运行级别
案例1:通过init来切换不同的运行级别,比如5>3,然后关机
init 3
init 5
init 0
运行级别的面试题
如何找回root密码,如果我们不小心,忘记了root密码,怎么找回
思路:
进入到单用户模式,然后修改模式,因为进入单用户模式,root不需要密码就可以登陆
演示:
然后就root身份进入单用户模式 然后就可以修改密码
帮助指令学习
介绍:
当我们对某个指令不熟悉时,我们可以使用linux提供帮助指令来了解这个指令的使用方法。
man指令 :获得帮助信息
基本语法:
man[命令或配置文件](功能描述:获得帮助信息)
应用案例:
案例:查看ls命令的帮助信息
help指令
功能描述:
获得shell内置命令的帮助信息
案例:
查看cd的使用
help cd
文件目录指令
pwd指令
基本语法:
pwd(功能描述:显示当前工作目录的绝对路径)
应用实例
案例:显示当前工作目录的绝对路径
ls指令
基本语法
ls(选项)【目录或是文件】
常用选项:
- -a:显示当前目录所有的文件,包括隐藏文件
- -l:以列表的方法显示信息
应用案例:
查看当前目录下的所有内容信息
cd指令
基本语法:
cd [参数] 【功能描述:切换到指定目录】
常用参数:
绝对路径和相对路径
cd ~或者cd :回到自己的家目录
cd .. 回到当前目录的上一级目录
应用实例:
案例1:使用绝对路径切换到root目录
案例2:使用相对路径到/root目录
案例3:表示回到当前目录的上一级目录
案例4:回到家目录
思考题:
当前工作目录时/root.我们希望进入到/home下
绝对路径:/home即从根目录开始定位
相对路径: ../home,从当前工作目录开始定位到需要的目录去
mkdir指令
mkdir指令用于创建目录
基本语法
mkdir [选项] 要创建的目录
常用选项
-p:创建多级目录
应用实例:
案例1:
创建一个目录/home/dog
案例2:
创建多级目录/home/animal/tiger
rmdir
介绍:
rmdir指令删除空目录
基本语法:
rmdir [选项] 要删除的空目录
应用实例
案例1:删除一个目录/home/dog
案例2:删除一个目录/animal/tiger
使用细节
mdir删除的是空目录,如果目录下有内容时无法删除
提示:如果需要删除非空白目录,需要使用 rm -rf 要删除目录
touch指令
touch指令创建空文件
基本语法:
touch 文件名称
应用实例
案例1:创建一个空问价 hellow.txt
一次性创建多个文件
cp指令(重要)
cp指令拷贝文件到指定目录
基本语法
cp[选项] source dest
常用选项
-r:递归复制整个文件夹
应用实例
案例1:将/home/aaa.txt拷贝到/home/bbb目录下
案例2:递归复制整个文件夹,举例
使用细节
强制覆盖不提示的方法:\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
案例2:将/home/pig.txt文件移动到/root目录下
cat
cat查看文件内容
基本语法
cat [选项] 要查看的文件
常用选项
-n:显示行号
应用实例
案例1: /etc/profile 文件内容,并显示行号
案例2: /etc/profile 文件内容,不显示行号
使用细节
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 |more
cat /etc/profile |more
分页显示 按回车键显示下一行
more指令
more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件内容。
more指令中内置了若干快捷键
基本语法
more要查看的文件
操作说明
应用实例
案例:采用more查看文件 /etc/profile
more /etc/profile
less指令
less 要查看的文件(大型文件推荐使用)
>指令和>>指令
{>输入重定向和>>追加}
ls -l >文件(注意如果文件不存在则载当前目录下床架一个文件 ,如果存在则直接覆盖问价内容)
ls -al >>文件
cat 文件 >文件
echo "内容" >文件 将内容追加到文件的内容
echo "内容" >>文件 将内容追加到文件后面
应用实例:
案例1:将/home目录下的问价列表写入到/home/info.txt中
案例2:j将当前日历信息追加到/home/mysql文件中【提示cal】
cal日历信息
echo指令
echo输出内容到控制台
基本语法
echo【选项】【输入内容】
应用实例
案例:使用echo指令输出环境变量,输出当前的环境路径
案例:使用echo指令输出hellow,wold!
head指令
head用于显示文件开头部分内容,默认情况下head指令显示文件前10行内容
基本语法
head文件(功能描述:查看头文件10行内容)
head -n5 文件 (功能描述:查看头文件5行内容,5可以是任意行数)
应用实例:
案例:查看etc/profile的前5行内容
tail指令
tail用于输出文件中尾部内容,默认情况下tail指令显示文件的后10行内容
基本语法
tail 文件 (功能描述:查看问价后10行内容)
tail -n5 文件 (功能描述:查看问价后5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新,工作经常使用)
应用实例
案例:查看/etc/profile最后5行的内容
案例:实时监控mydata.txt,看看到文件有变化时,实时日期追加
tail -f mydata.txt
IN指令
软链接也叫符号连接,类似于windows里的快捷方式,主要存放了连接其他文件的路径
基本语法
in -s[原文件或目录] [软连接名] (功能描述:给原文件创建一个软连接)
细节说明
当我们使用Pwd指令查看目录时,仍然看的是软连接所在目录
hestory指令
查看已经执行过历史命令,也可以执行历史指令
基本语法
history(功能描述:查看已经执行过历史命令)
应用实例
案例:显示所有的历史命令
案例:显示最近使用过的10个指令
案例:执行历史编号为382的指令
时间日期类相关指令
date指令-显示当前日期
基本语法
date (功能描述:显示当前时间)
date +%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)
date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)
应用案例
案例:显示当前时间信息
案例:显示当前时间年月日
案例:显示当前时间年月日时分秒
设置时间日期
基本语法:
date -s 字符串时间
应用实例
案例:设置系统当前时间,比如设置成 2020-3-20 12:00:00
cal指令
查看日历指令
基本语法:
cal [选项] (功能描述 :不加选项,显示本月日历)
应用实例
案例:显示当前日历
案例:显示2020年日历
搜索查找类
find指令
find指令将从指定目录向下递归地遍历各个子目录,将满足条件的文件或者目录显示在终端
基本语法
find [搜索范围] [选项]
选项说明
应用实例:
案例1:按文件名,根据名称查找/home目录下的hellow.txt文件
案例2:按拥有者:查找/opt目录下,用户名称为nobdy的文件
案例3:查找整个linux系统下大于20m的文件(+n 大于 -n小于 n等于)
locate指令
grep指令和管道符号|
压缩和解压缩指令
gzip和gunzip
gzip用于压缩文件,gunzip用于解压缩文件
基本语法
gzip文件 (功能描述:压缩文件,只能将文件压缩为*.gz)
gunzip文件.gz (功能描述:解压文件命令)
应用实例
案例:gzip压缩,将/home下的hellow.txt文件进行压缩
案例:gunzip压缩,将/home下的hellow.txt.gz文件进行解压缩
细节说明:
当我们使用gzip对文件经行压缩后,不会保留原来的文件
zip和unzip指令
zip用于压缩文件,unzip用于解压缩的,在这个项目打包发布中使用很有用的
基本语法:
zip [选项] xxx.zip将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] xxx.zip (功能描述:解压缩文件)
zip常用的选项
-r:递归压缩,即压缩目录
unzip常用选项
-d<目录> :指定解压文件的存放目录
应用实例:
案例1:将/home下的所有文件进行压缩成mypackge.zip
案例2:将mypackge.zip解压到/opt/tem目录下
tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz文件。
基本语法
tar [选项] xxx.tar.gz打包内容(功能描述:打包目录,压缩后的文件格式.tar.gz )
选项说明
应用实例
案例1:压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
案例2:将/home的文件夹压缩成myhome.tar.gz
压缩 tar zcvf
案例3:将a.tar.gz解压缩到当前目录
解压 tar -zxvf
案例4:将home.tar.gz解压到/home/cp/目录下
细节注意:
指定解压到的目录一定要存在,不存在的话会报错(解压不成功)
组管理
在linux中的每一个用户必须属于一个组,不能独立于组外。在linux中每一个文件所有者、所在组、其他组的概念。
所有者
所在组
其它组
改变用户所在组
目录/文件所有者
一般文件的创建者,谁创建了文件,就自然成为该文件的所有者。
查看文件的所有者
指令:ls -ahl
应用实例:创建一个组test,在创建一个用户tt,然后使用tt来创建一个文件。
做完上述操作后删除组和用户
修改文件的所有者
指令:chown用户名 文件名
应用案例:
要求:使用root创建一个文件apple.txt,然后将其所有者修改成tom
组的创建
基本指令:
groupadd组名
应用实例:
创建一个组,test
创建一个用户fox,放到test组中
文件/目录所在组
查看文件/目录所在组
基本指令:
ls -ahl
修改文件所在组
基本指令:
chgrp 组名 文件名
应用实例:
使用root用户创建文件orange.txt,看看当前这个文件属于那个组,修改文件到police组中
其他组
除了文件的所有者所在组的用户外,系统的其它用户都是文件的其他组
改变用户的所在组
基本指令
usermod -g 组名 用户名
删除上述创建组和用户
权限的基本介绍
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位确定其他用户拥有该文件的权限
rwx权限详解
文件及目录的实际案例
修改权限
基本说明:
通过chmod指令,可以修改文件或者目录的权限
修改权限的第一种方式:+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u,g,o的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
案例演示:
给abc文件的所有者读写执行 权限,给所在组读执行权限,给其它组读执行权限
给abc文件的所有者除去执行权限,增加组写的权限
给abc文件的所有组用户添加读的权限
第二种方式:通过数字变更权限