引言:学习Linux之后,希望把经验可以分享给大家,本篇博客从分区的片面知识,到工具的使用,再到基础命令了解,适合帮大家先建立起一个大体的框架,然后再进行细化学习,本人学习Linux是由于它的伟大开源,所以想要学习它的管理知识和它的最初内核原码,希望拥有自己的一个简易的操作系统,可以让自己编程技术更上一层楼!
分区:
初学:最开始的学习在进行Linux安装时候可以先使用一下这种分区框架。
开始分区之前我们要先了解分区,首先,系统的开始是需要固件(bios)进行引导的,所以可以划分一个boot分区
boot分区:引导分区1g
swap:交换分区,内存和硬盘之间交换程序数据,在内存满的时候,这时候使用交换方案swap充当临时分区,把内存把不常用数据放进硬盘,常用数据写入内存,它实际上和内存差不多大,但是速度是没有实际内存大的。详情请参考计算机存储器结构。
在我们现在个人计算机配置足够高的情况下可能设置会有些多余,但是在服务器之下想要保障他的正常运行,却是很有必要的。
根分区:/(根分区)以后我们安装的文件基本都在根分区下面,实际上是一个目录树结构。
硬件!文件!
学习操作系统之前要先有一些硬件方面知识,原因是Linux之下的硬件设备都是以文件形式存在的。硬件请参考以下这个笔记。
Linux目录
目录结构
目录树:
linux中是以目录格式存在的,最上层是根目录,下面的子文件夹都是已经规定好的,即规划好的,存放指定类型文件 ,每一个文件夹都有着特定的属性,用户不可以进行随意更改。在linux中,一切皆是文件。
常用文件名称
首先:linux下:一切皆是文件
/bin:存放常用命令
/sbin:存放系统管理员使用的系统惯例程序
/home存放普通用户主目录
/root:系统管理员,超级权限者用户主目录
/lib:类似windows的DLL文件,动态链接文件,几乎所有应用程序都会需要这个共享库
/lost+found:空目录,系统非法关机后会在这里面存放一些文件
/etc:系统管理需要配置文件和子目录
/user:用户安装程序默认放在这里面
/boot:linux启动时核心文件,破坏了,系统会启动不了
/proc:虚拟目录,不能动,系统内存的映射,访问此目录来获取系统信息
/srv:服务启动之后需要提取的数据
/sys:2.6文件系统中新出现一个文件系统?tmp:存放一些临时文件
/dev:类似windows中的设备管理器硬件以文件形式存储,linux会把所有设备映射为一个文件来进行管理
/mnt:临时挂载别的文件系统,为了让用户临时挂载一个文件,挂载和卸载。
/opt:给主机额外安装软件存放的目录,便于对文件进行管理
/user/local:安装好的目标目录,另一个给主机额外安装软件所安装目录,一般是通过编译原码方式安装的程序
/var:存放着不断扩充的东西,将经常修改的各种文件放在这个文件夹下面,包括各种日志文件
/selinux:安全子系统,控制程序访问特定文件,有三种工作模式,可以自行设置
远程登录LINUX
远程登录:
将本地计算机和网络上另一台远程计算机之间取得联系,进行程序交互,本地用户进入的叫远地系统它允许授权用户进入网络中的其它 UNIX 机器并且就像用户在现场操作一样。一旦进入主机,用户可以操作主机允许的任何事情
计算机网络
公网:公网即国际互联网(Internet),把全球不同位置、不同规模的计算机网络互相连在一起形成的计算机网络集合体,公网和内网是两种接入internet接入方式。
接入方式:得到的是internet的保留地址,进行接入公网和internet其他计算机之间可以相互访问。
内网:
即平常所说的局域网,由固定一个地理区间两台以上电脑使用网络设备搭建而成的一个封闭的计算机组,它既可以独立运行,也可以和外网连接
外网:
即广域网,地理跨度十分大的网络集合,由无数个局域网(小型广域网或局域网)组成。广域网IP指的是以公网连接INTERNET上的非保留地址
前提:
知道公网的IP地址,
工具:
Xshell
进行远程登录的工具,对服务器或者远程计算机进行互联,可以进行远程控制或者访问资源
文件的上传和下载:
使用工具:
准备前提
- 知道公网ip地址,知道它的用户名和密码。
- 客户端和服务器之间可以ping通,
已经和另一个主机之间进行了连接,这时就可以进行传输文件
vi和vim基本介绍
linux系统中内置vi文本编辑器
vim:文本编辑器增强版。可以主动以字体颜色辨别语法正确性,方便程序设计
三种模式:
- 正常模式:以vim打开一个档案至今进入一般模式,在这个模式,可以使用方向键移动光标,可以进行删除字符或者是删除整行,还可以进行复制粘贴。
- 插入模式:按下i、I、o、O、a、A、r、R等任何一个字母进入编辑模式,一般情况下按i
- 命令行模式提供相关的·指令,完成读取、存盘、替换、离开Vim,显示行号都是在之下完成的
vi和vim快捷键
- 拷贝当前行:yy 拷贝当前行向下的五行5yy并粘贴(输入p)
- 删除当前行:dd 删除当前向下的五行:5dd
- 文件中查找单词:【命令行下/关键字 回车查找,输入n就是查找下一行】
- 设置文件行号:【命令行下:创建行号set nu和销毁行号set nonu】
- 编辑文件(首尾行):一般模式下 ,快捷键G为最后一行 gg为第一行
- 文件中输入后内容撤销:进入一般模式下输入小写的u可以撤销输入文本
- 文件中将光标定位指定位置:一般模式下:【行号】shift+g
关机重启
- shutdown -h now 立即进行关机
- shutdown -h 1 “hello,1分钟之后关机”
- shutdown -r now 现在立即关机
- halt:关机,作用和上面一样
- reboot:现在立即重启计算机
- sync:将内存中的数据同步到硬盘
注意
- 不管是重启还是关闭系统,首先要运行sync命令,将内存中数据存到硬盘里面
- 目前:shutdown,halt,reboot在关机之前都会执行sync
用户登录和注销
登录
root为系统管理员
使用普通用户进行登录,然后执行“su-用户名”命令切换为系统管理员身份,登录时尽量少使用root进行登录,因为权限大,避免操作失误
注销用户:logout
logout注销指令在图形运行级别无效,运行级别3以下有效
exit在终端中是退出的意思,在终端中使用logout无用
添加用户:
基本语法:useradd 用户名
默认该用户在/home/用户名之下
创建用户成功同时会自动创建用户家目录‘也可以使用 useradd -d 指定目录,给新创建的用户指定家目录
新的用户名指定/修改密码
基本语法:
password 用户名
pwd:显示当前在那个目录之下
删除用户
userdel 用户名
-r:把用户名家目录删除,建议保留
删除用户,保留家目录
删除用户以及用户主目录
查询用户信息指令
基本语法:
id 用户名
当没有该用户时候返回:查无此用户
切换用户:
基本语法:
su - 切换用户名
细节:
- 权限高的用户切换到权限低的用户,不需要输入密码
- 当需要返回到原来用户时,需要使用exit/logout指令
查看当前用户、登录用户
指令:who am i
用户组
系统可以对共有性、权限用户进行统一管理
增加组
指令:groupadd 组名
删除组
指令:groupdel 组名
增加用户到指定组
指令:useradd -g 用户组 用户名
增加一个用户zwj直接将他指定到wudang
直接指定用户未指明组就会创建一个新组,然后把这个用户放在组里面
修改用户的组:
指令:
usermod
创建一个组,然后使用这个指令将指定用户重新放进新的里面,即可实现修改用户的组的作用
shell
cd》shell翻译》内核:cd发送的指令无法被内核识别,增加一个翻译的组件shell,经过shell翻译之后发送给内核
shell:bash,我们经常使用的
组信息保留文件
- /etc/passwd:用户(user)配置文件,记录用户各种信息
- /etc/shadow:口令配置文件,例如设置密码在此处看见的是加密了的字符
- etc/group:组的配置文件,记录linux内组的信息
init
进入指令级别
systemctl get-default显示当前指令
systemctl get-default TARGET.target设置默认的格式
帮助指令
man获取帮助信息
基本语法:man【命令或者配置文件】
进入帮助指令界面,使用“q”可以退出
在linux下,隐藏文件都是以.开头的。并且选项可以组合使用,并且不分顺序,同时还可以指定目录,格式是在指令之后加上文件。
help指令
基本语法:help命令
作用:获得shell内置命令的帮助信息
pwd指令
功能显示当前所在文件位置
ls指令:
作用:list缩写,默认打印当前目录列表
语法:
ls【选项】【目录文件】
常用选项:
- -a:显示当前目录中的所有文件,包含隐藏文件
- -l:以列表的方式显示信息
- -h:以更有利于直观显示方式输出
文件目录类
cd指令
基本语法:
cd【参数】
功能:
切换到指定目录
绝对链接和相对链接:
绝对路径:根目录开始定位
相对路径:当前文件位置开始定位
cd~或者cd:回到自己家目录,如果是root用户返回到root中,如果是在home中的用户直接返回到home种
cd..:回到当前目录上一级目录,/代表为根目录,在根目录之下使用这个指令返回的还是根目录
mkdir指令
作用创建目录
语法:mkdir【选项】要创建目录
常用选项:
-p:创建多级目录
创建一个目录:mkdir /home/dog
创建多级目录 mkdir -p /home/animal/tiger
rmdir
作用:删除目录
基本语法:
rmdir 【选项】要删除的空目录
删除一个目录:
rmdir /home
使用细节:rmdir删除的是空目录,目录下由内容无法删除
删除非空目录使用 rm -rf 要删除的目录(使用的时候要小心谨慎
rm指令
语法:rm【选项】删除的文件或目的
选项:
- -r:递归删除整个文件夹
- -f强制删除不提示
删除文件。rm -f * 目录,删除某个目录或者文件之下所有文件
rm -f 目录/*+删除目录之下所有文件
find可以和rm指令共同使用
删除当前目录下的所有类型的文件
将当前目录下的所有类型文件(隐藏文件除外)删除,命令语句如下:
rm -f *
1
删除指定目录下的所有类型的文件
将 /home/wwwroot/ 目录下的所有文件(隐藏文件除外)删除,命令语句如下:
rm -f /home/wwwroot/*
1
用 find 命令在当前目录下查找普通文件并删除
将当前目录及其子目录下的普通文件删除,命令语句如下:
find . -type f -delete
1
用 find 命令在指定目录下查找普通文件并删除
将 /home/wwwroot/liaowenxiong/test1 目录及其子目录下的普通文件删除,命令语句如下:
find /home/wwwroot/liaowenxiong/test1 -type f -delete
1
用 find 命令的处理动作将当前目录及其子目录下的普通文件删除
命令语句如下:
find . -type f -exec rm -f {} ;
1
用 find 命令的处理动作将指定目录及其子目录下的普通文件删除
用 find 命令的处理动作将 /home/wwwroot/liaowenxiong/test1 目录及其子目录下的普通文件删除,命令语句如下:
find /home/wwwroot/liaowenxiong/test1 -type f -exec rm -f {} ;
1
将 /home/tech/data_log 目录及其子目录下的所有 txt 文件删除,命令语句如下:
find /home/tech/data_log -name '*.txt' -type f -print -exec rm -f {} ;
1
find 命令和 xargs 命令结合,删除大量的文件
将当前目录及其子目录下的所有普通文件删除,命令语句如下:
find . -type f | xargs rm -f
1
上述的命令语句用于参数列表过长,要删除的文件太多的情况。
使用命令脚本删除指定目录下的所有普通文件
将指定目录及其子目录下的所有普通文件删除:
rm -f find 指定目录 -type f
1
“``” 里面是脚本命令语句。
用 for 循环语句删除指定目录下的所有类型的文件
for delete in ls –l 指定目录路径;do rm -f * ;done
touch:创建文件
功能:创建空文件夹
基本语法
touch 文件名称
cp拷贝命令
语法:cp【选项】source dest,从原拷贝到目的
选项:-r:递归复制整个文件夹
强制覆盖不显示:/cp -r /home/bbb /opt
mv移动指令
移动文件和目录或重名m重命名:mv oldnamefile filenewnamefile
移动文件:不同目录之下文件的移动
移动并且重新命名
cat
语法:cat【选项】查看的文件名
常用选项:
-n,显示,显示行号
查看文件内容,cat只能查看不可修改,之前vim可以进行修改,对于安全性高的文件可以使用,为了浏览方便一般会带上管道命令|more把前一个结果交给下一个指令进行处理,每一个enter显示一行,空格显示下一页,全部显示完毕退出
查看文档工具
more
基于vi编辑器的文本过滤器,有若干快捷键
less
分屏查看文件内容,功能与more指令相似,但是比more更加强大,显示大文件需要高效率
echo
输出内容到控制台
语法:
echo【选项】【输出内容】
变量:
使用一个变量名称代替一个路径或一段数据,变量分为全局变量,在linux之下为环境变量,是父进程和子进程1都可使用的,自定义变量假设在父进程创建的就只能在他之下使用,所以有和局部变量相似
格式:变量名=变量内容
echo ${变量名}
head
显示文件开头内容:
head【文件】:默认显示文件前十行
head -n 5:查看文件前五行内容
tail
输出文件尾部内容
tail 文件:默认输出文件尾部十行内容
- tail -n 5:输出文件尾部五行内容
- tail -f:文件实时追踪文件变化,在文件写入内容时,可以同步更新
- tail -f /hom/mydat.txt
重定向指令
>:覆盖原来的内人
>>:追加原来的内容
ctrl+c:退出,使用stty可以查看各种快捷键在linux系统之下具体执行操作
如果追加文件不存在自动创建新文件
cal
日历信息
格式:cal【选项】
cal 2020 打印的是2020年日期
选项
ln
作用:符号链接,相当于快捷方式,使用一个源文件或者目录可以直接链接到指定文件中
ln -s【源文件或目录】【目的】
rm【目录下的连接名称】:删除,目录无法删除
可以实现一个文件被多个文件共享
pwd:显示当前软连接所在位置
history
他是默认在Bash这个shell之内的命令,当前的历史命令放在内存之中,注销之后会将这次历史命令同步到/.history之内,上一次登录的历史指令放在~/.bash_history这个文件之中。
查看执行过的历史命令
基本语法:直接输入history
显示所有历史命令:history
显示最近使用的n个指令:history n(数字不超过1000,超过回被覆盖),具体指令数量和HISTSIZE这个环境变量有关。
!n:执行编号为n的指令(!是英文模式下的输入)
date
基本语法
date
- date +%Y:年份
- date +%m:月份
- date +%d:天数
date "+%Y-%m-%d %H:%M:%S:显示年月日时分秒,可以自其中加入内容。不会报错
选项:-s:设置系统当前时间
搜索查找类
find指令
从指定目录向下递归遍历其各个子目录,将满足条件文件或者目录显示在终端
语法
find【搜索范围】【选项】
有的话会列出来,没有不显示
选项:
- -name:按照指定文件名查找文件
- -user:查找属于指定用户的所有文件
- -size:按照指定文件大小查找文件,文件大小前的符号(+:大于 -:小于 =:等于,单位有K,M,G)
- ls -lh(以人更简便方式显示文件大小)
locate
基本语法:
locate 搜索文件
特别说明
locate是基于数据库进行查询的。所以在第一运行之前要使用updatedb创建locate数据库,还有就是不会遍历整个文件系统,会根据算法创建数据库。
找不到就快速返回
速度快s
which:目录
查看某个指令在哪个目录下
grep:管道符号
在用grep进行查找之后使用管道符号进行处理
管道符号:将之前的结果交给管道符号下一个指令进行处理
书写方式:
cat /home/hello.txt | grep -n "red"
grep -n "red" /home/hello.txt
- 选项:
- -n:显示匹配及行号
- -i:忽略字母大小写
gzip/gunzip
压缩和解压
gzip/gunzip:gzip用于压缩文件,gunzip用于解压的
基本语法
gzip 文件:压缩文件,将文件压缩为.gz文件
gunzip 文件.gz(解压缩文件命令)
zip/unzip
zip:压缩文件或文件夹,unzip指令:解压文件或者文件夹,主要用于文件打包发布,压缩为.zip类型文件
基本语法
zip 【选项】XXX.zip将要压缩的内容(压缩文件和目录)
unzip 【选项】XXX.zip:功能:解压缩文件
zip常用选项:
-r:递归压缩,压缩目录
unzip选项
-d<目录>:指定解压后文件存放目录
tar
打包指令,最后打包的文件是.tar.gz类型文件,既可以打包文件,也可以打包一个文件夹
基本语法:
tar【选项】XXX,tar,gz 打包的内容(打包目录,压缩后文件格式。tar.gz)
选项
-c:产生。tar打包文件
-v:显示详细信息
-f:指定压缩后文件名
-z:打包同时压缩
-x:解包。tar文件
将myhome。tar.gz解压到/opt/tmp2目录下:
mkdir /opt/tmp2 tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
权限 规则
- 第0位确定文件类型:
- l是连接
- d是目录
- c是字符设备:鼠标键盘
- b是块设备,例如硬盘
- 第1-3位确定所有者(改文件所有者)拥有该文件权限 ---user
- 第4-6位确定所属组(同用户组的)拥有该文件权限 ---Group
- 第7-9位确定其他用户拥有该文件的权限
rwx作用到文件
- 【r】:代表可读:可以查看,读取
- 【w】:代表可写:可以修改,但是不代表可以删除该文件,删除一个文件前提条件是对该文件的目录有写权限,才可以删除该文件
- 【x】代表可执行(execute):可以被执行
rwd作用到目录:
- 【r】代表可读:可以读取,ls查看文件目录内容
- 【w】代表可写:可以修改,对目录内创建+删除+重命名目录,能否对文件进行删除和创建
- 【x】代表可执行文件:可以进入该目录,可以使用cd指令进入目录
修改权限:
数字对应权限:r=4,w=2,x=1,所以rwx=4+2+1=7
子目录数+文件数,普通文件是1
文件大小,字节数统计的,如果是文件夹,显示4096字节
Feb 2 09:39:最后修改日期
abc文件名
chmod:可以修改文件或者目录
+、- =变更权限
u:所有者 g:所有组 o:其他人 a:所有人(ugo)
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod a-x 文件、目录名:
通过数字变更权限
r=4 w=2 x=1,可以通过各种组合实现不同功能
chmod u=rwx,g=rx,o=x 文件目录名等价于chmod 751 文件目录名
chown
作用:
修改文件所有者
命令格式:
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和·所在组
-R:如果是目录,旗下所有子文件夹递归生效
chgrp
功能
修改文件/目录所在组
基本介绍:
chgrp newgroup 文件/目录: 改变所有组
-R:递归修改目录下组
如果要对目录内文件进行操作,需要先拥有