Linux下制作bin可执行文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下制作bin可执行文件相关的知识,希望对你有一定的参考价值。
参考技术A 一 Linux安装文件Linux常见的安装为tar,zip,gz,rpm,deb,bin等。我们可以简单的分为三类,
第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件;
第二:对应的有管理工具的deb,rpm等,通常的这类安装文件可以通过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm;
第三:像.bin类,其实就是把sh和zip打包为bin,或把sh和rpm打包为bin等,当在命令行运行bin安装文件时,其实就是bin里面的sh来解压bin中的zip或安装rpm的过程;
.bin安装文件可以认为是sh文件和zip或rpm等其他安装文件的打包形式。如下图:
shell脚本:
脚本很简单,关键在于sed那一行,大概意思是匹配exit 0,如果匹配到了,把它后面的打印出来。
然后将安装包打包成 install.tar.gz,如:
最终将上述两个文件打包成bin文件,并赋予执行权限
执行bin文件和执行shell脚本一样,直接运行
Tip:提取文件也可以使用tail来分割文件的,这个有时候可能会失败(网上很多人都说tail方法可能有各种问题,我测试没碰见)。建议使用sed方式提取文件
Linux学习(第一篇)
Linux 系统学习
Linux的具体目录结构
root |
该目录为系统管理员目录,root是具有超级权限的用户; |
Bin->usr/bin |
存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行 |
usr |
是linux的系统资源目录,里边存放都是一些系统可执行文件或者系统以来的一些文件库 |
usr/local/bin |
存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行 |
lib->usr/lib |
这个目录存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库 |
boot |
这个目录存放启动linux时使用的一些核心文件,包括一些链接文件以及镜像文件 |
dev |
该目录存放的是linux的外部设备,linux中的设备也是文件的形式存在 |
etc |
这个目录存放所有系统管理所需要的配置文件 |
Home |
用户的主目录,在linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫做用户的根目录;用户登录以后,默认打开自己的根目录; |
opt |
这是给linux额外安装软件所存放的目录,比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空 |
常用命令
查询IP:ifconfig |
mkdir 创建目录 |
vim test.txt 创建并打开这个文件 ESC键退出编辑模式,返回到一般模式。 命令模式:在一般模式下,按 冒号shift + : ,进入命令模式。输入q! -----不保存编辑内容; 复制当前行:在 一般模式下,按 yy 把光标所在行复制到剪切板;按p,把剪切板中的内容粘贴到光标所在的位置。
复制当前行往下5行:在一般模式下,按5yy 把光标所在的行往下5行复制到剪贴板;然后粘贴光标(p)所在的下一行。
一般模式下,使用快捷键到大文档的最首行[gg] 和最末行[G]
|
添加用户:useradd 用户名 (一般是超级管理员才有权限;)在linux中任何一个用户都至少属于一个组,新建用户如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。 切换用户:su 用户名 eg: su zhangsan 备注 |
添加组:groupadd 组名 eg: groupadd dev 把用户从组中移除: gpasswd –d 用户名 组名 eg: gpasswd –d zhangsan dev 添加用户时,指定所属的组(主组): useradd –g 组名 用户名 eg: useradd –g dev lisi 用来查看linux系统手册上的帮助信息:man 命令 eg: man ls 分屏显示、按回车翻一行,按空格翻一页,按q退出查看; 查看当前所在的目录:pwd 查看指定目录下所有的子目录:ls [指定目录] eg: ls /home 以列表显示 ls –l [指定目录] 显示指定目录下所有子目录和文件(包括虚拟的目录) ls –a /home 以列表形式显示指定目录下所有的子目录和文件 ls –al /home |
切换目录: cd 目录名 绝对目录: cd /opt/testDir 以盘符开始的目录 相对目录: cd testDir 在任何目录下进入根目录直接:cd ~ .. : 当前目录的上一级目录,从当前目录开始查找它的上一级目录; . : 当前目录 eg: ./xxx.sh |
创建一个或者多个空文件: touch 文件名列表(文件名之间用空格隔开) touch test1.txt test2.txt 复制文件: cp source(源) dest(目标) eg: cp t1.txt test2 把t1.txt文件复制到test2目录中 eg: cp test2 test5 把test2目录复制到test5目录中 注意:只能复制空目录 递归复制文件 cp –r source(源) dest(目标) 删除文件或者目录: rm 文件名 或者目录名 Eg: rm t1.txt 提示删除 rm –f t2.txt 强制删除 rm –r test2 递归提示删除 rm –rf test3 递归强制删除 |
移动目录或者文件 mv source(源) dest(目标) mv test.txt test1 mv test1 test2 mv t1.txt t2.txt 文件重命名,若文件存在,则会提示是否需要覆盖 |
echo: 输出系统变量或者常量的值到命令行终端; echo $JAVA_HOME echo hello world! |
把前一个查看命令的结果输出到指定的文件中:查看命令 > 文件名 Ls > test.txt 如果目标文件不存在则会新建一个文件,并且将ls命令的结果输出到文本中 Cat test1.txt > test2.txt 将文本拷贝一份 |
查看或者设置系统的日期或者时间 date date +%Y 系统当前的年份 date +%m 系统当前的月份 date +%d系统当前的日期 date ‘+%Y-%m-%d %H:%M:%S’ 按yyyy-MM-ddd HH:mm:ss 格式显示 查看系统日历:cal cal: 查看当前月份的日历 eg: cal 2020
|
搜索文件或者目录的命令:find 关键字 [-name 默认按名称] [-siize] 按文件大小搜索 [-user]按文件的所有者搜索 Eg: find *.txt 搜索当前目录下,所有的.txt文件 find *e* 搜索当前目录下所有包含e的 find /etc *.txt 搜索指定目录下的txt文件 find /etc -size +5M 搜索大于5M的文件 find /etc –user zhangsan 搜索/etc目录下素有者是zhangsan的文件和目录
|
locate:在整棵目录树种搜索文件或者目录,都是根据名称搜索,效率高。 updated 先同步数据库 然后locate 关键字 |
搜索过滤命令,在前一个搜索命令的结果中进行按名称进一步过滤, 搜索命令 |grep [选项]过滤条件 查看命令 |grep [选项]过滤条件 –i 忽略大小写 -n 显示行号
|
压缩或者解压单个文件 gunzip .gz压缩包名----解压.gz压缩包,并且会把原来的.gz压缩包删除 压缩或者解压多个文件和目录: zip目录压缩包名称(通常使用.zip压缩包) 文件或者目录列表 eg: zip test.zip ret.txt test1.txt uzip 压缩包名(.zip) -d 解压目录名(绝对或者相对): 将指定的.zip压缩包解压到当前目录 压缩或者解压多个文件和目录 tar 选项 目标压缩包名称(xxx.tar.gz) 文件或者目录列表 tar –c [产生.tar.gz打包文件] -C[指定解压到哪个目录] tar -x[解压tar.gz文件] -v[显示详细信息] -f[指定压缩后的文件名] -z[打包同时压缩] 打包操作 tar –zcvf xxxxx.tar.gz 文件/目录列表 解压操作 tar –zxvf xxxx.tar.gz -C 解压目录名 |
文件或者目录与组基本介绍 在linux中,每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。 在文件或者目录看,linux系统中所有的用户分为三类: 所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改; 在linux中,任何文件或者目录都有三种权限,读,写,执行 |
修改文件所有者---chown 新的所有者 文件名 或者 chown 新的所有者:新的组 文件名 Eg: chown zhangsan test.txt 修改文件或者目录的所在组: chgrp 新的组名 文件名 eg: chgrp dev test.txt |
对于文件而言, 读:可以读取、查看文件的内容,比如: cat、more、less、head、tail等 写:可以修改文件的内容,比如:vi 或者vim等 执行:如果文件是可执行文件,(.sh),可以直接运行。 对于目录而言: 读:可以读取、查看目录下边的内容,比如: ls等; 写:可以修改目录中的内容,创建子目录、创建文件、删除文件,重名文件或者目录 执行:可以进入该目录,比如cd |
任何一个文件或者目录都有三部分权限:所有者权限,同组用户权限,其他组用户权限。 第一部分权限:所有者权限,文件或者目录的所有者对该文件所有的权限,使用rwx分别表示读、写、执行的权限。比如:rwx,拥有读写执行的权限,r-x拥有读写的权限, 第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限。 第三部分权限:其他组用户权限,文件或者目录的其他组用户堆顶该文件所拥有的权限。 查看文件或者目录的权限:ls -aul |
修改文件或者目录的权限: 用r、w、x分辨表示读写执行的权限; 用u、g、o、a分别表示所有者、同组用户、其他组用、所有用户修改权限 用+、-、= 分别表示给指定用户增加、减少、设置对应的权限。 Eg: chmod g-w,o+w t5.txt chmod g=rwx t5.txt Chmod 777 t5.txt chmod 655 t5.txt |
以上是关于Linux下制作bin可执行文件的主要内容,如果未能解决你的问题,请参考以下文章