Day 3 Linux(目录篇 、文件操作篇 、压缩解压相关命令, 编辑器vi 、编译器gcc 、调试器gdb、 makefile工程管理器初学)
一.目录篇:
1.文件处理命令:cp
英文原意:copy
语法:cp -rp[源文件或目录][目的目录] 源文件可以同时是多个,即同时复制到多个文件
-r 复制目录
-p保留文件属性,比如文件创建时间等等,此时和创建硬链接有点相似,但是不能实时更新
-f强制打开文件即使文件不能打开,也要强制打开
2.文件处理命令:mv
英文原意:move
语法:mv [源文件或目录] [目录目录]
功能:移动文件目录(即剪切),也可以重命名目录或文件
例:mv file1 file3
将当前目录下文件file1更名为file3
mv file2 dir2
将文件file2移动到目录dir2下
比如:mv services service将当前目录下的services更名为service(如果移动后不改变名称,则可以不写目标文件名称),直接写目录,和mv /test/inittab /tmp/ copy一样,也可以同时移动多个文件 ,将test/inittab文件移动到/tmp/目录下。
3.文件处理命令:rm
原意:remove
语法:rm [文件或目录]
-r(选项) 递归删除目录(递归即深度到所有的子目录下) 如果要删除一个文件,则不需加任何的选项
功能:删除文件 在用这种方式删除一个文件时,系统会提示是否确认删除,此时需要敲入y,(实际上rm命令在Unit下,是直接删除文件的,但是Linux下,有别名机制,也就是rm也捆绑了一个选项,即-i,它会有一个询问过程)但是我们可以使用rm -f file3 直接将文件删除,而不需要系统提示确认删除例:rm file3 删除文件file3rm -r dir1 删除目录dir1 rm -r test 删除目录test 在使用这种方式删除一个目录的时候,系统会提示你是否进入该目录,然后再帮你一个一个删除,如果目录里有很多文件时,这种方式也不可取的,所以如果你非常确定要删除该目录,可以使用 rm -rf test 强制删除(f 表示never prompt,从不询问),而cp -rf /etc /test/etc.back 表示复制目录/etc,并且如果目录里的文件无法打开,则强制打开,并复制。
二.文件操作篇:
1. 权限处理命令:chmod
功能:改变文件或目录的权限,有时候我们要调整一个文件或者目录的权限
原意:change the permissions mode of a file
改变文件的权限有两种方式:
针对某一类用户执行权限的设置:+表示添加,-表示去除,=表示不管之前权限,现在就是这样的权限
第一种方式:chmod u + 授权 r可读
g - 去权 w可写
o = 直接赋权 e可执行
(文件的执行权限有三种:u-所有者,g-文件所属组,o-其他人)
例子:chmod u+wx 文件名 chmod o-rx 文件名 chmod g=rwx 文件名
也可以同时改变多种用户的权限:
chmod u=rwx,g=rx,o=rx newfile 不同用户之间使用逗号“,”隔开
这种方法虽然很简单,但不是我们要掌握的重点,我们要掌握的方法是通过数字的方法来授权,下面是第二种方式:
r-4 2的2次方,分别对应一个数字 读的数字是最大的
w-2 2的一次方
x-1 2的0次方
rwxr-xr--就可以表示为:7 5 4
rw-r-x--x 6 5 1
直接使用chmod 641 a 就将a的执行权限更改为rw-r----x,不同用户有不同的执行权限,这种方式能同时改变所有的用户的权限
2. 创建链接文件 :ln
原意:link
语法:ln -s [源文件] [目标文件]-s(表示soft) 表示创建软链接 例子:ln –s example.c link
ln [源文件] [目标文件] 这样就可以创建一个硬链接,不需要选项-s(soft) 例子:ln example.c link1
3. 文件搜索命令grep
功能:在”文件内容“搜索字符串匹配的行,并输出
语法:grep [指定字符串] [源文件]
例子:grep ftp /etc/services
4. find
find是一个通用的查找文件的命令,它可以用来查找所有的文件(图片,网页,压缩包,配置文件,命令文件,硬件文件等)所在路径:/usr/bin/find
语法:find [搜索路径] [搜寻关键字]
三.压缩解压:
1. 压缩解压命令:tar (不产生后缀名)
功能:将一个目录打包成一个文件,源目录还是存在的
语法:tar 选项[cvf] [目录]
-c 产生.tar打包文件 我们在使用tar打包目录的时候,-c是必要的选项,表示create创建一个打包文件
-v显示详细信息 可选项,是在命令执行的时候,显示命令执行的过程
-f指定压缩后的文件名 必选项,该选项必须放在所有选项的后面,后面跟住新的文件名
-z打包同时压缩
例子:tar -cvf file1.tar file1 打包
tar -xvf file1.tar 解打包
tar -czvf file1.tar.gz file1 打包并压缩
tar –xzvf file1.tar.gz 解打包并解压缩
四.其他 :
1. 帮助命令:man
功能:获得帮助信息
原意:manual
语法:man [命令或配置文件]
例子:man ls 表示查看ls命令的帮助信息
man services 表示查看services配置文件的帮助信息
2. 系统关机命令:shutdown
语法:shutdown
例子:shutdown -h now
3. ps
ps 是 Linux 中最基础的浏览系统中的进程的命令。
能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等
ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
ps -ef |grep - 列出需要进程
4.网络通信命令:ifconfig
例子:ifconfig [-a]在Linux中-a可以不加
一般我们都是ifconfig +网卡名称:ifconfig eth0
例子:#ifconfig eth0 192.168.11.46 netmask 255.255.255.0 broadcast 192.168.1.234
# ifconfig完成更改
5.uname
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
四.编辑器vi:
学习vi之前,必须知道,vi有三种工作模式:
(1)命令模式
(2)插入模式
(3)编辑模式
我们使用vi filename进入vi的命令模式,输入"i"或者"a"或者"o"其中一个,进入插入模式,插入完敲打Esc键,返回到命令模式,可以通过“:”从命令模式到达编辑模式,回车后结束编辑模式,回到命令模式,输入":wq"("write quit"保存并退出)可以退出vi
以下命令都是在命令模式下输入的:
在命令模式下,我们还有很多的命令可以用到,比如我们要让编辑器显示行号,就可以使用":set number"(或者使用简写":set nu")
接下来是高效的使用vi,我们在命令模式下,使用下面的命令:
a 在光标后附加文本
A 在本行行末附加文本
i 在光标前插入文本
I 在本行开始处插入文本 0零也可以移动到行首,但不执行插入操作
o 在光标下一行插入新的一行
O 在光标上一行插入新的一行
定位命令:
h 方向左键
l 方向右键
k 方向上键
j 方向右键
$ 移至行尾
0(零) 移至行首,但不执行插入操作
H 移至屏幕上端
M 移至屏幕中央
L 移至屏幕下端
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 都最后一行
ng(n为数值) 到第n行
:n(n为数值) 到第n行
删除命令:
x 删除光标所在处的字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到文件末尾的内容
D 删除从光标所在处到行尾
:n1,n2d 删除指定范围的行
复制和剪切命令:
yy或者Y 复制当前行
nyy或者nY 复制当前行以下n行
dd 剪切当前行(其实就是删除)
ndd 剪切当前行以下n行
p、P 将内容粘贴在当前光标所在行下或行上
替换和取消命令:
r 取代光标所在处的一个字符,操作:按下r,然后再按你要替换的新的字符
R 从光标所在处开始替换字符,直到按Esc结束
u 取消上一步操作,撤销,在你没有保存退出之前都可以撤销
搜索和替换命令:
/关键字 敲完“/关键字”之后,按下回车,以后向前搜索指定的字符串n(next),向前搜索按N键
s表示替换
":%s/old/new/g"(命令的最后一个指令:g表示不询问确认,如果是c则表示询问确认,询问中a:all,q:quit),其中%s表示全文替换,即将全文中的所有old都替换为new,比如,将所有的ftp替换为lamp,":%s/ftp/lamp/c"
":n1,n2s/old/new/g"表示将第n1行到第n2行的old用new来替换,比如将10行到20行中的The替换为this,就可以使用":10/20s/The/this/g"
那如何退出vi编辑器呢,我们可以使用“:wq”来保存退出,同时我们也可以使用“shift+zz”,表示两个大写的“ZZ”,也就等同于“:wq”,保存退出
我们还可以使用“:w /root/services.bak”,将文件另存为(备份)到另外一个目录
五.编译器gcc:
一个C文件要变成可执行的文件,需要经过四个过程:
预处理(处理以“#”为开头的命令)
编译(将.c .i等文件翻译成汇编代码)
汇编(将汇编代码翻译成机器代码)
连接(将生成的多个目标文件(.o文件)连接起来,生成可执行文件)
几条常用命令选项:
-E: 预处理后即停止
-S: 编译后不汇编
-c: 预处理+编译+汇编,但不连接
-o file: 指定输出文件为file。无论哪个环节,这个选项都可以使用
编译单个文件的语句,只需要一句话即可
1 gcc hello.c -o hello
这条指令,即直接将C文件生成成可执行文件"hello"
虽然这里是一条指令,但已经包含了几个步骤了。
1 gcc -E hello.c -o hello.i //对C文件做预处理
2 gcc –S hello.i -o hello.s //进行编译,生成汇编文件
3 gcc –c hello.s -o hello.o //对汇编代码编译成目标文件
4 gcc hello.o -o hello //生成可执行程序hello
注:1.若直接gcc hello.c 生成a.out则运行a.out(./a.out)
2.linux头文件默认放在/usr/include中
六.调试器gdb:将调试信息加入可执行代码中
给定一个c文件,步骤:1.gcc –g func.c –o test
2.gdb test
Gdb命令:
1.list命令
在gdb中运行list命令(缩写l)可以列出代码
2.run命令
在gdb中,运行程序使用run命令。
3. break命令
在gdb中用break命令来设置断点:b+行号 该行设置断点
4.i b(info break)查看断点信息
5.d num(删除该断点)(num通过I b 查询)
6.clear+行号 删除行断点
7.p(print)+变量(显示值)
8.s(step)(单步执行进入调用函数)
9.n(next)(只在主函数中)
10.return/finish 退出step进入调用函数
11.q(quit)退出gdb调试
七.Makefile工程管理器
1.makefile就是写一个指定格式的文件,将一系列的编译、链接、转换等操作打包在一起,方便以后一键生成可执行的二进制文件而产生的。下面记录一下这种文件的写法,方便以后忘了来查询。
makefile文件一般格式(又叫规则)
2.makefile的格式
target:dependency
(Tab字符)command
注:若dependencyt比target日期新或target不存在,则make会执行command
3、makefile中变量的使用
OBJECTS = sum.o sub.o operator.o #定义变量
$(OBJECTS) #使用变量
4、makefile的自动推导(隐晦规则)
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中。如:如果make找到一个main.o,那么main.c就会是main.o的依赖文件。并且gcc -c main.c -o main.o也会被推导出来。
Day 3 Linux(目录篇 、文件操作篇 、压缩解压相关命令, 编辑器vi 、编译器gcc 、调试器gdb、 makefile工程管理器初学)相关推荐
- c#重命名文件 递归_文件结构、文件操作及压缩解压操作
一.Linux目录结构 Linux是树形目录结构 指令:cd cd:change directory,改变当前目录. 常用操作如下: 进入上一级目录:$ cd.. 进入当前用户的home目录:$ cd ...
- 用ZipInputStream和ZipOutputStream实现文件及文件夹的压缩解压
主要是运用ZipInputStream和ZipOutputStream实现 当中要注意,在文件解压时,ZipEntry中的名字是相对路径 File的方法createNewFile()只能在存在的目录下 ...
- 复习--linux目录及文件操作
文件及目录的一些操作 你可以使用 man [命令]来查看各个命令的使用文档,如 :man mv 目录查看 目录查看 ls -[alh] [文件或目录名称] 不加 [文件或目录名称]的话默认是当前目录 ...
- 【Linux】Linux简单操作之压缩解压
一.tar : 归档 格式:tar 参数(必须有) 要被压缩的文件或目录 1.创建归档文件 格式: tar -zvcf 归档文件名 要归档文件列表 注意: (1)z是压缩 v是显示详细信息 c是创建压 ...
- linux常用压缩-解压-打包命令
文章目录 1 常见的压缩文件扩展名 2 gzip, zcat/zmore/zless/zgrep 3 bzip2, bzcat/bzmore/bzless/bzgrep 4 xz, xzcat/xzm ...
- linux 压缩 解压zip 命令
将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件 zip -r test.zip ./* 打包指定目录以及其子目录下的所有文件 zip -r test2. ...
- tar.gz文件命名及压缩解压方法
tar.gz文件命名 tar是把文件打成一个包,并不压缩; gz是用gzip把打成包的.tar文件压缩; 所以成了一个.tar.gz的文件 压缩 # tar cvfz backup.tar.gz /x ...
- Linux如何查找解压文件,linux命令(文件搜索和压缩解压命令)
1 命令名称:which 功能:显示系统的所在目录 语法:which ls 2 命令名称:whereis 功能:只能用于程序名的搜索,而且只搜索二进制文件 语法:whereis ls 3 命令名称: ...
- php视频压缩技术,PHP 实现文件压缩解压操作的方法
在php中,有时我们需要使用到压缩文件操作,压缩文件可以节省磁盘空间:且压缩文件更小,便于网络传输,效率高,下面我们就来了解php的压缩解压相关操作 在PHP中有一个ZipArchive类,专门用于文 ...
最新文章
- bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...
- 阿里有一帮吃货工程师,在食堂玩起了“黑科技”
- [Java基础]字符缓冲流
- margin塌陷现象div盒子嵌套盒子外边距合并现象
- 《Flutter 从0到1构建大前端应用》读后感—第4章【事件处理】
- ac3165无线网卡驱动linux,英特尔ac3165驱动下载
- Java——实现100以内奇数的和
- Python爬虫:浅谈【破解某易云音乐加密-JS逆向】
- 从校园到职场,你对前景很迷茫?
- 为了让你在“口袋奇兵”聊遍全球,手撕ArrayList底层,透彻分析源码
- hdu 6344调查问卷(状态压缩,百度之星)
- python爬取淘宝数据遇见的坑
- 安卓应用加固壳判断java厂商_Android APK加固(加壳)工具
- elasticsearch从入门到入门系列(四)---搜索高级使用
- 注入神器 --SQLMAP使用示例
- python绘图:散点图,密度图并保存成图片
- Mybatis-Plus条件构造器学习and方法
- 技术话题(1)PROFINET协议
- 全国计算机为什么没有vfp,vfp杂考?我马上就要考全国计算机二级vfp了,可是我的心里还没 爱问知识人...
- 西门子S7-1200二轴V80伺服写字案例程序运动控制 写字机自动化机械控制,高速脉冲
热门文章
- [操作系统] 单道批处理操作系统、多道批处理系统、分时操作系统的区别
- 支付宝,微信付款码正则表
- 单边指数信号的特点_单边带通信的特点
- 2021年全球支付现状及发展趋势分析:亚太电子商务数字支付将超过3.1万亿美元[图]
- 计算机编程英语发音,计算机编程常用英语
- DySAT: Deep Neural Representation Learning on Dynamic Graph via Self-Attention Networks
- 【论文】b站 - 读论文的麦小哲 学习笔记
- 全面了解Qtum节点端口配置,立即加入全节点激励计划
- 安卓手机文件管理器内置FTP服务器无需安装任何软件共享安卓文件wifi下手机共享电脑文件
- Python 时间标准化