1.
wangkai:代表当前登录的用户
@:at,在
wangkai-virtual-machine:安装的时候指定的主机名
~:用户的家目录(宿主目录)
~/C++:当前用户的工作目录
$:代表当前用户为普通用户,如果是#的话,就代表超级用户
2.Linux系统目录结构
根目录下的常见目录:
/bin: binary, 二进制文件,可执行程序,shell命令
/dev: device,在linux下一切皆文件
硬盘,显卡,显示器。。。
/lib: linux运行的时候需要加载的一些动态库
/mnt: 手动的挂载目录
/media: 外设的自动挂载目录
/root: linux 的超级用户的家目录
/usr: unix system resource
头文件 - stdio.h stdlib.h
游戏
用户安装的应用程序 /usr/local
/etc: 存放配置文件
/etc/passwd用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其他信息
/etc/group类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据
/opt: 安装第三方应用程序
/home: linux操作系统所有用户的家目录
/tmp: 存放临时文件
/boot:/boot目录存放引导加载器(bootstrap loader)使用的文件,核心映像也经常放在这里,而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在ide硬盘的前1024柱面内。
3.Linux中文件颜色所代表的属性和颜色
绿色文件: 可执行文件,可执行的程序,属于普通文件
红色文件:压缩文件或者包文件,属于普通文件
蓝色文件:目录
白色文件:一般性文件,如文本文件,配置文件,源码文件等,属于普通文件
青色文件:链接文件,主要是使用ln命令建立的文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件,block块、char字符、fifo管道
灰色:表示其他文件
4.环境变量的作用
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
5.Linux中的软链接和硬链接
硬链接
硬链接的特点是这样的:
它会在链接文件处创建一个和被链接文件一样大小的文件,类似于国外网站和国内镜像的关系,
硬链接占用的空间和被链接文件一样大(其实就是同一片空间)
修改链接文件和被链接文件中的其中一个,另外一个随之同样发生变化
硬链接的对象不能是目录,也就是说被链接文件不能为目录
硬链接的两个文件是独立的两个引用计数文件,他们共用同一份数据,所以他们的inode节点相同
删除硬链接中的任意一个文件,另外一个文件不会被删除。没有任何影响,链接文件一样可以访问,内容和被链接文件一模一样。
硬链接的原理:
在存储器中只存储了一份数据,而被链接文件和链接文件其实都是对这一份数据的引用,所以这份数据就会有最小为2的引用计数,所以才会删除两个文件中的任意一个,删除的都是引用计数,不会影响这一份数据,而另外的一个引用照样可以访问这份数据。如果另外一个引用也被删除了,那么引用计数就为0,在Linux中,一旦引用计数为0,则认为该数据被删除了,这时数据就会被彻底清空。
软链接
软链接又称为符号链接,需要在ln 命令后面加上-s,效果基本和Win中的快捷方式,特点如下:
软连接的链接文件就是一个基本单元大小的文件,一般为3B,和被链接文件的大小没有关系
软链接的链接文件中存储的是被链接文件的元信息,路径或者inode节点
软连接的连接文件是一个独立的文件,有自己的元信息和inode节点
删除软链接的链接文件,被链接文件不会受到任何影响
删除软链接的被链接文件,链接文件会变成红色,这时打开链接文件会报错,报找不到被链接的文件这种错误
软链接可以链接任何类型的文件,包括目录和设备文件都可以作为被链接的对象
软链接的原理,和硬链接的原理类似,可以比对理解。
6.用户权限、用户和用户组
chmod--用于修改文件或目录的权限
设置文件file的权限为777
在文件file的权限基础上减去022(也就是所属组和其他人对此文件没有写权限)
chown--修改文件所有者或所属组
chown 新的所有者 文件名
chown 新的所有者:新的所属组 文件名,中间用:隔开,即可同时修改
注意:之所以chown前面要加sudo,是因为只有超级用户才有权限更改
7.文件查找和检索
(1)根据文件属性查找 - find
文件名
find 查找的目录 -name “查找的文件名”
文件类型
find 查找目录 -type 文件类型
普通文件:f
目录:d
符号链接:l
管道:p
套接字:s
字符设备:c
块设备:b
文件大小
find 查找目录 -size -10M
+:大于 +10k
-:小于 -10k
等于10k:10k
单位:k - 小写 M - 大写
大于10k小于100k,find . -size +10k -size -100k
按日期
创建日期:-ctime -n/+ n
-n: n天以内
+n:n天以外
find . -ctime -1
修改日期:-mtime -n/+n
访问日期:-atime -n/+n
深度
-maxdepth n(层数),搜索n层以下的目录
-mindepth n(层数),搜索n层以上的目录
高级查找
例:查找指定目录,并列出该目录中文件详细信息
find ./ -type d -exec shell 命令(ls -l){} \;
find ./ -type d -ok shell 命令(ls -l){} \;ok比较安全
find ./ -type d | xargs ls -l(shell 命令)
(2)根据文件内容查找 - grep
grep -r(有目录) “查找的内容” 搜索的路径
搜索家目录中带helloworld字符串的文件
grep -r “helloworld” ~ -n(显示行号)
(3)总结
find 搜索的路径 参数 搜索的内容
grep 搜搜的内容 参数 搜索的路径
8.压缩包管理
(1)linux下常见压缩格式:
.gz -- gzip
.bz2 - bzip2
(2)常用压缩命令:
(1)tar - 打包工具,也就是可以不压缩,只打包
参数:
c - 创建压缩文件
x - 释放压缩文件
v - 打印提示信息(可不写)
f - 指定压缩包的名字
z - 使用gzip压缩文件 - xxx.tar.gz
j - 使用bzip2的方式压缩文件 -- xxx.tar.bz2
压缩:
tar 参数 压缩包的名字 原材料 -- gz
tar zcvf test.tar.gz file dir
解压缩:
tar zxvf test.tar.gz
tar zxvf test.tar.gz -C 解压目录,这是解压到指定目录的写法
(2)rar
rar需要安装,sudo apt-get install rar
压缩:
rar a 压缩包名(不用指定后缀) 压缩内容
压缩目录加参数 -r
解压缩:
rar x 压缩包名 解压目录
(3)zip/unzip
压缩:
zip 参数 压缩包名 原材料
如果有目录: -r
解压缩:
unzip 压缩包的名字 -d 解压目录, -d是代表解压到指定目录
(3)总结
压缩:
tar/rar/zip 参数 压缩包名 原材料
解压缩
tar/rar/unzip 参数 压缩包名 参数 解压路径
rar 解压缩到指定目录不需要指定参数
unzip 不需要解压参数,只是解压到指定路径还是需要参数的