心得:遇到不知道的命令google,遇到不知道怎么用的命令--help, man,table键自动补全,英文记忆联想记忆常用记忆。
一、常用基本命令
查询相关
find
按规则查找某个文件或文件夹,包括子目录
- find . -name '*.sh'-- 以.sh结尾的文件
- find . -name '*channel*'-- 包含channel字符的文件
- find . -name 'build*'-- 以build开头的文件
- find . -name 'abc??'-- abc后面有两个字符的文件
grep
查找内容包含指定的范本样式的文件,Global Regular Expression Print
- grep -n pattern files-- 规则 -n表示显示行号
- grep -n 'PostsActivity' AndroidManifest.xml
- grep -n '\d' AndroidManifest.xml
- grep 'aapt' build-channel.xml-- 文件中包含字符串的所有地方
- grep -n 'aapt' build-channel.xml-- 文件中包含字符串的所有地方,并显示行号
- ps -e | grep java-- 所有java进程
- ps -e | grep -i qq--所有qq进程,不区分大小写
- find . -name '*channel.xml' | xargs grep -n 'aapt'-- 在以channel.xml结尾的文件中查找包含‘aapt’关键字的地方
- ls | grep 'channel'-- 包含channel关键字的文件
which
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
- which zip
- which grep
查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
- tail -f test.log,循环查看文件内容,Ctrl+c来终止
- tail -n 5 test.log,显示文件最后5行内容
- tail -n +5 test.log,从第5行开始显示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
- more +3 test.log,显示文件中从第3行起的内容
- more -5 test.log,设定每屏显示行数
- ls -l | more -5,每页显示5个文件信息
- more +/day3 test.log,查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出
less
less [options] [file...]
与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
- less test.log,查看文件
- ps -ef | less,查看进程信息并通过less分页显示
- history | less,查看命令历史使用记录并通过less分页显示
- less test1.log test2.log,浏览多个文件,n和p切换文件
watch
watch [options] command
每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变
- watch -n 60 date,执行date命令每分钟一次,输入^C 退出
- watch -d ls -l,查看目录变化
- watch -d ’ls -l | fgrep joe’,想找joe用户的文件
- watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化
- watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载
- watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化
- watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变化
文件相关
vi (推荐vim)
vi file
- 按i键,进入编辑模式
-
按esc键,进入命令模式
:w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不推出vi :wq 保存文件并退出vi :wq! 强制保存文件,并退出vi q: 不保存文件,退出vi :q! 不保存文件,强制退出vi :e! 放弃所有修改,从上次保存文件开始再编辑
chmod
change mode,变更文件或目录的读、写、运行权限
chmod [-cfvR] [--help] [--version] mode file...
- mode:权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]
- u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是
- +表示增加权限、-表示取消权限、=表示唯一设定权限。
- r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
- chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file
- 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1
- chmod 777 file,等同于 chmod a=rwx file
- chmod ug=rwx,o=x file,等同于 chmod 771 file
- ls -l可以查看列出当前用户的文件权限
zip
zip -r filename.zip filesdir
- zip -r test.zip ./*,把当前所有文件压缩到test.zip
- zip -r test.zip test,把test文件所有文件及目录,要是到test.zip
- zip -d test.zip test.txt,删除压缩文件中test.txt文件
- zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件
- zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空格隔开
unzip
- unzip zip-file,解压到当前目录
- unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录
- unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件
- unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件
- unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件
- unzip -l zip-file,仅查看压缩文件内所包含的文件
tar
- tar cvf test.tar test,把test下所有文件和目录做备份
- tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩
- tar xzvf test.tar.gz,把这个备份文件还原并解压缩
- tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在显示器上
- tar czvf test.tar.gz test --exclude=test/svn,备份压缩并排除目录
touch
内存相关
ps
显示瞬间行程(process)的动态,ps [options] [--help]
linux上进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
top
动态观察程序的变化,top [-d] | top [-bnp]
- top -d 2,每两秒钟更新一次
- top -b -n 2 > /tmp/top.txt,将top的信息进行2次,然后将结果输出到/tmp/top.txt
- top -d 2 -pid 10604,仅观察PID=10604的程序
- top命令介绍
free
free [options]
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一
- free -m,以MB为单位显示内存使用情况
- free -g,以GB为单位显示内存使用情况
- free -s 10,周期性的查询内存使用信息
kill
kill [-s signal_name] pid...
发送指定的信号到相应进程,The kill utility sends a signal to the processes specified by the pid operand(s)
- kill -l,列出所有信号名称
- kill -l SIGKILL,得到指定信号的数值,SIGKILL=9
- kill -9 pid,强行中止进程,强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
- kill -HUP PID,停止和重启进程,该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
- kill -l PID,以优雅的方式结束进程,-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。
- ps -ef | grep vim,查找进程
网络相关
ping
ping [参数] [主机名或IP地址]
确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。
- ping -b 192.168.1.1,ping网关
- ping -c 10 192.168.1.2,ping指定次数
- ping -c 10 -i 0.5 192.168.1.2,时间间隔和次数限制的ping
- ping -c 5 www.baidu.com,通过域名ping公网上的站点
netstat
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
- netstat -a,列出所有端口
- netstat -nu,显示当前UDP连接状况
- netstat -apu,显示UDP端口号的使用情况
- netstat -i,显示网卡列表
- netstat -g,显示组播组的关系
- netstat -s,显示网络统计信息
- netstat -l,显示监听的套接口
- netstat -n,显示所有已建立的有效连接
- netstat -e,显示关于以太网的统计数据
- netstat -r,显示关于路由表的信息
- netstat -at,列出所有 tcp 端口
- netstat -ap | grep ssh,找出程序运行的端口
- netstat -pt,在 netstat 输出中显示 PID 和进程名称
- netstat -anpt | grep ':16064',找出运行在指定端口的进程
telnet
telnet[参数][主机]
执行telnet指令开启终端机阶段作业,并登入远端主机。
- telnet 192.168.120.206
- service xinetd restart,启动telnet服务
inconfig
ifconfig [网络设备] [参数]
ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
- ifconfig -a显示全部接口信息
- ifconfig -s显示摘要信息(类似于 netstat -i)
命令 | 用法 | 说明 |
pwd | pwd | 显示当前所在目录 |
ls | ls -al | 以列表形式,显示当前目录下的所有文件和目录,大多数情况可直接用ll |
cd | cd /home/hadoop/hbase/ | 进入到指定目录 |
cd .. | 退到当前目录的上一级 | |
cd | 进入到当前用户的用户目录,如:/home/admin | |
cd ~ | ||
cd - | 进入到上一次所在目录 | |
tail | tail –n 文件名 | 显示指定文件名的最后n行 |
tail –f 文件名 | 动态显示指定文件名的内容变化 | |
head | head –n 文件名 | 显示指定文件名的最前n行 |
cat | cat 文件名 | 查看指定文件名的全部内容 |
touch | touch 文件名 | 根据指定的文件名,创建一个新的空白文件。如果该文件已经存在,则不做任何操作。 |
ps | ps –ef|grep fma | 显示命令中包含fma的进程信息 |
grep | ||
kill | kill 进程号 | 终止指定进程号的进程 |
kill -9 进程号 | 强制终止指定进程号的进程 | |
top | top | 显示系统的基本信息 |
vi | vi 文件名 | 创建或查看指定文件名 |
心得补充:遇到不知道的命令google,遇到不知道怎么用的命令--help, man,table键自动补全,英文记忆联想记忆常用记忆。
二、文件系统
Linux 文件系统概览
1. Linux 文件系统简介
在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。 也就是说在 Linux 系统中有一个重要的概念:一切都是文件。
其实这是 UNIX 哲学的一个体现,在 UNIX 系统中,把一切资源都看作是文件,Linux 的文件系统也是借鉴 UNIX 文件系统而来。
2. inode 介绍
inode 是 linux/unix 文件系统的基础。那么,inode 是什么?有什么作用呢?
硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区组成(每个扇区存储 512 字节)。一个文件可能会占用多个 block,但是一个块只能存放一个文件。
虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的 元信息 metadata :如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种 存储文件元信息的区域就叫 inode,译为索引节点:i(index)+node。 每个文件都有一个 inode,存储文件的元信息。
可以使用 stat
命令可以查看文件的 inode 信息。每个 inode 都有一个号码,Linux/Unix 操作系统不使用文件名来区分文件,而是使用 inode 号码区分不同的文件。
简单来说:inode 就是用来维护某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等信息。
简单总结一下:
- inode :记录文件的属性信息,可以使用 stat 命令查看 inode 信息。
- block :实际文件的内容,如果一个文件大于一个块时候,那么将占用多个 block,但是一个块只能存放一个文件。(因为数据是由 inode 指向的,如果有两个文件的数据存放在同一个块中,就会乱套了)
3. Linux 文件类型
Linux 支持很多文件类型,其中非常重要的文件类型有: 普通文件,目录文件,链接文件,设备文件,管道文件,Socket 套接字文件等。
- 普通文件(-) : 用于存储信息和数据, Linux 用户可以根据访问权限对普通文件进行查看、更改和删除。比如:图片、声音、PDF、text、视频、源代码等等。
- 目录文件(d,directory file) :目录也是文件的一种,用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名。打开目录事实上就是打开目录文件。
- 符号链接文件(l,symbolic link) :保留了指向文件的地址而不是文件本身。
- 字符设备(c,char) :用来访问字符设备比如硬盘。
- 设备文件(b,block) : 用来访问块设备比如硬盘、软盘。
- 管道文件(p,pipe) : 一种特殊类型的文件,用于进程之间的通信。
- 套接字(s,socket) :用于进程间的网络通信,也可以用于本机之间的非网络通信。
4. Linux 目录树
所有可操作的计算机资源都存在于目录树这个结构中,对计算资源的访问,可以看做是对这棵目录树的访问。
Linux 的目录结构如下:
Linux 文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:
常见目录说明:
- /bin: 存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;
- /etc: 存放系统管理和配置文件;
- /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是/home/user,可以用~user 表示;
- /usr : 用于存放系统应用程序;
- /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把 tomcat 等都安装到这里;
- /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
- /root: 超级用户(系统管理员)的主目录(特权阶级o);
- /sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等;
- /dev: 用于存放设备文件;
- /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
- /boot: 存放用于系统引导时使用的各种文件;
- /lib : 存放着和系统运行相关的库文件 ;
- /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
- /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
- /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows 下叫什么.chk)就在这里。
三、软件安装方式
这篇来说一下Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别:
1、文件位置
系统命令:一般在/bin和/sbin目录中,或为shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中
2、主要用途
系统命令:完成对系统的基本管理工作,例如IP配置、管理账户
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
3、适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面
4、运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
本文中用的CentOS系统
一、rpm命令
1、使用rpm命令安装扩展名为".rpm"的软件包
格式:rpm [选项] RPM包文件
常用选项:
-i:安装一个新的rpm软件包
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息
--force:强制安装所指定的rpm软件包
--nodeps:安装软件时,忽略依赖关系
(1)安装没有依赖包的.rpm软件
备注:1)在安装软件时,一般选项 -ivh 一起使用,这样可以看到安装进度与安装信息;
2)默认情况下光盘挂载在/media目录下,所以安装软件包时,必须进入到软件包的当前目录/media/CentOS_6.5_Final/Packages目录中才可以安装,安装的软件存放在光盘上,,如果安装软件包时,当前目录是桌面,那么进入Packages目录的步骤如下:
3) .rpm包的一般格式:
(2)安装有依赖关系的.rpm软件包,可以同时将依赖包与软件包一起安装,下图中安装gcc-4.4.7-4.el6.x86_64.rpm软件包时,有两个依赖包,所以安装时,三个软件包一起安装
2、升级或更新.rpm软件包
格式:rpm [选项] RPM包文件
常用选项:
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
--nodeps:升级软件时,忽略依赖关系
3、卸载指定的.rpm软件包
格式:rpm -e 软件名
--nodeps:卸载软件时,忽略依赖关系
4、查询已安装的.rpm软件包
格式:rpm -q[子选项] [软件名]
常用子选项命令:
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
(1)、查看系统中已安装的所有RPM软件包
(2)、查看系统中某一个软件包,rpm -qa命令后面加上软件名,软件名必须输入全,不能仅输入nss
在工作上常用rpm -qa | grep 软件包名,来查询软件包,用grep过滤一下
(3)、查看软件包是否有安装
5、查询文件或目录是哪个软件包安装的
格式:rpm -qf 文件或目录名
6、查询未安装的.rpm软件包文件
格式:rpm -qp[子选项] RPM包文件
常用的子选项:
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
查询未安装的软件包时,必须输入整个安装包的名称,而查询已安装的软件包时,只要输入软件包名就可以了
二、yum命令
1、yum源的获取
使用yum命令时,必须依赖于yum源,而yum源可以从互联网获取,也可以建立本地的yum源;
从互联网获取的yum源,前提条件必须连接互联网,连接互联网后,直接使用yum命令安装,默认情况yum源的配置文件是在/etc/yum.repos.d目录下,打开/etc/yum.repos.d,可以看到yum源默认用的CentOS官网的。
如果无法连接外网,那么就需要建立本地的yum源,当有光驱时,建立本地yum源的步骤:
(1) 在系统根目录下新建一个目录abc;
(2) 将系统安装光盘挂到根/abc目录下;
(3) 在/etc/yum.repos.d/目录下新建一个xxx.repo的yum源文件,如新建的yum源文件名称为testyum.repo,新建testyum.repo文件前,需要先将/etc/yum.repos.d/目录下的文件全部删除;
在testyum文件中输入下面的内容:
[yunSource] #yum源名称
name=yumSource #yum源名称
baseurl=file:///abc #yum源所在的本地路径,file://是指本地硬盘上
gpgcheck=0 #不校验软件包是不是官方发布的
(4)文件输入完成后保存并退出,查看/etc/yum.repos.d目录下已生成一个testyum.repo的文件,用命令yum repolist all 查看一下建立的yum源仓库是否建立成功;
(5)yum clean all 清空一下缓存
(6)yum repolist 重新加载库
(7) 这样就可以用yum源安装软件包了;
备注:如果Linux可以上外网,baseurl可以用网易的镜像源:http://mirrors.163.com/.help/CentOS6-Base-163.repo
2、使用yum命令来安装软件包
格式:yum install 软件名 [-y]
-y:如果使用-y,那么在安装软件时命令行就不会出现"Is this ok[y/N]"这条提醒语句了,更不需要在命令行输入y或N了,直接安装软件。
备注:对于安装有依赖包的软件,用yum命令特别方便,如果用rpm命令,就必须要先装依赖包再装软件包,而yum命令会直接匹配依赖包然后直接安装
3、清空yum源的缓存
4、卸载软件包
5、列出所有已安装的软件包
6、列出所有可安裝的软件包
7、列出所有软件包的信息或单独一个软件包的信息,命令yum info 是列表所有软件包的信息
8、使用yum命令安装组套件
格式:yum groupinstall 组名
使用yum grouplist命令可以查询到组名
如果有图形界面,那么在系统--管理--添加/删除软件页面,可以查看到组名
三、编译安装源码包
首先说一下使用源代码安装软件的优点:
可以获得最新的软件,及时修复bug;
根据用户的需求,灵活定制软件功能
编译安装源包必须要有源代码编译环境
编译源代码步骤
configure、Makefile.in一般是项目管理器自动生成的,而gcc编译器需要安装,使用yum命令安装
源码编译安装的基本过程:
1、解压 --- tar
解包、释放出源代码文件,习惯上将软件包释放到/usr/local/src/目录,解包后的源代码文件位置:/usr/local/src/软件名-版本号/
互联网上下载一个源码文件
下载下来的源码包,可以使用md5sum校验工具,进行完整性校验,防止源码包被别人串改,校验方法:计算MD5校验和,并与官方提供的值相比较,判断是否一致,如果一个致,代表没有串改,如果不一致,就表明已被别人串改了。
用firefox浏览器下载文件默认保存到当前用户root的主目录/root/Downloads目录下,如果是其它普通用户登陆的,默认保存到/home/普通用户名/Downloads目录下
用tar命令解压
备注:(1)对于tar.gz这样的压缩格式,要用tar命令来解压,如果是其它压缩格式,就需要用其它命令;
(2)-C,C是大写的C,这个参数用来指定解压到哪个目录;
(3)如果命令行中不用-C /usr/local/src,那么解包命令将会将文档解包在当前目录下;
(4)选项zxvf
z:gz压缩格式,如果是bz2压缩格式,那么选项就需要用j
x:解压文件
v:详细的列出处理的文件
f:指定文件名
解压后的文件
进入这个解压后的文件,可以看到源码目录
2、配置 --- ./configure
针对当前系统、软件环境,配置好安装参数
执行"./configure --help"可以查看帮助,典型的配置选项:--prefix=软件安装目录
使用./configure,将软件安装到/usr/local/apache2目录中
备注:(1)/usr/local/apache2目录是随意指定的一个安装目录,也可以安装到其它目录下;
(2)使用./configure配置时,需要将工作目录切换到软件源码所在的目录;
(3)使用源码目录中的configure脚本,由于configure是软件程序而不是系统命令,所以执行时,需要指明路径,由于目前是在httpd-2-2.15,可以使用相对路径 ./configure,.(点)的意思是指当前目录httpd-2-2.15目录;
(4)--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱;如果使用--prefix选项可以将安装文件放到/usr/local/apache2目录中,有利于查找、卸载软件或移植软件,当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净,移植软件只需拷贝整个目录到另外一个机器即可;
3、编译 --- make
将源代码文件变为二进制的可执行程序,用make命令
4、安装 --- make install
使用安装make install命令安装程序
使用安装/usr/local/apache2/bin目录下的apachectl程序,用./apachectl start启动安装程序
关闭程序
备注:make与make install命令可以合写成一行
————————————————
版权声明:本文为CSDN博主「馨若梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_24394093/article/details/89401180