Linux系统:我们的征途是星辰大海!

《JAVA啃骨头》之 Linux操作系统 章节

Linux:我们的征途是星辰大海 !

在这里插入图片描述
《星辰大海》 黄霄雲 QQ音乐: link

  1. 对Linux 系统的理解
    Linux操作系统在安全性、稳定性、处理高并发方面性能卓越。获得这些优点的同时,在图形化显示界面方面做出了牺牲。在使用Linux系统的时候,很少使用鼠标,都是键入操作命令。
    Linux可以看做没有显示屏的Windows。在Windows里面,桌面的软件的图标其实是一个可执行文件(*.exe),当我们点击的时候,就会启动可执行文件,可执行文件会调用对应软件底层的代码执行,这样,软件就可以使用了。而Linux没有这样的方式,我们只能直接启动可执行文件,而可执行文件一般都在软件包内,所以,我们需要先找到文件的所在位置,再用命令“双击”他,让他启动。
    Linux哲学:一切皆命令

  2. Linux操作系统命令
    目录结构:在这里插入图片描述

  1. root: 系统管理员目录,root 是具有超级权限的用户。

  2. home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用 户的根目录;用户登录以后,默认打开自己的根目录。

  3. bin & usr/bin :存放系统预装的可执行文件,这里存放的可执行文件可以在系统的任何目录下执行 binary 二进制的

  4. usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。

  5. opt: 这是给 linux 额外安装软件所存放的目录。比如你安装一个 Oracle 数据库则就可以放到这个目录下,默认 为空。optional 选修科目

  6. mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目 录就可以查看光驱里的内容 mount v. 嵌入

  7. dev: dev 是缩写, 该目录下存放的是 Linux 的外部设备,Linux 中的设备也是以文件的形式存在。 device:设备

  8. lib & usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows 里的 DLL 文件,几乎所有 的应用程序都需要用到这些共享库。

  9. boot : 这个目录存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。boot v.启动

  10. usr是 linux 的系统资源,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。

  11. etc: 这个目录存放所有的系统管理所需要的配置文件etcetera n 附加物

  12. var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的 各种日志文件 variable 易变的

  13. tmp: 这个目录是用来存放一些临时文件的。temporary 临时

  14. mics:杂项设备,全称:misc device,存放系统没有归类过的文件设备。

vi和vim:是linux中的文本编辑器,用来在linux中创建、查看或者编辑文本文件,就好像windows中的记事本一样。
    vim是vi的增强版本,vi的绝大多数用法在vim都适用。

vi和vim的使用:
    一般模式:用vi或者vim命令打开文件(vim test.txt),进入了一般模式;
             可以查看文件的内容,并且可以通过上下左右键移动光标,查看文件某一部分;
	         但是不能编辑文件内容。
     编辑模式:在一般模式下,按i键或者a键,进入编辑模式;
             可以编辑文件内容;
	         但是不能保存编辑的内容;
	         按Esc键,可以回到一般模式。
     命令行模式:在一般模式下,按shift+:,进入命令行模式;
              输入: q!-----不保存强制退出编辑器
	                wq-----保存并且退出编辑器
		             q-----只是退出编辑器

vi和vim编辑器的快捷键:
   1)复制当前行:在一般模式下,按yy,把光标所在行复制到剪切板
                             按p,把剪切板中的内容粘贴到光标所在的下一行。
   2)复制当前行往下5行:在一般模式下,按5yy,把光标所在行往下5行复制到剪切板
		  						   按p,把剪切板中的内容粘贴到光标所在的下一行。
   3)在文本文件中查找关键字:在命令行模式下,输入/关键字,回车
                                   按n表示光标查找下一个关键字
   4)删除光标所在的当前行:在一般模式下,按dd,删除光标所在的当前行
   5)删除光标所在的行往下5行:在一般模式下,按5dd
   6)撤销上次编辑的内容:在一般模式下,按u
   7)显示行号:命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]

7、linux中的用户管理:
1)、任何使用linux的系统资源的用户,必须使用一个合法的账号和密码,账号和密码一般都 是向系统管理员申请。
    root是linux系统安装时默认创建的系统管理员账号,由root创建普通账号。
2)、添加用户:useradd [选项] 用户名
   useradd lisi
  |->创建一个用户lisi
  |->在/home目录下创建用的根目录,目录名称默认跟用户名相同
  |->在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。

   useradd -d /home/ww wangwu   创建用户的同时,指定用户的根目录
3)、给用户设置密码:passwd 用户名
   passwd lisi
   *密码要满足一定的复杂度
4)、删除用户:userdel 用户名
   userdel lisi
   userdel -r lisi 删除用户的同时级联删除它的主目录
5)、查看用户信息:id 用户名
   id zhangsan
6)、切换用户:su 用户名
   su zhangsan
   *从权限高的用户切换权限低的用户,不需要密码验证;
    从权限低的用户切换到权限高的用户,必须密码验证。
8、linux中的组管理:
1)、linux中的组相当于角色的概念,可以对有共性的用户进行统一管理;
    每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组;
新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
2)、添加组:groupadd 组名
    groupadd dev
3)、删除组:groupdel 组名
    groupdel dev
4)、把用户添加到组中:gpasswd -a 用户名 组名
     gpasswd -a zhangsan dev
5)、把用户从组中移除:gpasswd -d 用户名 组名
     gpasswd -d zhangsan dev
6)、添加用户时,指定所属的组(主组):useradd -g 组名 用户名
     useradd -g dev lisi
9、linux中的系统操作命令:
关机:shutdown now      立即关机
      shutdown -h xxx  定时关机
      shutdown -r now  立即重启
重启: reboot  		   立即重启
同步数据库:sync
10、linux中的帮助命令:
1)、用来查看linux系统手册上的帮助信息:man 命令
   man ls
   分屏显示、按回车翻一行、按空格翻一页、按q退出查看。
2)、用来查看命名的内置帮助信息:help 命令
   help cd
11、linux中的文件和目录操作的命令:
1)、查看当前所在目录:pwd
   pwd
2)、查看指定目录下所有的子目录和文件列表:ls [选项] [指定目录]
                                       |->绝对目录
						               |->相对目录
   ls /home
   ls 查看当前目录下所有的子目录和文件列表

   ls -l /home :以列表形式显示
   ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)
   ls -al /home:以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
3)、切换目录:cd 目录名
                    |->绝对目录:以盘符开始的目录叫绝对目录,从盘符开始查找目标目录
		             cd /opt/testDir
			     ~:当前用户的根目录。在任何目录下执行:cd ~,进入当前用户的根目录。 
	              	|->相对目录:以目录名开始的目录叫相对目录,从当前目录开始查找目标目录
		             cd testDir
			     ..:当前目录的上一级目录,从的当前目录开始查找它的上一级目录。 
			     .:当前目录
				        xxx.sh====>./xxx.sh
4)创建目录:mkdir [选项] 目录名
                 |->绝对目录
		         |->相对目录
	mkdir /opt/testDir/test1          //在/opt/testDir目录下创建一个目录test1(使用绝对目录)
	mkdir test2                       //在/opt/testDir目录下创建一个目录test2(使用相对目录)
    mkdir -p /opt/testDir/test3/test4 //在/opt/testDir目录下创建目录test3,并且在test3下创建test4(一次创建多级目录)
	mkdir -p test5/test6
5)、删除一个空目录:rmdir 目录名
    rmdir test1
	rmdir test3
6)、创建一个或者多个空文件:touch 文件名列表(文件名之间用空格隔开)
    touch t1.txt
    touch t2.txt t3.txt t4.txt
7)、复制文件或者目录:cp [选项] source(源) dest(目标)
    cp t1.txt test2  	 //把t1.txt文件复制到test2目录中
	cp -r test2 test5    //把test2目录复制到test5目录中(递归地复制目录)
	cp t1.txt test2
8)、删除文件或者目录:rm 文件名或者目录名
    rm t1.txt     提示删除文件
	rm -f t2.txt  强制删除文件
	rm -r test2   提示递归删除目录
	rm -rf test5  强制递归删除目录
9)、移动目录或者文件:mv source(源) dest(目标)
    mv test.txt test1
	mv test1 test2
	mv t3.txt t3_new.txt  文件重命名
	*如果目标中已经存在该文件或者目录,则会提示是否覆盖。
10)、查看文件内容:
    cat 文件名     文件内容一次性显示出来 cat t4.txt
	cat -n t4.txt  显示行号
11)、分页查看文件文件内容:
    more 文件名  一次性加载文件所有内容到内存,分页显示按回车翻一行、按空格翻一页
    more t4.txt
12)、分页查看文件文件内容:less 文件名 分页加载文件所有内容到内存,分页显示
    less t4.txt
	按回车翻一行、按空格翻一页,按q退出查看
13)、查看文件的头10行:head [选项] 文件名
            head t4.txt
            head -n 5 t4.txt
14)、查看文件的后10行:tail [选项] 文件名
           tail t4.txt
           tail -n 5 t4.txt
15)、echo:输出系统变量或者常量的值到命令行终端。
   echo $JAVA_HOME
   echo $PATH
   echo Hello World!

JAVA_HOME=D:\DPFS\Java\jdk1.8.0_101
PATH=%JAVA_HOME%\bin;.......
CLASSPATH=%JAVA_HOME%\lib;.
16)把前一个查看命令的结果输出到指定的文件中: 查看命令 > 文件名
     *如果目标文件不存在,则新建一个文件
     *如果目标文件已存在,则把文件以前的内容覆盖
    ls > ret.txt
    ls -al > ret.txt
    cat ret.txt > t3_new.txt 文件内容的复制
    cat t4.txt > t3_new.txt
17)把前一个查看命令的结果追加输出到指定的文件中:查看命令 >> 文件名
    *如果目标文件不存在,则新建一个文件
    *如果目标文件已存在,则在文件原来内容的基础上进行追加
	ls > ret.txt
	ls -al >> ret.txt
	cat t4.txt >> ret.txt

12、linux中关于日期和时间的操作命令:
1)、查看或者设置系统的日期或者时间:date
  date 查看系统当前的完整的日期和时间
  date +%Y  系统当前的年份
  date +%m  系统当前的月份
  date +%d  系统当前的日期
  date '+%Y-%m-%d %H:%M:%S' 按yyyy-MM-dd HH:mm:ss格式显示
  date -S '2020-10-20 10:20:30' 设置当前的系统时间
2)、查看系统日历:cal
  cal:查看当前月份的日历
  cal 2020:查看指定年份的日历

13、linux中关于搜索文件或者目录的命令: 
 1)find [搜索范围][搜索标准] 关键字
                            |->-name:默认按名称搜索(文件或者目录所在的路径也在搜索范围之内)
						    |->-size:按文件大小搜索
						    |->-user:按文件的所有者搜索
 find *.txt  搜索当前目录下,所有的.txt文件
 
 find *e*  搜索当前目录下,所有名称中包含e的那些文件或者目录

 find /etc *.txt  搜索/etc目录下所有.txt文件

 find /etc -size -5k  搜索/etc目录下所有小于5k的文件

 find /etc -user zhangsan  搜索/etc目录下所有的所有者是zhangsan的文件和目录

2)locate:在整棵目录树中搜索文件或者目录,都是根据名称搜索,效率高。
  updatedb
  locate 关键字

  updatedb
  locate *.txt
3)搜索过滤命令,在前一个搜索命令的结果中进行按名称进一步过滤:搜索命令 |grep [选项] 过滤条件 
                                                              查看命令 |grep [选项] 过滤条件
  find *.txt|grep new  搜索当前目录下,所有名称包含new的.txt文件
  find /etc -size -5k|grep firefox

  cat t1.txt|grep beijing
  cat t1.txt|grep -ni beijing

  ls -al|grep new
  
14、linux中有关压缩和解压的命令:
1)、压缩或者解压单个文件:gzip 文件名:压缩单个文件,生成一个.gz的压缩包,并且会把原来的文件删除。
              gunzip .gz压缩包名:解压.gz压缩包,并且会把原来的.gz压缩包删除。
		      gzip ret.txt
		      gunzip ret.txt.gz
2)、压缩(打包)或者解压多个文件和目录:zip 目标压缩包名称(通常使用.zip压缩包) 文件或者目录列表:
				  unzip 压缩包名(.zip) -d 解压目录名:将指定的.zip压缩包解压到当前目录(或者指定目录)。
		          zip test.zip ret.txt t1.txt test2 
				  unzip test.zip -d test3
				  zip mytest.zip test.zip t3_new.txt t4.txt test2
3)、压缩(打包)或者解压多个文件和目录:tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表
                     |->c:打包或者压缩
			         tar [选项] 压缩包名(xxx.tar.gz) -C 解压目录名:将指定的.tar.gz压缩包解压到当期目录(或者指定目录)
					 |->x: 解压
			          
				  tar -zcvf xxx.tar.gz 文件或者目录列表
				  tar -zxvf xxx.tar.gz -C 解压目录名

                  tar -zcvf mytar.tar.gz mytest.zip ret.txt t1.txt test2
				  tar -zxvf mytar.tar.gz -C /opt/testDir/test5

15、文件或者目录与组:
1)文件或者目录与组基本介绍:
  在linux中,每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。
  在linux中,每一个文件或者目录也必须属于一个组,而且只能属于一个组,默认情况下,文件所有者所属的主组就是文件所属的组;
  文件或者目录通过组来控制哪些用户可以对它进行哪些操作,即文件或者目录的访问权限;
 在文件或者目录看来,linux系统中所有的用户分为三类:
     所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
     同组用户:跟文件或者目录属于同一个组的用户
     其它组用户:既不是文件或者目录的所有者,也不是同组用户
2)查看文件的所有者和所在的组:
   ls -l
3)、修改文件或者目录的所有者:chown 新的所有者 文件名或者目录名
   chown 新的所有者:新的组 文件名或者目录名
   chown zhangsan t1.txt
   chown -R zhangsan test3
   chown zhangsan:dev t4.txt
   chown zhangsan:dev test2
   chown -R zhangsan:dev test2 递归修改目录的所有者和所在的组 
4)、修改文件或者目录的所在组:chgrp 新的组 文件名或者目录名
   chgrp dev t2.txt
   chgrp -R dev test3
16、16、Linux中文件或者目录的权限管理:
1)准备工作:
  一个用户至少属于一个组,也可以属于多个组;
  一个文件或者目录也必须属于一个,并且只能属于一个组;
 在一个文件或者目录看来,linux系统中所有的用户可以分为三类:
    所有者:
    同组用户:
    其它组用户:
2)、文件或者目录的三种权限:
    在linux中,任何文件或者目录都有三种权限:读(Read)、写(Write)、执行(Execute)
       对于文件而言:
       读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
       写:可以修改文件的内容,比如:vi或者vim等
       执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
   对于目录而言:
       读:可以读取、查看目录下边的内容,比如:ls等
       写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重名文件或者目录
       执行:可以进入该目录, 比如:cd等。
 3)、文件或者目录的权限控制:
     在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
       第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r--:只拥有读的权限,---:没有任何权限。
       第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
       第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
 4)、查看文件或者目录的权限:
       ls -aul
 5)、修改文件或者目录的权限:chmod
       用r、w、x分辨表示读、写、执行的权限,
       用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
       用+、-、=分别表示给指定的用户增加、减少、设置对应的权限

       chmod g-w,o+w t5.txt
       chmod g=rwx t5.txt
       chmod a-r t5.txt
 6)、使用数字的方式修改文件或者目录的权限:
           每一个权限可以用一个数字来表示:
         r、w、x
	     4、2、1
	     2^2 2^1 2^0
       每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数据序列:
             rw- r-x r-x
	    	 6    5   5
             rwx r-x -wx
	     	 753:
		     rwxrwxrwx
        	 777:
       chmod 777 t5.txt
       chmod 753 t5.txt

17、linux中的网络管理:
在linux的配置文件: vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.11.128
GATEWAY=192.168.11.2
DNS=192.168.11.2

重启linux:  reboot
   
18、linux中的进程管理:
线程:一个程序的线路
进程:一个程序的执行,一个进程占用一个端口。

查看正在运行的进程:ps
ps  //只会显示应用进程
ps -e //显示所有进程
ps -ef //以全格式的形式显示所有进程
      //用于查看linux系统中某一些软件或者应用是否处于启动状态
      ps -ef|grep mysql
关闭进程:
    使用ps命令查看进程的PID
使用命令kill -9 PID
   
19、linux中服务管理:
1)、服务介绍:服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。
2)、操作服务:systemctl [start|stop|restart|reload|status|enable] 服务名称
    
systemctl status firewalld  查看防火墙运行状态
systemctl stop firewalld 关闭防火墙
systemctl start firetalld 开启防火墙
systemctl enable firewalld 设置防火墙开机启动

*老版的linux或者有些发行版本的linux,操作服务使用service命令。

20、linux中软件包的管理:软件安装包
1)、RPM包管理:
a)RPM:一种LInux的软件包的打包和安装工具,它操作的软件包都是.rpm结尾。
b)使用RPM:rpm命令。
  
  查看当前系统中已经安装的rpm软件包:rpm -qa|grep firefox
  卸载rpm软件包:rpm -e firefox
  安装rpm包:rpm -ivh xxx.rpm
       	    cp firefox-45.4.0-1.el7.centos.x86_64.rpm /opt
       		rpm -ivh firefox-45.4.0-1.el7.centos.x86_64.rpm
2)、YUM包管理:是一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。
    查看当前系统中已经安装的rpm软件包:yum list installed|grep firefox
	卸载rpm软件包:yum remove firefox.x86_64
    安装rpm包:yum install firefox

21、linux中搭建JavaEE开发环境:略
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页