基础介绍
文件类型
-
Linux用 EXT4系统 用/根目录 再分为几个部分 进行文件管理(目录即文件夹)
分有 bin,etc,mnt,dev,home,root,usr,boot,lib,proc这些子目录存放的内容由系统决定. -
Windows 用 NTFS 用盘符C,D,E等存放,存放内容由用户自己决定.
基本类型linux目录组织结构:倒状树
linux上一切皆文件:
linux文件类型:其实是一种文件属性,不是通过后缀名来区分的.
五种文件类型:
- 普通文件: - 剩下的都是普通文件
- 目录文件: d 文件夹
- 链接文件: l 类似windows上的快捷方式
- 管道文件: p 进程间通讯的时候的方式
- 设备文件: 不太常用(所有的外部设备在机器上呈现的)
分为–
===>>字符设备 c
===>>字符设备 b (磁盘)
===>>套接字 s (用于网络 全程socket)
权限
用户权限
linux是多用户的操作系统,可以运行多个用户同时登录工作,多用户工作时互不影响.
linux对于用户权限管理很严苛.linux上的文件针对不同的用户提供不同的权限.
权限是在文件上设置的,是文件的一种属性.(比如这个用户能操作这个文件,另一个却不能)
-
一个文件对操作他的用户进行了分类:
所有者 组用户 其他用户
(怎么分的:用户本身就是按组分的) -
eg:
组一:stu1 stu3 stu5
组二:stu4 stu6
组一:stu1 stu6 atu7
stu6创建一个文件,
所有者:stu6,
组用户:组三(这里看主组)
其他用户:(只要不是组三里的成员以及stu6)stu 3,5,4
文件权限
文件权限;
rwx rwx rwx
代表 user group other
r: 读权限
w:写权限
x:可执行权限 -->普通文件(有可执行权限的不一定能执行,能执行的肯定有可执行权限)
可进入权限–>目录文件
所有用户都在家目录下面.在家目录下面也分了小组,如果有A,B,C三个组,A组里的成员在A里可以为所欲为,但是不要进入其他组里去.
用户分为:
超级管理员:root
普通用户:剩下的所有用户
子目录作用
-
子目录作用:
-
bin: 系统命令对应的可执行文件.
-
pwd:显示当前位置的绝对路径.
-
ls:显示当前位置下的文件
-
etc:系统的配置目录
-
mnt:临时挂载点
-
dev:设备目录设备文件(接口)—把要访问的先弄到接口再给临时挂载点.
-
home:普通用户的家目录
-
root:root用户的家目录
-
usr:第三方插件的资源
-
boot:系统启动时需要的核心文件
-
lib:存放库(例如线程库)
-
proc:内存的映射,虚拟目录(如果系统关机了,这个里面的内容就没了,系统关机以后内存里的东西就没了,所以这里也就没了.)统计一些进程的统计信息.
基本操作
控制台目录及路径
- 右键打开 open in terminal 打开控制台
- cd / 切换到根目录
- pwd 显示当前路径.但是绝对不会给你显示内容.
- cd bin 从根目录/到bin里面去 这是相对路径.(从当前开始)
- cd /dev 从bin到dev去 这是绝对路径.(从根目录开始)
- ls -l:可以显示当前目录下的文件的属性信息
- ls -a:显示所有的文件 (包括隐藏文件:文件名以"."开头的文件)
- cd … 上一级目录
- cd . 当前目录
- cd ~ :用户的家目录 -》直接切换到当前用户的家目录
- cd - :切换到上一次所在的位置,在两个路径之间快速切换
- man ls 帮助 退出写q
文件操作
文件名:数字字母下划线,一般文件名之间不要出现空格,Linux大小写敏感
- 文件操作------普通文件---------------目录文件
- 创建-------touch file_name.*------mkdir dir_name
- 删除---------rm file_name.* -------- rmdir dir_name 仅能删除空目录
- rm -r dir_name 删除非空目录 -r是递归的手法
eg:touch cc.c 创建文件cc.c mkdir cc 创建文件夹
文件拷贝 :
- 针对普通文件
cp path1/file_name.* path2 将路径1下面的文件拷贝到路径2
cp path1/file_name.* path2/file_name2.* 将路径1下面的文件拷贝到路径2下并重命名 - 针对目录文件(文件夹)
不但要拷贝目录本身,要把目录里的文件都得拷过去,所以使用递归
cp -r path1/dir_name path2
剪切/重命名
mv path1/file_name.* path2 剪切
mv path1/file_name.* path1/file_name2.* 重命名
mv path1/file_name.* path2/file_name2.* 剪切并重命名
修改文件属性
文件类型 文件权限 链接数 所有者 组用户 文件大小 最后修改时间 文件名
-
可修改的:文件名 组用户 所有者 文件权限
修改所有者: chown newuser file_name.*
修改组用户: chgrp group file_name.*
以上两个只有root用户能够执行命令 -
修改权限: chmod
u:所有者
g:组用户
o:普通用户
a:所有的用户 -
修改权限的方式:
-
1.字符方式:
-
chmod u/g/o/a +/-/= rwx(子集) 为某个用户加上或者减去一个权限
eg: chmod g+w passwd 给passwd的组用户加上写权限
chmod u+w,g+w passwd 给passwd的所有者以及组用户加上写权限
chmod u=x passwd 给passwd的所有者的权限直接改成x -
2.数字方式:
-
r w x 0—7 n的范围
0 0 0 说明这三个权限都没有
1 0 0 -->4
0 1 0 -->2
0 0 1 -->1
chmod nnn file_name.*
eg:
6 可读可写
666 分别指定 所有者,组用户,普通用户
普通文件编辑
普通文件编辑:
1.针对文本 例如 .c .cpp .h .java .py .sh
2.文件最终都是要在磁盘上存储的,但是计算机所用的都是数字信号,所以在计算机存的都是二进制文件的方式.
3.给word里编辑内容,这个时候并没有写到磁盘上,是写在内存里的,只有保存了才会写到磁盘上.
vi/vim
vi main.c 编辑main.c 这个文件(这个文件存在)或者新建这个文件(这个文件不存在)
- 三种操作模式:
命令模式—完成文本的批处理,删除拷贝等以及光标的快速切换
插入模式(编辑模式)----插入内容
末行模式----保存退出另存为,文本设置等
刚进入是命令模式
-
1.命令模式---->到插入模式
有四个插入指令在键盘操作:
a --在光标之后插入内容
i --在光标位置插入内容
o—在光标下一行 插入内容
O—在光标上一行 插入内容 -
2.插入模式---->命令模式
用左上角的esc键 -
3.命令模式—>末行模式
: ? / -
末行模式的操作:
:q 退出编辑
:w 保存文本
:wq 保存并退出
:w new_file 另存为
:q! 强制退出(这里是不保存强制退出)
搜索string
?string 向上搜索
/string 向下搜索
替换
:1,$s/oldstring/newstring/g 全文替换 -
命令模式下对光标快速移动的命令:
1.shift +6 移动到行头
2.shift +4 移动到行尾
3.shift +g 移动到文本最后一行
4.gg 移动到文本的第一行
5.num + shift + g 移动到num行
6.ctrl + f ctrl +b 翻页 -
命令模式下对文本的批处理:
1.dd 删除一行
2.n +dd 删除n行(光标所在的往下的n行被删除掉)
3.yy 拷贝
4.n + yy 拷贝n行
5.p 粘贴
6.u 撤销
7.d shift + g 删除光标到文件尾的内容
8.d gg 删除光标到文件头的内容
9.d num shift + g 删除光标某一行的内容
10.shift+c 删除光标到行尾的内容,并且进入编辑模式
11.r+ new_char 光标定位在这个字符上 按r再加自己想替换的字母
12.cc 删除光标所在的行,并且进入编辑模式
13.cw 删除一个单词并且进入编辑模式 (用符号或者空格来区分这个单词)
14.shift+r 进入替换模式
查看文件内容
- cat file_name 将文件所有内容打印到终端界面上
more file_name 在终端界面上分屏显示文件内容
less file_name 打开文件查看器,内容并不会在终端上打印
head -n file_name 查看文件前n行内容
tail -n file_name 查看文件尾前n行内容
文件查找
- find 加上
-size
-user
-group
-time
-perm 权限
文件压缩
-
tar 打包/解包
打包 tar cf mytar.tar filelist(文件列表)
解包 tar xf mytar.tar -
gzip 压缩/解压
压缩 gzip mytar.tar —>mytar.tar gz
解压 gzip -d mytar.tar gz -
一步完成压缩:
tar zcf mytar.taz filelist
一步解压:
tar zxf mytar.taz
tar选项部分:
c 创建包文件
f 指定目标为文件而不是设备
x 从包中释放内容
t 仅仅显示包中的内容而不释放
v 显示过程
z GNU版本之后加入的选项,直接完成压缩功能,或者直接解压压缩包.