Linux开发基础(上)

开发学习需要

1、vm或者vb虚拟机,版本追求最稳定就行
2、centos7环境
3、Tomcat,jdk和mysql的linux版本(笔者已准备好)
4、Xshell和Xftp的准备

学习java开发,Linux开发是必须要学会的,这里我总结一些知识点,作为笔记

Centos7的安装

常态的虚拟机安装,不过分区的时候,注意

  1. swap作为缓冲区,建议不要太小,一般就2/3G就行
  2. /boot是Linux的系统启动的引导文件存放,2G就行
  3. /是根目录,可以理解为其余全部硬盘大小(Linux里差不多是树型结构目录,万物皆文件)
  4. /home是家目录,这里设置内存的时候和/的大小不冲突,家目录是被包含在根目录里的
  5. Linux的内存进制与windows不同,但是相差不大
  6. ext4文件系统:支持更大的文件,理论下可已创建无限的文件
  7. Linux已知的是mbr引导分区,最多只可以建立4分主分区

网络的选择上注意:

结合安全性,NAT模式是最试用服务器的,

  1. 桥接模式是将虚拟机放置于客户机同一个局域网内,dhcp可以自动分配ip,导致抢占或被强占其余设备的ip,其次一旦局域网被攻破,服务器和数据库服务器极为危险
  2. NAT模式是利用虚拟网卡---VMnet8(在物理机网络设置里可以查到)于局域网不在一个网段里,并且物理机又可以利用8号网卡与虚拟机相通信的特点
  3. 给虚拟机设置静态的ip:因为vm虚拟机中虚拟机的路由器的DHCP(ip分配器)是排队分配的,可能会导致学习过程中,发现xshell和xftp连不上,到头来发现centos的ip又又又变了,设置静态ip即可防止此现象。设置的过程中DNS要和默认网关一致(只有虚拟机NAT模式下这样设置)

在这里插入图片描述

文件

  • Linux的文件特点:一切皆文件

这里的一切真的是一切,所有的设备都存放在dev里,比如硬盘sda,sdb等等等,都是以文件的方式存放在系统中。

文件结构

类似于树根模式,从树根到最深的目录,都严格分清了文件

在这里插入图片描述

各级目录的作用

  • /bin目录(/usr/bin,/usr/local/bin)
    是Binary的缩写,这个目录存放着最经常使用的命令
  • /sbin(/usr/sbin,/usr/local/sbin)
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /home
    存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。内有文档,桌面啥的等等。新建的用户没有登陆过不会产生!!! `
  • /root
    超级用户(管理员)的家目录,也称超级权限者的主目录。
  • /lib
    系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。可以理解为程序运行依赖库
  • /lost+found
    一般情况下,是隐藏和空的,只有在Linux客户机不正常情况关机,直接关电源那种,会产生一些文件在这里面。
  • /etc
    所有的系统管理所需要的的配置文件和子目录,比如jdk的环境在/etc/profile中配置等等,记住配置文件夹就好!
  • /usr
    类似于windows下的c盘的progfiles文件,存放用户所有的软件安装地。(重点
  • /boot
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。Linux玩的不熟悉的同学绝对不要碰!!!自己的安装的东西别放这里
  • /proc
    这个目录是一个虚拟的目录, 它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。同上,这里Linux玩的不熟悉的同学绝对不要碰!!!这里的文件运行的特点,直接对接内存,指令执行速度特别快,这也是新手不建议碰的原因
  • /srv
    服务的缩写,存放服务启动之后需要提取的数据,也不建议新手碰,不然服务启动不了。
  • /sys
    这是linux2. 6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统svsfs。新手莫碰~
  • /temp
    存放临时文件的
  • /dev
    类似于windows里的设备管理器,所有的硬件设备都以文件的形式存放在这里(重要)
  • /media(Centos6)
    linux系统会自动识别一些设备, 例如U盘、光驱等等,当识别后,linux会把识别的设备挂载(放)到这个目录下。
  • /run/media/root(Centos7)
    entos7以后的镜像文件和外设存放的地方
  • /run
    存放进程产生的临时文件,还有上面的用途。
  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里的内容了。
  • /opt
    这是给主机额外安装软件所摆放的目录。比如你安装-个orale数据库则就可以放到这个目录下。默认是空的。注意这里是用户自己的软件,用的最多的目录文件。
  • /usr/local
    这是另一个给主机额外安装软件所摆放的目录。一 般是通过编译源码方式安装的程序。/opt是直接安装的软件,而/usr/local是编译源码产生的东西
  • /var
    存放不断扩充的日志文件的文件夹。

  • /bin目录(/usr/bin,/usr/local/bin)和/sbin(/usr/sbin,/usr/local/sbin)是默认配置在环境变量path中的,所以在这里面的指令任意位置都可以执行
    在这里插入图片描述
    Linux下冒号分割,windows下是分号分割

Vi和Vim的熟练运用

vi和vim都是Linux下的基本默认文本打开方式,vim相当于vi的基础扩充。

编辑模式

  • 可以编写文字
  • 要按下i, a ,0,等字母后才能进入编辑模式
  • 进入后左下角会有[insert][replace]的字样
  • 按下[ESC]或者CTRL+C这个按键即可退出编辑模式

进入编辑模式按键如下

i         在当前光标前插入
a         在当前光标后插入
o         在当前光标行的下一行插入
S		  删除当前字符并进入编辑
S		  删除整行并进入编辑
R		  进入替换模式,替换光标后内容
dd

命令模式

  • 可以进行存盘、退出、显示行号、 搜索、批量替换等操作。
  • 要在一般模式下输入"/“或”:"可进入命令模式
  • 进入后光标移至最下端
:w				  		保存
:q       		  		退出
:! 				  		强制执行
:wq 			  		保存退出
:%s/old字符/new字符/g	批量替换文本中old字符串
/要查找的词
						n查找下一个,N往上查找
						N查找下一个,n往上查找
:set nu/ :set nonu		显示行号/关闭行号
:noh					取消高亮显示

一般模式

  • 打开文档的默认模式,主要负责查看,和一些基础的修剪。
dd							删除光标当前行
dnd							删除n行
u							撤销上一步
x							删除一个字母Delete(从前往后删)
X							删除一个字母Backspace(从后往前删)
yy							复制光标当前行
p							粘贴
dw							删除个词
yw							复制一-个词
单词的认定是根据连贯性,如果遇到空格那就停止识别

三者的转换

shell命令下键入 vim 路径/文件名后进入默认的一般模式,随后可以再一般模式下对文本信息进行操作。一般模式下可以键入i,a,o等命令以不同的方式进入编辑模式,在编辑模式下可以对文本进行更为详细的操作;在编辑模式下摁下[ESC]或者ctrl+c回到一般模式;同时一般模式下可以键入:set num等等命令进行命令模式的查询文等操作,最后:q或者:wq可以退出命令模式;而一般模式下我们可以按下[ESC]退出vim。

帮助手册以及日期的基本命令

帮助手册

我们有时候对一些命令不熟悉,此时我们可以查看帮助手册进行查询。

  • man
  • –help
    方法与man类似,但是差别就是–help会跳出所有的信息给用户看,而man只会跳出一部分,其余的需要用户按下回车键进行查看。
 man  命令
 例如: man rm(rm --help)
 NAME
       rm - 移除文件或者目录
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
总览
       rm [options"]file...

POSIX(Portable Operating System Interface 可移植的操作系统接口) 选项:
       [-fiRr]

GNU 选项 (最短格式):
       [-dfirvR][--help][--version][--]

描述
       rm移除每个给定的文件。默认情况下,它不能移除目录。但是当给定了-r或者-R选
       项时,在指定目录之下的整个目录树都会被移除(而且对通过`rm                                                 -r'能够移除的目
       录树深度是没有限制的)。当文件路径末端部分只有...时会出错(因此可用`rm -r .*'之类来避免这些不愉快的诧异)。

       如果给定了-i选项,或者如果一个文件不可写,                               而且标准输入是终端,又没有给定-f选项,那
						等等等等等

日期操作

  • date
  • 用法:date [选项]… [+格式]
 1.date,直接键入date回车,结果如下
	 20200721日 星期二 21:29:56 CST
 2.键入  date +%Y年%m月%d日' '%H时:%M分:%S秒,结果如下
 	2020072121:39:513.键入date +%F''%T,结果如下
 	 2020-07-2121:37:50
  • cal
  • 用法:cal [选项] [[[日] 月] 年]
1.直接键入cal,返回当月
      七月 2020     
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31


2.键入cal -3,显示上个月,这个月,下个月的挂历
3.键入cal -y,今年的挂历

文件操作

对目录和普通文件的操作

  1. mkdir 创建文件夹
    -p可以一下建好多级目录
    例: mkdir目录名
  2. touch 新建一个文件
    例: touch 文件名
  3. rmdir 删除一个空目录
    例: rmdir dimame
  4. rm 移除文件或目录
    -rvf 递归删除所有目录内容,提示
    -rf 递归删除所有目录内容,不提示
  5. cp 复制文件到哪里
    cp [要复制的文件] [到哪里]
    -「递归复制整个文件夹
    -V显示复制过程中文件的列表
    强制覆盖不提示的方法
    临时方法: 用)cp
  6. mv
    mv oldFileName newFileName重命名
    mv /temp/movefile /targetFolder 移动文件
  7. cat
    cat 文件名查看轻量级的文本文件
    cat 文件1 文件2连接显示多个文件
    cat文件1 文件2>文件3合并为新文件
  8. more
    看较长的文件
    空白键(space): 代表向下翻-页
    Enter:代表向下翻一行
    q:代表立刻离开more,不再显示该文件内容。
    Ctrl+F向下滚动一-屏
    Ctrl+B返回上一-屏
  9. less
    同more类似,比more功能更多。
    [pagedown]: 向下翻动- -页;
    [pageup]: 向上翻动- -页;
    字串:向下搜寻[字串」的功能;
    ? 字串 :向上搜寻[字串的功能;
    n: 重复前一个搜寻(与/或?有关! )
    N: 反向的重复前一 个搜寻(与1或?有关! )
  10. tail 从尾部开始查看,比较适合查看日志
    -f跟随查看
    -n200显示的行数,n可以省略。
  11. history 查看历史命令
  12. echo 输出环境变量,在shel脚本中当system.out.print用

压缩文件和软链接的处理

  • 软链接
    软链接也称为符号链接,类似于windows里的快捷方式,有自己的数据块,主
    要存放了链接其他文件的路径。

命令:ln -s 【原文件或目录名】 【软链接名】
查询:通过Is -l 就可以查看,列表属性第1位是I,尾部会有位置指向。简化为ll

  • 压缩文件的操作
  1. tar的压缩文件

tar -zcvf XXX.tar.gz n1.txt(tar -命令 压缩后的文件名 被压缩的文件)
-c创建一个新归档
-V显示详细信息
-f指定压缩后的文件名
-z通过gzip过滤归档

同时解压形式如下:

tar -zxvf XXX.tar.gz
-x从归档中解出文件
-V显示详细信息
-f指定解压前的文件名、
-Z通过gzip过滤归档

  1. zip格式的压缩文件

zip mypackage.zip 1.txt 2.bxt
zip -r pack.zip pack/* (递归压缩)

解压形式如下

unzip mypackage.zip

猜你喜欢

转载自blog.csdn.net/BlackBtuWhite/article/details/107494631