您的位置:首页 > 运维架构 > Linux

实际开发中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