实际开发中Linux相关知识点整理(简单入门..)
2018-02-07 20:46
671 查看
第一部分:个人对linux简单理解及工具的使用
Linux系统:与Windows、ios一样的操作系统,性能相对更稳定,常用于服务器。
分类1:图形化版(没有Windows好看)和服务器版(性能稳定,一些独特优势)
分类2:内核版本和发行版本。Linux是开源的,内核版本即是原生的,免费的。发行版本是二次开发,各种发行公司开发了好多种,如ubuntu(免费,图形化界面比较华丽)、CentOS(阿里云服务器、目前公司IMSVA产品),等等..
安装:开发或学习中,一般会在Windows上安装虚拟机,然后在虚拟机中安装Linux系统。本人亲测的VMware虚拟机和CentOS7,安装步骤不陈述,资源如下
虚拟机链接:https://pan.baidu.com/s/1brhihv5密码:h8hd
;CentOS7文件超过4G(需要官网自己下载) 。
注:vmware有快照功能,类似一键恢复。一般在新建环境后,保存快照(snapshot),注意要先关闭linux系统(不然时间我也不知道要多久,还关不掉,我重装系统了..)
常用辅助工具:Xshell5(远程连接)、Xftp5(win和linux系统的文件管理),链接:https://pan.baidu.com/s/1ggoRpSJ密码:chpy
有开发过程中服务器一般不在本地,故需要远程链接,而且Xshell工具更加顺手,一些功能更加便捷;Xftp5(本地Windows环境硬盘文件与Linux环境下文件的上传下载
上图时Xshell远程连接登陆界面。
ftp软件如下图:
<
4000
span style="font-family:Simsun;">第二部分:linux常用指令
Linux目录结构
区分文件和目录(文件夹),目录包含文件,文件存放在目录下
/ :是根目录(顶级目录)
bin:存放二进制可执行文件
sbin:root才能访问的二进制可执行文件
usr :存放共享的系统资源,类似于Windows下的programfiles
lib :类库
等等,不做具体介绍,
一.目录相关
1. cd
访问目录
区分 : 绝对路径(全路径)与相对路径(相对当前目录)
绝对路径
例:cd /opt/trend/imss
访问根目录下的opt目录下的trend目录下的imss目录
例:cd /
访问根目录(个人理解绝对路径就是从根目录开始写,一直到访问的那个子目录)
相对路径
例:cd .. 或 cd ../
访问当前目录的上一级目录(相对的)
例:cd
trend 访问当前目录(当前目录为/opt)下的子目录trend
例:cd ../etc/sysconfig
访问当前目录的上级目录下子目录下etc目录的子目录sysconfig
小技巧:
tab键有自动补全名字和提示的功能
2.查看当前所在目录
pwd
3. ls
目录
例:ls
列出当前目录下子目录和文件
例:ls
/opt/trend/imss 列出指令目录下子目录和文件
ls ../etc/sysconfig/
条件
-a -l 等等,放在ls
与目录之间
例:ls –a /opt
列出指令目录下子目录和文件(包含隐藏文件)
例:ls –l
列出当前目录下子目录和文件的详细属性(包含权限、创建时间等..)可简写为ll
例:ls –al /opt
两种条件组合(多了隐藏文件+详细属性),
注:像这种条件组合,之后的各种操作会常见,具体分析
4. mkdir
目录
mkdir
目录名
mkdir /opt/
目录名 两条语句分别在当前目录和指定目录创建了新的目录
5 .rm
目录
rm –r
目录名
例:rm –r /opt/trend
删除/opt/trend目录下的所有子目录和文件(-r就是条件,删除包括子目录 及递归删除)
rm –rf
目录名
例:rm –rf trend
删除当前目录下trend目录的所有子目录和文件 (-f
是条件,强制删除)
注:-r
和-f 组合成 –rf
6.cp
目录
cp –rf
目录名称 位置 例:cp –rf imss /opt/
将当前目录中的imss目录(及子目录)拷贝到/opt/路径下
cp –rf /opt/trend/imss /opt (假设上例的当前目录为/opt/trend),那两例执行结果一样
注:-a 是条件将目录的所有信息拷贝(包括权限信息)
-f
是条件不要询问y Or n ,实际开发如遇到-f
条件后仍询问,傻瓜做法在cp前加\ 例:\cp –rf
目录名 新位置
7.find
目录 条件 查找内容
例:find /opt –name “*dmarc*”
查找/opt目录及其子目录下,名字中含有“dmarc”的目录或文件
二.文件
1.touch
文件名
例:touch dome.sh
在当前目录下创建了一个demo.sh文件
2.查看文件
cat/more/less/ltail等指令均可查询文件
cat
文件名
例:cat dome.sh
查看dome.sh文件的最后一屏内容
一般查看内容较少的文件,用cat。
随着Xshell工具的出现,在Windows下连接linux系统(有滚动条),cat查看即可。
3.vi/vim
文档编辑器
个人只用过vi
vi
文件名 >>进入查看模式,方向键上下到要编辑的位置>>按下键盘i >>进入编辑模式 >>编辑完成,按下键盘Esc键>>退出到查看模式>>输入冒号:>>然后输入退出指令>>wq+回车(保存退出)<<q!(强制不保存退出)>>完成编辑
注:正常的开发过程,都是在windows上开发,然后放到Linux服务器上调试,调试过程中需要修改linux下的一些配置文件,则需要用到vi指令。(如远程debug调试时修改Tomcat.sh文件)
4.chmod 750
文件名
如图 ls –l
查看文件权限
第一列文件权限,由十个字符组成,将分割成1~3~3~3
第一个位置
d代表目录
-代表文件
第2~4位置 代表属主权限 r代表读取权(4)
w代表写入权(2)
x代表执行权(1)
–代表此位置无权限(0)
在属主权限里,如果有读取权,则第2位置为r,否则为-
如果有写入权,则第3位置为w,否则为-
如果有执行权,则第4位置为x,否则为-
第5-7位置 代表属组权限 同理
第8-10位置 代表其他用户权限 同理
例:
chmod 750 demo.sh
修改domo.sh权限,7(4+2+1)代表属主,有读取权、有写入权、有执行权 >>rwx
5(4+0+1)代表属组,有读取权、无写入权、有执行权 >>r-x
0(0+0+0)代表其他,无读取权、无写入权、无执行权 >>---
5.tar
目录或文件的打包压缩及解压
tar –zcvf
打包压缩后的名字 打包目录或文件
>>> 例:tar –zcvf imss.dmarc.20180207.tar.gzimss
将当前目录下的imss目录打包压缩为” imss.dmarc.20180207.tar.gz”
tar –xvf
要解压的文件名字
>>>
例:tar –xvf
imss.dmarc.20180207.tar.gz 将其解压到当前位置(注:解压后报名为原名,即imss)
tar –xvf
要解压的文件名字
–C 指定的解压位置
6.grep
查找文件内容
grep
要查找的内容
文件名字
例:grep echo /opt/mytest/dome.sh
搜索dome,sh文件中包含”echo”的部分
三.系统的指令
1.ifconfig >>查看网络连接
注:重启网卡遇到问题,链接
>> https://jingyan.baidu.com/article/e75aca85006645142edac6df.html
2.netstat-an
端口号 >>查看端口情况
3.ps –ef >>查看当前系统中运行的进程
4 |
管道
A | B
管道左边的东西A作为管道右边东西B的输入
例:
ps –ef | grep damrc
查询当前运行进程中包含dmarc的进程
第三部分:实际使用中例子分析
需求:由于系统新添加了DMARC功能,在开发完成后,需要将编译通过的class文件及jsp文件一次性替换或新添到已有虚拟机环境中。
做法:写了以下的简单的shell脚本(个人理解,就是把一些命令行下需要手动一个一个敲的指令,加之条件判断,语法限制,封装成一个文件,使其自动有序执行)
#!/bin/bash
#
tar xvf imss.dmarc.debug.20180207.tar
chmod 750 imss -R
chown imss:imss imss -R
ps -elf|grep imssmgr
/opt/trend/imss/script/imssctl.sh stop
\cp -rf /opt/trend/imss/bin /opt/trend/imss/bin_org
\cp -rf /opt/trend/imss/lib /opt/trend/imss/lib_org
\cp -rf /opt/trend/imss/config /opt/trend/imss/config_org
\cp -a imss ../trend/
/opt/trend/imss/script/imssctl.sh start
sleep 180
ps -elf|grep imssmgr
/opt/trend/imss/PostgreSQL/bin/psql imss sa -f /opt/trend/imss/script/InsertDmarc.sql
sleep 5
echo "All works are ready and begin to restart!! "
/opt/trend/imss/script/imssctl.sh restart
sleep 180
ps -elf|grep imssmgr
>>前两行进行声明
>>tar
解压文件到当前目录(打包之前的目录名为imss)
>>修改imss目录及子目录(-R)下所有文件的权限为750
>>修改文件的属组
>>查看当前imssmgr进程状态(看进程号,,比较下次这个模块有没有重启过)
>>执行imssctl.sh脚本
停止系统
>>拷贝系统原有三个文件并重命名,方便回滚
>>拷贝imss
目录,通过相对地址复制到trend目录下(该目录下存放原有imss目录),对其已有文件进行覆盖替换,新添文件完成拷贝
>>执行脚本打开系统,并使其延时180秒,并查看现在imssmgr进程号
>>执行sql语句对数据库表进行更新
>>再次重启,完成更新。
Linux系统:与Windows、ios一样的操作系统,性能相对更稳定,常用于服务器。
分类1:图形化版(没有Windows好看)和服务器版(性能稳定,一些独特优势)
分类2:内核版本和发行版本。Linux是开源的,内核版本即是原生的,免费的。发行版本是二次开发,各种发行公司开发了好多种,如ubuntu(免费,图形化界面比较华丽)、CentOS(阿里云服务器、目前公司IMSVA产品),等等..
安装:开发或学习中,一般会在Windows上安装虚拟机,然后在虚拟机中安装Linux系统。本人亲测的VMware虚拟机和CentOS7,安装步骤不陈述,资源如下
虚拟机链接:https://pan.baidu.com/s/1brhihv5密码:h8hd
;CentOS7文件超过4G(需要官网自己下载) 。
注:vmware有快照功能,类似一键恢复。一般在新建环境后,保存快照(snapshot),注意要先关闭linux系统(不然时间我也不知道要多久,还关不掉,我重装系统了..)
常用辅助工具:Xshell5(远程连接)、Xftp5(win和linux系统的文件管理),链接:https://pan.baidu.com/s/1ggoRpSJ密码:chpy
有开发过程中服务器一般不在本地,故需要远程链接,而且Xshell工具更加顺手,一些功能更加便捷;Xftp5(本地Windows环境硬盘文件与Linux环境下文件的上传下载
上图时Xshell远程连接登陆界面。
ftp软件如下图:
<
4000
span style="font-family:Simsun;">第二部分:linux常用指令
Linux目录结构
区分文件和目录(文件夹),目录包含文件,文件存放在目录下
/ :是根目录(顶级目录)
bin:存放二进制可执行文件
sbin:root才能访问的二进制可执行文件
usr :存放共享的系统资源,类似于Windows下的programfiles
lib :类库
等等,不做具体介绍,
一.目录相关
1. cd
访问目录
区分 : 绝对路径(全路径)与相对路径(相对当前目录)
绝对路径
例:cd /opt/trend/imss
访问根目录下的opt目录下的trend目录下的imss目录
例:cd /
访问根目录(个人理解绝对路径就是从根目录开始写,一直到访问的那个子目录)
相对路径
例:cd .. 或 cd ../
访问当前目录的上一级目录(相对的)
例:cd
trend 访问当前目录(当前目录为/opt)下的子目录trend
例:cd ../etc/sysconfig
访问当前目录的上级目录下子目录下etc目录的子目录sysconfig
小技巧:
tab键有自动补全名字和提示的功能
2.查看当前所在目录
pwd
3. ls
目录
例:ls
列出当前目录下子目录和文件
例:ls
/opt/trend/imss 列出指令目录下子目录和文件
ls ../etc/sysconfig/
条件
-a -l 等等,放在ls
与目录之间
例:ls –a /opt
列出指令目录下子目录和文件(包含隐藏文件)
例:ls –l
列出当前目录下子目录和文件的详细属性(包含权限、创建时间等..)可简写为ll
例:ls –al /opt
两种条件组合(多了隐藏文件+详细属性),
注:像这种条件组合,之后的各种操作会常见,具体分析
4. mkdir
目录
mkdir
目录名
mkdir /opt/
目录名 两条语句分别在当前目录和指定目录创建了新的目录
5 .rm
目录
rm –r
目录名
例:rm –r /opt/trend
删除/opt/trend目录下的所有子目录和文件(-r就是条件,删除包括子目录 及递归删除)
rm –rf
目录名
例:rm –rf trend
删除当前目录下trend目录的所有子目录和文件 (-f
是条件,强制删除)
注:-r
和-f 组合成 –rf
6.cp
目录
cp –rf
目录名称 位置 例:cp –rf imss /opt/
将当前目录中的imss目录(及子目录)拷贝到/opt/路径下
cp –rf /opt/trend/imss /opt (假设上例的当前目录为/opt/trend),那两例执行结果一样
注:-a 是条件将目录的所有信息拷贝(包括权限信息)
-f
是条件不要询问y Or n ,实际开发如遇到-f
条件后仍询问,傻瓜做法在cp前加\ 例:\cp –rf
目录名 新位置
7.find
目录 条件 查找内容
例:find /opt –name “*dmarc*”
查找/opt目录及其子目录下,名字中含有“dmarc”的目录或文件
二.文件
1.touch
文件名
例:touch dome.sh
在当前目录下创建了一个demo.sh文件
2.查看文件
cat/more/less/ltail等指令均可查询文件
cat
文件名
例:cat dome.sh
查看dome.sh文件的最后一屏内容
一般查看内容较少的文件,用cat。
随着Xshell工具的出现,在Windows下连接linux系统(有滚动条),cat查看即可。
3.vi/vim
文档编辑器
个人只用过vi
vi
文件名 >>进入查看模式,方向键上下到要编辑的位置>>按下键盘i >>进入编辑模式 >>编辑完成,按下键盘Esc键>>退出到查看模式>>输入冒号:>>然后输入退出指令>>wq+回车(保存退出)<<q!(强制不保存退出)>>完成编辑
注:正常的开发过程,都是在windows上开发,然后放到Linux服务器上调试,调试过程中需要修改linux下的一些配置文件,则需要用到vi指令。(如远程debug调试时修改Tomcat.sh文件)
4.chmod 750
文件名
如图 ls –l
查看文件权限
第一列文件权限,由十个字符组成,将分割成1~3~3~3
第一个位置
d代表目录
-代表文件
第2~4位置 代表属主权限 r代表读取权(4)
w代表写入权(2)
x代表执行权(1)
–代表此位置无权限(0)
在属主权限里,如果有读取权,则第2位置为r,否则为-
如果有写入权,则第3位置为w,否则为-
如果有执行权,则第4位置为x,否则为-
第5-7位置 代表属组权限 同理
第8-10位置 代表其他用户权限 同理
例:
chmod 750 demo.sh
修改domo.sh权限,7(4+2+1)代表属主,有读取权、有写入权、有执行权 >>rwx
5(4+0+1)代表属组,有读取权、无写入权、有执行权 >>r-x
0(0+0+0)代表其他,无读取权、无写入权、无执行权 >>---
5.tar
目录或文件的打包压缩及解压
tar –zcvf
打包压缩后的名字 打包目录或文件
>>> 例:tar –zcvf imss.dmarc.20180207.tar.gzimss
将当前目录下的imss目录打包压缩为” imss.dmarc.20180207.tar.gz”
tar –xvf
要解压的文件名字
>>>
例:tar –xvf
imss.dmarc.20180207.tar.gz 将其解压到当前位置(注:解压后报名为原名,即imss)
tar –xvf
要解压的文件名字
–C 指定的解压位置
6.grep
查找文件内容
grep
要查找的内容
文件名字
例:grep echo /opt/mytest/dome.sh
搜索dome,sh文件中包含”echo”的部分
三.系统的指令
1.ifconfig >>查看网络连接
注:重启网卡遇到问题,链接
>> https://jingyan.baidu.com/article/e75aca85006645142edac6df.html
2.netstat-an
端口号 >>查看端口情况
3.ps –ef >>查看当前系统中运行的进程
4 |
管道
A | B
管道左边的东西A作为管道右边东西B的输入
例:
ps –ef | grep damrc
查询当前运行进程中包含dmarc的进程
第三部分:实际使用中例子分析
需求:由于系统新添加了DMARC功能,在开发完成后,需要将编译通过的class文件及jsp文件一次性替换或新添到已有虚拟机环境中。
做法:写了以下的简单的shell脚本(个人理解,就是把一些命令行下需要手动一个一个敲的指令,加之条件判断,语法限制,封装成一个文件,使其自动有序执行)
#!/bin/bash
#
tar xvf imss.dmarc.debug.20180207.tar
chmod 750 imss -R
chown imss:imss imss -R
ps -elf|grep imssmgr
/opt/trend/imss/script/imssctl.sh stop
\cp -rf /opt/trend/imss/bin /opt/trend/imss/bin_org
\cp -rf /opt/trend/imss/lib /opt/trend/imss/lib_org
\cp -rf /opt/trend/imss/config /opt/trend/imss/config_org
\cp -a imss ../trend/
/opt/trend/imss/script/imssctl.sh start
sleep 180
ps -elf|grep imssmgr
/opt/trend/imss/PostgreSQL/bin/psql imss sa -f /opt/trend/imss/script/InsertDmarc.sql
sleep 5
echo "All works are ready and begin to restart!! "
/opt/trend/imss/script/imssctl.sh restart
sleep 180
ps -elf|grep imssmgr
>>前两行进行声明
>>tar
解压文件到当前目录(打包之前的目录名为imss)
>>修改imss目录及子目录(-R)下所有文件的权限为750
>>修改文件的属组
>>查看当前imssmgr进程状态(看进程号,,比较下次这个模块有没有重启过)
>>执行imssctl.sh脚本
停止系统
>>拷贝系统原有三个文件并重命名,方便回滚
>>拷贝imss
目录,通过相对地址复制到trend目录下(该目录下存放原有imss目录),对其已有文件进行覆盖替换,新添文件完成拷贝
>>执行脚本打开系统,并使其延时180秒,并查看现在imssmgr进程号
>>执行sql语句对数据库表进行更新
>>再次重启,完成更新。
相关文章推荐
- Java开发时经常使用的相关Linux命令整理
- linux内核开发相关知识点
- 与音频相关的技术知识点总结(Linux方向的开发)
- 【树莓派开发-Linux】sudo apt-get 相关命令整理
- 收集整理的ARM嵌入式linux开发入门视频教程
- Linux网络编程-简单的客户端和服务器通讯程序开发入门(2)
- Linux 上简单的MeeGo 开发 QT 程序(适用于刚入门同学)
- 与音频相关的技术知识点总结(Linux方向的开发)
- IOS 游戏/应用开发相关知识点整理
- linux 知识点整理,从虚拟机安装到常用开发软件在linux上的安装命令
- IOS 游戏/应用开发相关知识点整理
- linux应用开发相关知识点
- 与音频相关的技术知识点总结(Linux方向的开发)
- 【安卓SDK学习之anyChatSDK】 1_2 相关安卓知识点(根据官方HelloAnyChat的demo整理的简要的开发流程)(2016-06-08 15:12)
- 几种Linux嵌入式开发环境的简单介绍
- linux操作系统下c语言编程入门--Linux下C开发工具介绍
- linux操作系统下c语言编程入门--Linux下C开发工具介绍
- ArcGIS入门与应用相关资料整理
- JSP开发入门(五)--JSP其他相关资源
- 收集整理的Linux下的小技巧(四) - 在Ubuntu创建自己的开发环境