基本介绍
以下笔记是本人基于b站尚硅谷的Linux课程的学习,自己归纳整理的关于Linux方面的笔记,仅供参考。读者若发现错误,可私信我,我会及时改正,且由于时间关系,shell编程以及ssh登录还未学习,后续相关内容会更新到文章中。
笔记内容
- 目录结构
Linux文件系统采用级层式的树状目录结构,在此结构的最上层是根目录“/“,然后在此目录下再创建其他目录
/etc:所有系统管理所需要的配置文件和子目录 my.conf
/usr:用户的应用程序和文件都放在该目录下,类似于windows中的program files目录
/boot:启动linux使用的一些核心文件
/media:linux会自动识别一些设备,如u盘,光驱等,当识别后,linux会把识别的设备挂载到这个目录 下
- 远程登录Xshell
- vi和vim
三种模式:1.正常模式 (以vim打开文档就进入该模式,默认模式,再正常模式下,可以使用快捷键)
2.插入模式/编辑模式(该模式下,程序员可以输入内容,按i可进入该模式)
3.命令行模式(提供相关指令)
三种模式的转化:
#vim ### 进入正常模式/一般模式。按下i进入插入模式/编辑模式,按下esc返回正常模式
按下:进入命令行模式,按下esc返回正常模式
命令行模式下:1. :wq:写入并保存
2. :q 未作操作退出
3. :q! 做了修改但不想保存退出
快捷键使用:yy 拷贝当前行 5yy拷贝当前行向下的5行 粘贴(p)
删除当前行 dd 删除当前行向下的5行 5dd
查询关键词 /关键词 输入n就是查找下一个
设置文件的行号 :set nu 取消行号 :set nonu
以上都是在命令行模式下执行
正常模式下执行:
到文档末行 G
到文档首行 gg
插入模式下输入东西,想撤销该动作:回到正常模式,然后输入u
转到指定行:1.命令行模式下输入:setnu
2.正常模式下输入指定行(20)
3.输入shift
4 开机 重启 和用户登录注销
基本介绍
shutdown
shutdown -h now 立即关机
shutdown -h 1 一分钟后关机
shutdown -r now 立即重启
halt
直接使用,效果等价于关机
reboot
重启系统
sync
把内存的数据同步到磁盘上 相当于保存操作
当我们关机或者重启时,都应该先执行一下sync指令,防止数据的丢失
用户登录和注销
用户的注销 logout
登录尽量少用root账号登录,可以用普通账号登录后用su转变成管理员状态
5 用户管理
用户 ——>组——>家目录
添加用户
基本语法:useradd[选项] 用户名
passwd 设置密码
删除用户
6.Linux指令
Linux运行级别
通过init[0123456]来切换级别 init 3 切换到级别3
可利用该功能找回root密码
常用指令
-
man[命令或配置文件] 功能:获得帮助信息
-
help 命令 功能:查看shell内置命令的帮助信息
-
pwd(显示当前工作目录的绝对路径)
-
ls[选项][目录或是文件]
常用选项 -a 显示当前目录的所有文件和目录,包括隐藏
-l 以列表的方式显示信息
eg:ls -a -
cd[参数] (切换目录)
常用参数:1.绝对路径 从根目录开始写到指定目录 eg:/home/…
2.相对路径 …/home
3.cd~/cd 回到家目录
4.cd… 回到上一级目录 -
mkdir[选项] 要创建的目录 (创建目录 make directory)
常用选项 -p 创建多级目录(创建多个不存在的目录)
eg:mkdir /home/dog -
rmdir[选项] 要删除的空目录 (删除空目录 remove directory)
注意:rmdir只能删除空目录,如果目录下有内容时无法删除,需要使用rm -rf -
touch 文件名称 (创建空文件)
支持一次性创建多个空文件 touch ok1.txt ok2.txt ok3.txt … -
cp[选项] source dest (拷贝指定文件到指定目录)
常用选项 -r 递归复制整个文件
cp -r 目录一绝对路径 目录二绝对路径
当目标文件夹下有与复制文件相同的文件时,会提示是否覆盖
可采用\cp来忽略提示 -
rm[选项] 要删除的文件或目录 (移除文件或目录 remove)
常用选项:-r 递归删除整个文件夹
-f 强制删除不提示
普通删除,会有提示
rm -r
rm -rf
- mv oldNameFile newNameFile (重命名)
mv /temp/movefile /targetFolder (移动文件)
-
cat[选项] 要查看的文件 (查看文件内容)
常用选项 -n 显示行号
注意:cat指令只能浏览文件,但不能修改文件,为了浏览方便,一般会带上 | more
不加 | more的话,是一次性显示 -
more 查看的文件 (以全屏幕的方式按页显示文本文件的内容)
内置操作方法
空格(space):代表向下翻页
enter:代表向下翻一行
q:代表立刻离开more,不再显示该文件内容
ctrl+F:向下翻一页
ctrl+B:返回上一页
=:输出当前行的行号
:f:输出文件名和当前行的行号 -
less 要查看的文件(功能与more类似,但比more指令更加强大。less指令在显示文件内容 时,不是一次性将文件加载完然后显示,而是根据显示需要加载内容,对 于显示大型文件有较高的效率)
内置操作方法:
空格(space):向下翻动一页
方向下键(pagedown):向下翻动一页
方向上键(pageup):向上翻动一页
/字串:向下搜寻【字串】功能:n 向下查找 N:向上查找
?字串:向上搜寻字串的功能:n:向上查找 N:向下查找
q:离开less -
写入并且将原文件覆盖(输出重定向) >>在原文件的基础上在末尾添加(追加)
语法:ls -l>文件 把ls -l显示的内容写入到文件中(覆盖写)如果文件存在则覆盖,如果不存在则创建
echo “内容”>>文件 -
echo[选项] 输出内容
-
head 文件(默认情况下head指令显示文件的前10行内容)
head -n 5文件(查看文件前5行内容) -
tail 文件 (默认情况下显示文件后10行的内容)
tail -n 5文件 (查看文件后5行的内容)
tail -f 文件 (实时最总该文档的所有更新)
19. ln -s[原文件或目录][软链接名](给原文件创建一个软链接)
删除使用rm -rf
-
history(查看已经执行过历史命令,也可以执行历史命令)
history 10 显示最近使用的10个命令
!数字 执行历史编号为多少的指令 -
date (显示当前时间)
date+%Y (显示当前年份)
date+%m (显示当前月份)
date+%d (显示当前是哪一天)
date"+%Y-%m-%d %H:%M:%S" (显示年月日时分秒)
date -s 字符串时间 (设置日期)
22. cal[选项] (不加选项,显示本月日历)
cal 2022 (显示2022年一整年的日历)
- find[搜索范围][选项] (从指定目录向下递归的遍历其子目录,将满足条件的文件或目录显示在终端)
常用选项:
-name<查询方式> 按照指定文件名查找
查询home目录下所有.txt文件
-user<用户名> 查找属于指定用户名的所有文件
-size<文件大小> 按照指定的文件大小查找文件 +n 大于n的文件-n 小于n的 文件 =n 等于n的文件 (k需要小写)
-
locate 搜索文件 (快速定位文件路径)
注意:由于locate指令基于数据库进行查询,所以第一次运行前,必须是哟个 updatedb指令创建locate数据库 -
grep[选项] 查找内容 源文件 (过滤查找 管道符”|“表示将前一个命令的处理结果输出 传递给后面的命令处理)
常用选项:
-n 显示匹配行及行号
-i 忽略字母大小写
- gzip 文件 (压缩文件,只能将文件压缩为*.gz文件,且原来文件不保存)
gunzip 文件.gz (解压缩文件命令,不会对原文件进行保留)
- zip[选项] XXX.zip 将要压缩的内容 (压缩文件和目录的命令)
常用选项:
-r:递归压缩,即压缩目录
unzip[选项]XXX.zip (解压缩文件)
常用选项:
-d<目录>:指定解压后文件的存放目录
- tar[选项] XXX.tar.gz 打包的内容 (打包目录,压缩后的文件格式.tar.gz)
常用选项:
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩 (一般都使用-zcvf)
对特定文件进行打包:
对目录下所有文件进行打包:
-x:解包.tar文件 (一般都使用 -zxvf)
解压到指定目录:(-C 指定目录路径 目录必须事先创建好)
7.组管理和权限管理
组的基本介绍:Linux中的每个用户都属于一个组,不能独立于组外,在Linux中每个文件有所有者、所在组、其他组的概念。
一般为文件的创建者。
ls -ahl (查看文件的所有者 ll / ls -l)
chown 用户名 文件名 (修改文件所有者,但不改变所在组)
groupadd 组名 (创建一个组)
chgrp 组名 文件名 (修改文件所在组)
usermod -g 组名 用户名 (改变用户所在组)
usermod -d 目录名 用户名 (改变该用户登录的初始目录)
权限管理:
ls -l :0-9位说明
第0位:确定文件类型(d,-,l,c,b)
1-3位:确定文件的所有者拥有该文件的权限
4-6位:确定所属组(同用户组)拥有该文件的权限
7-9位:确定其他用户拥有该文件的权限
rwx权限解释:
rwx作用到文件:
[r]:可读
[w]:可以修改,但代表可以删除文件,删除文件的前提是对该文件所在的目录有写权限,才能删除该文件
[x]:可执行
rwx作用到目录:
[r]:可读,可用ls查看目录内容
[w]:可写,可以修改,在目录内创建+删除+重命名目录
[x]:可执行,可进入该目录
通过chmod,来修改文件或者目录的权限
1.+、-、=变更权限 (u:所有者 g:所有组 o:其他人 a:所有人)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
-:减掉权限
+:增加权限
2.通过数字变更权限
r:4 w:2 x:1 rwx:7
chmod 751 等价于 chmod u=rwx,g=rx,o=x
- 修改文件所有者
chown newowner file
chown newowner:newgroup file
-R 如果是目录,则使其下所有子文件或目录递归生效
- 通过chgrp改变文件的所有组
chgrp nwegroup file
同chown,将目录下所有文件改变组,使用-R
8.任务调度
1.定时调度
crontab[选项] (定时任务的设置)
常用选项:
-e 编辑crontab定时任务
-I 查询crontab任务
-r 删除当前用户所有的crontab任务
service crond restart 重启任务调度
基本步骤:
1.设置任务调度文件:/etc/crontab
2.设置个人任务调度:执行crontab -e命令
3.输入任务到调度文件
eg:/ 1 1 * * * ls -l /etc/>/tmp/to.txt
5个占位符:
第一个:一小时当中的第几分钟 [0,59]
第二个*:一天当中的第几小时 [0,23]
第三个*:一个月当中的第几天 [0,30]
第四个*:一年当中的第几个月 [1,12]
第五个*:一周当中的星期几 0,7
特殊字符的说明:
- *:代表任意时间
- ,:代表不连续时间,比如“0 8,12,16”代表在每天的8点0分,12点0分,16点0分都执行一次命令
- -:代表连续的时间范围,比如“0 5 * * 1-6”代表在周一到周六的凌晨五点0分执行命令
- /n:代表每隔多久执行一次,比如“/10 1 1 1 1”代表每隔10分钟执行一次 (1=)
案例:
可执行权限的添加: chmod 744 文件名
9.磁盘分区 挂载
1.分区的方式
1.mbr分区:
最多支持四个主分区
系统只能安装在主分区
扩展分区要占一个主分区
MBR最大只支持2TB,但拥有最好的兼容性
2.gtp分区
支持无限多个主分区(但操作系统可能限制,如windows下最多128个分区)
最大支持18EB容量(EB=1024PB PB=1024TB)
win7 64 以后支持gtp
linux的分区:
硬盘说明:
查看分区情况 lsblk -f(谐音老师不离开)
相关说明
查看各分区大小
查询系统整体磁盘使用情况
df -h
查询指定目录的磁盘占用情况
du -h /目录
默认为当前目录
-s:指定目录占用大小汇总
-h:带计量单位
-a:含文件
–max-depth=1 子目录深度
-c:列出明细的同时,增加汇总值
常规用法
统计目录下有多少文件(如要包括子文件下,采用 ls -lR)
统计目录下有多少目录
10.网络配置
IP地址:
1.自动获取
2.指定固定IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
11.进程管理
基本介绍:
在Linux中,每个执行的程序(代码)都称为一个进程,每一个进程都分配一个ID号。
每一个进程都会对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器
每个进程都可能以两种方式存在,前台于后台,所谓前台进程就是用户目前的屏幕上可以进行操作,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
一般系统的服务器都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
查看目前系统中,有哪些正在执行,以及他们执行的状况
ps (可以不加任何参数)
显示字段含义:
PID:进程识别号
TTY:终端机号
TIME:此进程所消CPU时间
CMD:正在执行的命令或进程名
ps -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
ps -aux
ps详解
终止进程
kill[选项] 进程号 (通过进程号杀死进程)
killall 进程名称 (通过进程名称杀死进程,也支持通配符)
常用选项:
-9:表示强迫进程立即停止
查看进程树
pstree[选项]
常用选项:
-p:显示进程的PID
-u:显示进程的所属用户
服务管理:
介绍:
服务本质就是进程,但是运行在后台的,通常会监听某个端口,等待其他程序的请求,比如(mysql,sshd),因此又被称为守护进程,是Linux中非常重要的知识点
service管理指令:
service 服务名 strat | stop | restart | reload | status(centOS7.0后不再使用service,而是使用systemct)
systemct
(判断某个端口是否打开,可使用telnet指令)
查看服务名
方法一:setup ->系统服务
方法二:/etc/init.d/服务名称
服务的运行级别
vi/etc/inittab (查看或者修改默认级别)
chkconfig (给各个运行级别设置自启动/关闭)
chkconfig --list | grep xxx
chkconfig 服务名 --list
chkconfig --level 服务名 on/off
动态监控进程
top[选项] (于ps命令很相似,都用来显示正在执行的进程,与ps的最大不同之处,在于top 在执行一段时间可以更新正在运行的进程)
u:输入“u”回车,再输入用户名 (查询特定用户)
k:输入“k”回车,然后输入要结束的进程ID号 (终止指定的进程)
常用选项:
-d 秒数:指定top命令每隔几秒更新,默认是3秒在投票命令的交互模式当中可以执行的命令
-i:使top不显示任何闲置或者僵死进程
-p:通过指定监控进程ID来仅仅监控某个进程状态
交互操作:
P:以CPU使用率排名
M:以内存使用率排名
N:以PID排序
q:退出top
监控网络状态
netstat[选项] (查看系统网络情况)
常用选项:
-an:按一定顺序排列输出
-p:显示哪个进程在调用
检测主机连接命令ping
ping 对方ip地址
rpm包:
一种用于互联网下载包的打包及安装工具,类似于windows的setup.exe
rpm包的简单查询指令:
rpm -qa | grep xx (查询已安装的rpm列表)
rpm包名基本格式:
firfox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox
版本号:45.0.1-1
使用操作系统:el6.centos。x86_64(如果使i686、i386表示32位系统,noarch表示通用)
rpm包其他查询指令
卸载rpm包:
安装rpm包:
rpm -ivh RPM包全路径名称
参数说明:
i:安装(install)
v:提示(verbose)
h:进度条(hash)
需要到挂载的镜像中去找rpm包
镜像路径:(安装操作系统时创建对象的目录下)
然后选择packages目录
yum:
介绍:
Yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且进行安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
基本指令:
yum list | grep xx软件列表 (查询yum服务器是否有需要安装的软件)
yum install xxx (下载安装)
12.Shell编程
基本介绍:
shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序
单行注释:#
多行注释::<<! !
shell脚本的执行方式:
1.脚本以#!/bin/bash开头
2.脚本需要有可执行权限(可采用绝对路径或者相对路径进行执行)
3.不赋予脚本可执行权限还可通过(sh+脚本)直接执行(方法不推荐)
shell的变量介绍:
1.Linux Shell中的变量分为系统变量和用户自定义变量
系统变量:$HOME &PWD $SHELL
显示当前shell中的所有变量 set
shell变量的定义:
定义变量:变量=值
撤销变量:unset 变量
声明静态变量:readonly 变量 (无法unset)
定义变量的规则:由字母、数字或者下划线组成,但不能以数字开头,等号两侧不能有空格,变量名称一般习惯为大写
将命令的返回值赋给变量:
A=ls -la
反引号,运行里面的命令,并把结果返回变量A(esc键下一个)
A=$(ls -la) 等价于反引号
shell环境变量
export 变量名=变量值 (将shell变量输出为环境变量)
source 配置文件 (让修改后的配置信息立即生效)
echo $变量名 (查询环境变量的值)