声明:此文档是看B站视频的笔记【Linux平台c语言应用开发课程】(P1-P16)
(1)Linux系统目录结构
- /bin: 二进制文件,存放一些常用命令
- /root: 存放启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件
- /dev: (Device)存放Linux的外部设备文件,在Linux中访问设备和访问文件的方式是相同的
- /etc:(Etcetera)存放系统的配置文件和子目录
- /lib:存放系统的动态链接共享库等
- /proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /var: var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
(2)Linux文件类型
普通文件 | - |
目录文件 | d(dir) |
管道文件 | p |
链接文件 | l |
设备文件 | 块设备b,字符设备c |
套接字文件 | s |
(3)Linux文件权限
权限类型 | 说明 | 值 |
r | 读权限 | 4 |
w | 写权限 | 2 |
x | 执行权限 | 1 |
- | 无权限 | 0 |
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
[shen@localhost shenfile]$ touch test.txt
[shen@localhost shenfile]$ ll
总用量 0
-rw-rw-r--. 1 shen shen 0 8月 3 13:05 test.txt
[shen@localhost shenfile]$ chmod u-w test.txt
[shen@localhost shenfile]$ ll
总用量 0
-r--rw-r--. 1 shen shen 0 8月 3 13:05 test.txt
[shen@localhost shenfile]$ chmod u+w test.txt
[shen@localhost shenfile]$ ll
总用量 0
-rw-rw-r--. 1 shen shen 0 8月 3 13:05 test.txt
用数字也是一样:
[shen@localhost shenfile]$ chmod 462 test.txt
[shen@localhost shenfile]$ ll
总用量 0
-r--rw--w-. 1 shen shen 0 8月 3 13:05 test.txt
[shen@localhost shenfile]$ chmod 662 test.txt
[shen@localhost shenfile]$ ll
总用量 0
-rw-rw--w-. 1 shen shen 0 8月 3 13:05 test.txt
(4)基础命令
pwd #返回当前位置的绝对路径
cd - #转到上次跳转过来的位置
cd .. #返回上级目录
cd ~ #返回家目录
ls -a #显示当前目录所有文件 包括隐藏文件
ls -l #显示所有文件信息
ll #等价于 ls -l
(5)文件创建和删除
#创建文件夹
mkdir name
#删除文件夹
rm -r name #删除文件夹 非空也行
rm -rf name #删除的时候不显示提示信息
rmdir name #仅能删除空文件夹
#创建文件
touch filename
vim filename
#删除文件
rm filename
(6)文件拷贝和移动
# 拷贝文件
cp file1 file2
# 拷贝文件夹
cp dir1 dir2
# 移动文件夹
mv filename 位置 # 移动文件
mv dirname 位置 # 移动文件夹
# 重命名
mv file.txt file_new.txt
mv dir dirnew # 前提是当前目录中没有dirnew文件夹
(7)查看文件内容
- cat 适合小文件
# 查看
cat filename
# 写入
cat > filename # ctrl + D 结束输入
# 合并
cat file1 file2 > file3
- more 分屏查看(回车下翻,空格 页,D上翻)
- head 显示文件前几行内容
head -2 filename # 不加参数,默认是10行
- tail 显示文件后几行内容
tail -3 file # 不加参数默认是10行
- less 可以反复显示(方向键、PgUp、PgDn)
(8)查找文件
- find
# 全盘搜索
find / -name filename # 如果不是root有些文件夹会没有权限访问
find / -name filename 2>/dev/null # 将错误重定向 不显示
# 标准输入 0 标准输出 1 标准错误输出 2
# 路径
find 路径 -cmin -n filename # 搜索过去n分钟内修改的文件
find 路径 -ctime -n filename # 搜索过去n天内修改的文件
- grep 在文件中搜索字符串
grep "hello" file.txt
-c 只输出匹配行的计数
-i 不区分大小写
-n 行号
-v 不包含的行
管道命令是起到在两个命令之间传递数据的作用
grep一般配合管道命令“|”使用,对其他命令返回的结果进行二次过滤,来搜索关键字
ps -ef |grep "sleep" # 搜索进程名是sleep的信息行
(9)查看进程
ps 默认显示与当前终端有关的进程信息
-e 所有组织信息
-f 更多信息(全格式)
-L 显示进程ID
ps tree # 显示系统进程树
ps -ef|grep "sleep" # 查找名字所谓sleep的进程
结束进程
kill 进程pid
-9 强制结束进程
-stop 挂起进程
pkill sleep # 批量结束指定名字的所有进程
(10)用户操作
# 添加
useradd newname
passwd newname # 新用户需要设置密码才能使用
su username # 切换用户
exit # 退出当前用户
# 删除用户
userdel username # 默认不会删除用户目录的文件 -r参数会删除
(11)文件压缩与解压
# 打包文件 但没压缩
tar filename
-c 创建
-f 指定目标为文件而不是设备
-v 显示详细过程
-t 显示包中内容而不解压缩
-x 释放包中内容
-z GUN版本新加的 使得tar命令有压缩和解压的功能
gzip my.tar # 会生成-> my.tar.gz
压缩文件 非打包
# touch a.c
# tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
a.c
列出压缩文件内容
# tar -tzvf test.tar.gz
-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c
解压文件
# tar -xzvf test.tar.gz
a.c