Linux
一、Linux系统
(一)什么是Linux系统
Linux 就是一个操作系统,我们的 Linux 也就是系统调用和内核那两层。Linux操作系统基于命令行模式的,主要针对于服务器,而我们的windows操作系统单纯的就是单个用户操作!
(二)常见的linux发行版
- ubuntu
- redhat
- Cenos
- Debian
(三)Linux和Windows系统
- Linux主要使用命令行模式,Windows图形化界面
- linux主要针对服务器,windows是个人操作系统
- linux属于开源项目,windows不开源
- linux是多用户系统,windows是单用户系统
(四)Linux的目录结构
(1)Linux和window
- Windows系统
我们知道我们windows采用磁盘管理——盘符:C盘,D盘,E盘。但我们为什么习惯把C盘作为系统盘呢,为什么C盘一般放系统文件,运行快,为什么这么去做?
其实最早,我们是没有固态硬盘的,都是机械硬盘,靠近中心的区域,访问速度快。
- Linux系统
没有盘符,所有的文件都是从根目录开始存储的,及就是: /
所以Linux目录结构用倒状树结构来管理的
1>我们来看下根目录下,都有哪些子目录,存储什么文件的
/bin:系统命令所对应的可执行文件
/etc:系统对象的配置文件
/dev:存储一些设备接口
root: root用户的家目录 超级管理员
/home:普通用户的家目录,每个普通用户会在/home下有一个同名的子目录
那也就是说每个用户(user)登陆后,就在自己对应家目录下工作,和别的用户是互不干扰的,这也体现了Linux是多用户的操作系统
/usr:存储系统一些资源文件
/mnt:临时挂载点 就是一个windows和linux之间的一个映射
/proc:虚拟目录 存储的是内存的映射
/lib:系统库文件
(2)绝对和相对路径
- 绝对路径
从根目录开始指定的位置 第一个字符: / - 相对路径
从当前目录下开始指定的位置 第一个字符只要不是: /
(五)基本操作命令
- pwd 显当前工作目录的绝对路径
- cd
cd 路径:切换到当前指定工作目录
cd - :切换到上一次所在位置
cd ~ :切换到用户家目录
cd … :返回上一级
- ls
ls 路径:显示指定路径下内容 不加路径默认显示当前目录文件
ls -a :显示所有文件(包含隐藏文件:文件名以 . 开头)
ls -i :显示文件inode节点号
说明:什么是inode节点号?
Linux的文件系统——>EXT49(索引式文件系统)
windows的文件系统——>NTFS
u盘文件系统——>FAT32
EXT4:将整个磁盘划分为三个区域:
superblock:存储文件系统的信息,包括了inode和block的总量,使用和剩余量
inode(n个):每个文件都有一个inode结点,存储文件属性信息,文件内容所在的block编号
block(m个):存储文件内容,文件内容多,可以占据多个block
ls -l :显示文件更多的属性信息
上面的属性信息分别为:
文件类型 文件访问权限 文件链接数 属主 组用户 文件大小(字节) 最后修改时间 文件名
(六)文件类型
Linux不以文件扩展名来区分文件类型,但文件扩展名不能省略
- 普通文件(-):.java .class .h .tar.gz结尾的也是普通文件
- 目录文件(d)
- 管道文件(p):进程间通讯
- 连接文件(l):类似windows上的快捷方式
- 设备文件:块设备(b),字符设备©,套接字(s)
(七)文件权限
(一)权限说明
- 举例:r w- r- - r- -
我们可以把上面文件权限三个三个划分,分别表示的是:u g o(主权限 组权限 其他权限)
r:读权限 w:写权限 -:无权限
x 普通文件:可执行权限
目录文件:可进入权限
(二)修改权限
chmod
1、文字设定法
修改那个权限:u g o a
怎么操作:+ - =
权限给法;r w x (rwx r w x rw rx wx)
chmod u/g/o/a +/-=rwx filename
2、数字设定法(二进制方法)
r w x
1 0 0 => 4
0 1 0 => 2
0 0 1 =>1
举例数字设定法:
举例文字设定法:
二、Linux基础操作命令
(一)创建文件
- 普通文件
touch filename
- 目录文件
mkdir dirname
(二)删除文件
- 普通文件
rm filename
- 目录文件
rmdir dirname 只能删除空目录
rm -r dirname 删除非空目录(递归的去删除)
(三)拷贝文件
- 普通文件
cp 路径1+文件名 路径2 把路径1文件拷贝到路径2下
路径1可不写,默认为当前路径
- 目录文件
cp -r 路径1+目录名 路径2
(四)剪切文件
说明:剪切不同于拷贝的是,剪切会导致原文件丢失
- 普通文件
mv 路径1+文件名 路径2
- 目录文件
mv 路径1+目录名 路径2
分析:这里剪切目录文件为什么不用递归剪切?
回答:我们剪切只是把路径名做改变即可,也就是只改变从属关系就好,比方说:这个目录是课树,原本l路径1(A人)照看,现在让路径2(B人)照看就好,换了人而已,树还是那颗树,从属关系变了而已.
(五)重命名
mv 路径1+文件名 路径1+新文件名
(六)修改文件属主和组
chown newuser filename 修改文件属主
chgrp newgroup filename 修改文件组用户
三、vim操作
安装vim sudo apt-get install vim -y
(一)vim三种模式转换
从命令行模式切换到插入模式 可输入:a、i、o、O都可以切换
从插入模式切换到命令行模式 :esc 键
命令行模式切换到末行模式 可输入: :、?、/ 都可以切换
(二)末行模式下的命令
:w 保存文本
:q 退出编辑(只能退出没修改的操作)
:wq 退出并保存
:q! 强制退出
;set nu 显示行号
:set nonu 取消行号
:set hlsearch 将搜索结果高亮显示
:w newfile 另存为
?string 向上搜索string
/string 向下搜索string
:n,m s/oldstring/newstring/g 全文替换n-m行
(三)命令行模式下的命令
对于光标操作
shift + g :移动到最后一行
shift + 6:移动当前行第一列
shift + 4:移动当前行最后一列
shift + h:移动到当前屏幕的第一行
shift + m:移动到当前屏幕中间一行
shift + l:移动到当前屏幕中间
Ctrl + f:向下翻页
Ctrl + b:向上翻页
Ctrl + r 撤销上一次操作
gg:移动到第一行
num shift + g:移动到num行
r:替换一个字母
shift + r:进入替换模式
shift + c:将当前光标到行尾内容删除,并且进入插入模式
cc 将当前行删除,并且进入插入模式
d num shift + g 删除当前光标到num行内容
y num shift + 9 拷贝当前光标到num行内容
(四)文件压缩和解压
- 方法一
打包: tar cf xxxx.tar filelist
解包:tar xf xxx.tar
其中 c:创建 x:释放 f:目标文件而不是设备v:显示过程
t:仅仅显示包中内容,而不是释放 z:使得tar命令具有压缩和解压功能
压缩:gzip xxxx.tar(生成xxx.tar.gz)
解压:gzip -d xxx.tar.gz(生成xxx.tar)
- 方法二
压缩:tar zcf xxx.tgz filelist
解压:tar zxf xxx.tgz
- 查看包内容
tar tf 压缩包名