- Linux 的目录结构
Linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
在Linux世界里,一切皆文件- /bin
- 这个目录存放着最经常使用的命令 - /sbin
- 存放的是系统管理员使用的系统管理程序 - /home
- 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 - /root
- 该目录为系统管理员,也称作超级权限者的用户主目录 - /lib
- 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库 - /lost+found
- 这个目录下一般情况是空的,当系统非法关机后,这里就存放了一些文件 - /etx
- 所有的系统管理所需要的配置文件和子目录 - /usr
- 用户的很多应用程序和文件都放在这个目录下 - /boot
- 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 - /proc
- 是一个虚拟的目录,是系统内存的映射,访问这个目录来获取系统信息 - /srv
- 存放一些服务启动之后需要提取的数据 - /sys
- - /tmp
- 用来存放一些临时文件 - /dev
- 类似于windows的设备管理器,把所有的硬件用文件的形式管理 - /media
- linux系统会自动识别一些设备,例如光盘等,当识别后,linux会把识别的设备挂载到这个目录下 - /mnt
- 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看到里面的内容了 - /opt
- 这是给主机额外安装软件所摆放的目录,默认为空 - /usr/local
- 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序 - /var
- 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件 - /selinux
- 是一种安全子系统,它能控制程序只能访问特定文件
- /bin
- vi和vim的基本介绍
- 所有的Linux系统个都会内建vi文本编辑器
- Vim具有程序编辑的能力,可以看做是vi的增强版本- 常用的三种模式
- 正常模式
- 以vim打开一个文档就直接进入一般模式了 - 插入模式
- 按下i,I,o,O,a,A,r,R等人以一个字母之后才会进入编辑模式,一般来说i即可 - 命令行模式
- 在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成
- 正常模式
-
快捷键的使用案例
-
拷贝当前行 【yy】,并粘贴 【p】
-
删除当前行【dd】,删除当前行向下的5行【5dd】
-
在文件中查找某个单词【:/关键词,回车查找,输入n就是查找下一个】
-
设置文件的行号【:set nu】,取消文件的行号【:set nonu】
-
使用快捷键到文档的最末行【G】和最首行【gg】
-
在一个文件中输入“hello”,然后又撤销这个动作【u】
-
将光标移动到20行【先输入20,然后shift+g】
---- 注意!以上的操作都是在正常模式执行
-
- 常用的三种模式
-
开机、重启和用户登陆注销
shutdown
shutdown -h now:立即关机
shutdown -r now:重新启动计算机
halt:关机
reboot:重新启动
syn:把内存的数据同步到磁盘
- 当我们关机或者重启的时候,都应该先执行一下sync命令 -
用户管理
-
基本介绍
- 每个用户至少要属于一个组
- 用户家目录的概念:/home 目录下有各个创建的用户对应的家目录,当用户登陆的时候,会自动的进入到自己的家目录
- Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统 -
添加用户
-
基本语法
useradd [选项] 用户名
-
-
用户组
-
介绍
- 类似于角色,系统可以对有共性的多个用户进行统一的管理 -
用户和组的相关文件
-
/etc/passwd
- 保存用户名
- 用户的配置文件,记录用户的各种信息
- 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登陆shell -
/etc/shadow
- 保存用户密码
- 口令的配置文件
- 每行的含义:登陆名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 -
/etc/group
- 组的配置文件,记录linux包含的组的信息
- 每行含义:组号:口令:组标识号:组内用户列表
-
-
-
-
实用指令
-
指定运行级别
-
帮助指令
- 当我们对某个指令不熟悉的时候可以使用Linux提供的帮助指令来了解这个指令的使用方法-
man 获得帮助信息
- man [命令或配置文件](功能描述:获得帮助信息) -
help
- help 命令(功能描述:获得shell内置命令的帮助信息)
-
-
文件目录类
-
pwd指令
- pwd (显示当前工作目录的绝对路径) -
ls指令
- ls [选项] [目录或是文件]
- a:显示当前目录所有的文件和目录,包括隐藏的
- l:以列表的形式显示文件 -
cd指令
- cd [参数]
常用的参数:
cd ~:回到自己的家目录
cd..:回到当前目录的上一级 -
mkdir指令
- mkdir [选项] 要创建的目录
常用的参数:
- p:创建多级目录 -
rmdir(用来删除目录)
- 不能删除非空的目录
- rmdir [选项] 要删除的空目录 -
touch
- 创建空文件
- touch 文件名称 -
cp指令(拷贝文件到指定目录)
- cp [选项] source dest
常用选项:
-r:递归复制整个文件夹 -
rm指令(移除文件或者目录)
- rm [选项] 要删除的文件或者目录
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示 -
mv指令(移动文件与目录或重命名)
基本语法:
- mv oldNameFile newNameFile (功能描述:重命名)
- mv /temp/movefile /targetFolder (功能描述:移动文件) -
cat指令(查看文件内容)
cat查看是以只读的方式,与vim不同
- cat [选项] 要查看的文件
常用的选项:
-n:显示行号 -
more指令
- more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键
- more 要查看的文件 -
less指令
- less指令用来分屏查看文件内容,它的功能与more指令相似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容的时候,并不是一次奖整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率 -
>指令和>>指令
>输出重定向和>>追加
输出重定向:会将原来的文件的内容覆盖
追加:不会将原来的文件内容覆盖,会将新的内容添加到文件末尾
基本语法:-
ls -l >文件 (功能描述:列表的内容写入文件中(覆盖写))
-
ls -al >>文件 (功能描述:列表的内容追加到文件的末尾)
-
cat 文件1>文件2 (功能描述:将文件1的内容覆盖到文件2)
-
echo "内容">>文件
-
-
echo指令(输出内容到控制台)
基本语法:
echo [选项] [输出内容] -
head指令(用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容)
基本语法:
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容) -
tail指令(用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容)
基本语法:-
tail 文件 (查看文件后10行内容)
-
tail -n 5 文件(查看文件后5行内容)
-
tail -f 文件 (实时追踪该文档的所有更新)
-
-
ln指令
软链接也叫符号链接,类似于windows里面的快捷键,主要存放了链接其他文件的路径
基本语法:
ln -s [原文件或目录] [软链接名] (给源文件创建了一个软链接)
- 当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录 -
history命令(查看已经执行过的历史命令,也可以指令行历史指令)
- !+数字 (执行第几条命令)
-
-
时间日期类
-
date指令
基本语法:-
date (显示当前时间)
-
date +%Y (显示当前年份)
-
date +%m (显示当前月份)
-
date +%d (显示当前是哪一天)
-
date "+%Y-%m-%d %H:%M:%S" (显示年月日分秒)
-
-
date指令-设置日期
基本语法:
date -s 字符串时间 -
cal指令
查看日历
-
-
搜索查询类指令
-
find指令
- 将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
基本语法:
find [搜索范围] [选项]
选项说明:
-name<查询方式> 功能:按照指定的文件名查找模式查找文件
-user<用户名> 功能:查找属于指定用户名的所有文件
-size<文件大小> 功能:按照指定的文件大小查找文件 -
locate指令
- 可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度极快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
基本语法:
locate 搜索文件
特别说明:由于locate指令集于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库 -
grep指令和管道符号|
- grep过滤查询,管道符号|表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法:
grep [选项] 查找内容 源文件
常用选项:
-n 显示匹配行及行号
-i 忽略字母大小写
-
-
压缩和解压类指令
-
gzip/gunzip指令
- gzip用于压缩指令,gunzip用于解压的
基本语法:
gzip 文件
gunzip 文件.gz
细节说明:当我们使用gzip对文件进行压缩后,不会保留原来的文件。同样的是解压之后,不会保留原来的压缩包 -
zip/unzip
- zip用于压缩文件,unzip用于解压的
基本语法:
zip [选项]XXX.zip 将要压缩的内容
常用选项:-r:递归压缩,即压缩目录
unzip [选项]XXX.zip
常用选项:-d<目录>:指定解压后文件的存放目录
细节说明:当我们使用zip指令对文件进行压缩后,原来的文件会保留。同样,解压的时候,原来的文件也会保留 -
tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz的文件
基本语法:
tar 【选项】 XXX.tar.gz 打包的内容 (打包目录,压缩后的文件格式.tar.gz)
选项说明:
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:接包.tar文件
-
-
-
组管理和权限管理
-
组的基本介绍
- 在Linux中的每个用户必须属于一个组,不能独立于组外,在linux中每个文件有所有者、所在组、其他组的概念
- 添加组语法: sudo addgroup 组名-
所有者
- 一般为文件的创建者
- 查看文件的所有者指令:ls -ahl
- 修改文件所有者指令:chown 用户名 文件名 -
所在组
- 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组
- 查看文件/目录所在组指令:ls -ahl
- 修改文件所在的组:chgrp 组名 文件名 -
改变用户所在组
- 在添加用户时,可以指定将该用户添加到哪个组去,同样的用root的管理权限可以改变某个用户所在的组-
改变用户所在组
- usermod -g 组名 用户名
- usermod -d 目录名 用户名 (改变该用户登录的初始目录)
-
-
-
权限的基本介绍
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9位说明:-
第0位确定文件类型(d,-,I,c,b)
-:普通文件
d:目录
l:软链接
c:字符设备 -
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。 ---user
-
第4-6位确定所属组(同用户组的)拥有该文件的权限。 ---Group
-
第7-9位确定其他用户拥有该文件的权限。 ----other
-
-
rwx权限详解
-
作用到文件
-
r代表可读
-
w代表可写:可以修改,但是不代表可以删除该文件,删除该文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
-
x代表可执行:可以被执行
-
-
作用到目录
-
r代表可读:可以读取,ls查看目录内容
-
w代表可写:可以修改,目录内创建+删除+重命名目录
-
x代表可执行:可以进入该目录
-
-
-
修改权限 - chmod
- 可以修改文件或者目录权限-
+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)-
chmod u=rwx,g=rx,o=x 文件目录名
-
chmod o+w 文件目录名
-
chmod a-x 文件目录名
-
-
通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件名
-
-
修改文件所有者 - chown
基本介绍
chown neowner file 改变文件的所有者
chown newowner:newsgroup file 改变用户的所有者和所有组
-R:如果是目录,则使其下所有自文件或目录递归生效 -
修改文件所在组 - chgrp
chgrp newgroup file 改变文件的所有组
-
-
定时任务调度
-
crontab 任务调度
任务调度:是指系统在某个时间指定的特定的命令或程序
分类:1.系统工作:有写重要的工作必须周而复始地执行. 2.个别用户工作:个别用户可能希望执行某些程序
基本语法:crontab 【选项】
常用选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
-
-
linux磁盘分区、挂载
-
分区基础知识
-
分区的方式
-
mbr分区:最多支持4个主分区;系统智能安装在主分区;扩展分区要占一个主分区;MBR最大只支持2TB,但拥有最好的兼容性
-
gtp分区:支持无限多个分区;最大支持18EB的大容量;windows7 64位以后支持gtp
-
-
Linux分区原理介绍
-
Linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个跟目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分
-
linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得
-
-
linux硬盘说明
-
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
-
-
-
磁盘情况查询
-
查询系统整体磁盘使用情况
基本语法:df -h -
查询指定目录的磁盘占用情况
基本语法:du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s:指定目录占用大小汇总
-h:带计量单位
-a:含文件
--max-depth=1:子目录深度
-c:列出明细的同事,增加汇总值
-
-
-
网络配置
目前我们的网络配置采用的是NAT的模式 -
进程管理
-
进程的基本介绍
-
在linux中,每个执行的程序(代码)都称为一个进程,每一个进程都分配一个id号
-
每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程
-
每个进程都可鞥以两种方式存在。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式进行
-
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
-
-
显示系统执行的进程
- ps指令是用来查看目前系统中,有哪些正在执行,以及他们的执行出状况,可以不加任何参数字段 说明 PID 进程识别号 TTY 终端机号 TIME 此进程所消耗CPU时间 CMD 正在执行的命令或进程名 选项:
- a:显示当前终端的所有信息
- u:以用户的格式显示进程信息
- x:显示后台进程运行的参数 -
终止进程kill和killall
- 若是某个进程执行一半需要停止时,或是已经消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务-
基本语法
kill 【选项】 进程号
killall 进程名称(通过进程名称来终止进程) -
常用选项
-9:表示强迫进程立即停止
-
-
查看进程树pstree
-
语法:pstree 【选项】,可以更加直观的来看进程信息
-
常用选项:
-p:显示进程的PID
-u:显示进程的所属用户
-
-
-
服务管理
服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql,sshd等),因此我们又称为守护进程-
service管理指令:
service 服务名 start | stop | restart | reload | status systemct| -
细节说明
-
关闭或者启用防火墙后,立即生效
-
这种方法只是临时生效,当重启系统后,还是回归以前对服务的设置
-
如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令
-
-
查看服务名(两种方式)
-
使用setup -> 系统服务
-
/etc/init.d/服务名称
-
-
动态监控进程
- top与ps命令很相似,它们都用来显示正在执行的进程,不同之处在于top在执行一段时间可以更新正在运行的进程-
基本语法:top【选项】
-
选项说明
-d 秒数:指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令
-i:使top不显示任何限制或者僵死进程
-p:通过指定监控进程ID来仅仅监控某个进程的状态
-
-
监控网络状态
-
基本语法:netstat【选项】
-
选项说明:
-an:按一定顺序排列输出
-p:显示哪个进程在调用
-
-
-
Shell
-
shell脚本的执行方式
-
脚本格式要求
-
脚本以#!/bin/bash开头
-
脚本需要有可执行权限
-
-
执行方式
-
输入脚本的绝对路径或相对路径
-
sh+脚本(不用赋予执行权限)
-
-
-
Shell变量
-
介绍
-
Shell中的变量分为系统变量和用户自定义变量
-
系统变量:$HOME $PWD $SHELL $USER等
-
显示shell中的所有变量:set
-
-
定义
-
定义变量:变量=值
-
撤销变量:unset变量
-
声明静态变量:readonly变量,注意:不能unset
-
定义的规则
-
变量名称可以由字母、数字和下划线组成,但是不能以数字开头
-
等号两侧不能有空格
-
变量名称一般习惯为大写
-
-
将命令的返回值赋给变量
-
A='ls -la' 反引号,运行里面的命令,并把结果返回给变量A
-
A=$(ls -la) 等价于反引号
-
-
-
设置环境变量
-
基本语法
-
export 变量名=变量值 (将shell变量输出为环境变量)
-
source 配置文件 (让修改后的配置信息立即生效)
-
echo $变量名 (查询环境变量的值)
-
-
-
位置参数变量
-
介绍
当我们执行一个shell脚本时,如果希望获取命令行的参数信息,就可以使用到位置参数变量
比如: ./mysell.sh 100 200;这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息 -
基本语法
-
$n (n为数字,0代表命令本身,1-9代表第一到第九个参数,10以上的参数需要用大括号包含,如${10})
-
$* (这个变量代表命令行中所有的参数,把所有的参数看成一个整体)
-
$@ (也代表所有的参数,但是将每个参数区分对待)
-
$# (代表命令行中所有参数的个数)
-
-
-
-
Linux
最新推荐文章于 2024-10-26 21:59:07 发布