Linux学习笔记

1、Linux的目录结构

  1. Linux 只有一个根目录。/ 所有文件都在他下面
  2. 层级式的目录结构

一些主要的目录:

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

/bin -> usr/bin :存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。

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

/etc:存放所有的系统管理所需要的配置文件;重要的配置文件有/etc/profile配置环境变量 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。

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

/usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。

/opt:给主机额外安装软件所的目录,相当于window中Program files 目录

2、远程连接Linux

查看Linux本机IP地址: ifconfig

3、vi和vim:VIM

Linux中的文本编辑器,查看或者编辑文本文件;vim是vi的增强版本;

当前文件下创建目录:mkdir 目录名称

一般模式:vim test.txt  (存在该文件就直接打开,不存在就创建后打开,进入一般模式,可以查看内容但是不能编辑内容)

编辑模式:在一般模式下按i,可以进入编辑模式,编辑模式可以编辑文件内容,但是不能保存;按esc 键编辑模式回到一般模式

命令行模式:一般模式下输入冒号":"

  • q! 不保存,强制退出编辑器
  • wq 保存并退出编辑器
  • q 只是退出编辑器

一些快捷键:

  1. 复制当前行:一般模式下按yy ,把光标所在行复制到剪贴板
  2. 粘贴:一般模式下按p,将剪贴板中的内容粘贴到光标所在的下一行
  3. 复制当前行往下的5行(包括当前行):一般模式下,按5yy ,按p粘贴
  4. 查找关键字:命令模式下输入/+查找关键字,然后回车
  5. 删除当前行:一般模式下,按dd
  6. 删除当前行往下的5行(包括当前行):一般模式下,按5dd
  7. 快速到达文档的首行(gg)和尾行(G) : 注意大小写
  8. 撤销上次操作:一般模式下按u
  9. 显示行号:命令行模式下(set nu)只输入 nu 则只显示当前行的行号
  10. 隐藏行号:命令行下(set nonu)
  11. 快速定位行号:命令行模式下输入行号数字 ,(如定位到76行----->    :76     )

4、Linux中的用户管理

  1. 任何使用Linux系统资源的用户,必须使用一个合法的账号和密码,账号密码一般都是向系统管理员申请,root是Linux系统安装时默认创建的系统管理员账号,由root创建普通账号
  2. 添加用户:useradd 用户名  (useradd zhangsan)这个命令行默认干了以下事情:
    1. 创建一个用户zhangsan
    2. 在/home目录下创建用户的根目录,目录名称默认和用户名相同
    3. 在Linux中,任何一个用户都至少属于一个组,新建用户是如果不指定组,则会新建一个组,组名和用户名相同,并且把该用户添加到该组中。
  3. 给用户设置密码: passwd 用户名    然后在下面输入密码并确认
  4. 删除用户: userdel 用户名 (userdel zhangsan
  5. 删除用户的同时,级联删除主目录:  userdel -r 用户名 (userdel -r zhangsan
  6. 查看用户信息:id 用户名
  7. 切换用户:su 用户名  (su root 需要密码    su zhangsan 不需要密码)权限高的用户切换到权限低的用户不需要密码,否则需要密码

5、Linux中的组管理

  1. Linux中组相当于角色的概念,可以对有共性的用户进行统一管理,每一个用户至少属于一个组,不能独立于组存在,但是可以属于多个组;
  2. 添加组:groupadd 组名    groupadd dev
  3. 把用户添加到组中: gpasswd -a 用户名 组名    gpasswd -a zhangsan dev
  4. 把用户从组中移除: gpasswd -d 用户名 组名    gpasswd -d zhangsan dev
  5. 删除组:groupdel 组名     groupdel dev
  6. 添加用户时,直接指定所属的主组 : useradd  -g 组名 用户名   useradd  -g dev lisi 
  1. Linux中,每个文件或者目录也必须属于一个组,而且只能属于一个组;
  2. 文件或者目录通过组来控制哪些用户可以对它进行哪些操作,也就是文件或者目录的访问权限。
  3. 在文件或者目录看来,Linux系统中所有的用户分为三类:
    1. 所有者:默认情况下,文件目录的所有者都是创建者,但是也可以修改
    2. 同组用户:与文件目录属于同一个组的用户
    3. 其他组用户:上述两种情况之外
  4. 修改文件/目录的所有者:chown 新的所有者 文件名
    1. chown zhangsan t2.txt  把t2.txt所有者改成zhangsan
    2. chown zhangsan:dev t4.txt  把t4.txt所有者改成zhangsan的同时把组改成dev
    3. 如果修改目录的所有者,那么目录里面的文件所有者是不会修改所有者的,需要加 -R 进行递归修改  chown -R zhangsan:dev test1 递归修改所有者
  5. 修改文件或者目录所在组: chgrp 新的组 文件名或者目录名
    1. chgrp dev t2.txt;

6 、Linux中的帮助命令

  1. 查看系统手册上的帮助信息: man 命令   (分屏显示,按回车翻一行,按空格翻一屏)
  2. 查看命名的内置帮助信息: help 命令

7、文件和目录的操作命令

  1. 查看当前所在目录: pwd
  2. 查看指定目录下所有子目录或者文件列表: ls 指定目录    ls /home
  3. 切换目录: cd 目录名
    1. 绝对目录,以盘符开始的目录  cd /home/bmpapp/tomcat
    2. 相对目录,以目录名开始的目录
    3. 当前用户的根目录:  ~   任何目录下执行 cd ~ 进入当前用户的根目录(直接执行cd 效果也是一样的)
    4. 当前目录的上一级目录:  cd ..
    5.  当前目录: cd .
  4. 创建目录: mkdir 目录名 (目录名可以是绝对目录,也可以是相对目录)
  5. 一次创建多级目录: mkdir -p /opt/testDir/test3/test4  没有test3,先创建test3在创建test4
  6. 删除空目录: rmdir 目录名  rmdir test3
  7. 创建一个或者多个空文件:touch 文件名列表(文件名之间空格隔开)
    1. touch t1.txt
    2. touch 2.txt t3.txt t4.txt
  8. 复制文件或者目录: cp 源文件 目标文件   
    1. cp t1.txt test3  将t1.txt复制到test3目录中
    2. cp t1.txt t2.txt  将t1.txt复制到当前文件夹下命名t2.txt
    3. cp -r test2 test5: 将test2目录中的所有文件递归复制到test5目录中
  9. 删除文件或者目录: rm 文件名或者目录名 
    1. 提示删除文件:rm 文件名
    2. 强制删除文件: rm - f  文件名
    3. 提示删除目录: rm -i 目录名
    4. 强制删除目录: rm -rf 目录名
    5. -i 询问是否删除, -r 递归删除,-f 强制删除, rm不能删除有文件的目录,需要递归删除
  10. 移动目录或者文件: mv  源 目标
    1. mv t1.txt test1
    2. mv test1 test2
    3. mv t1.txt t2.txt  相当于文件重命名
  11. 查看文件内容 cat 文件名
    1. cat t1.txt 查看文件
    2. cat -n t1.txt 显示行号查看
    3. cat -n t1.txt | grep -C 5 'a'  显示行号,并且过滤查询关键字a,并显示前后5行的数据 (-B 是往前显示,-A是往后显示)
  12. 分页查看文件内容: more 文件名  一次性加载文件所有内容到内存,分页显示 按回车翻一行,按空格翻一页
  13. 分页查看文件内容: less 文件名 分页加载文件内容到内存,分页显示 按回车翻一行,按空格翻一页
  14. 查看文件的头10行: head [选项] 文件名
    1. head t1.txt
    2. head -n 5 t1.txt  显示前5行
  15. 查看文件的最后10行: tail [选项] 文件名
  16. echo:输出系统变量或者常量的值到命令行终端
    1. echo $JAVA_HOME
    2. echo $PATH
  17. 把前一个查看命令的结果输出到指定的文件中: 查看命令 > 文件名
    1. ls > t1.txt (本来输出到控制台的内容,输出到文件中保存下来,如果文件不存在则新建一个文件,如果存在会覆盖之前的内容)
    2. cat t1.txt > t2.txt (相当于复制了一次t1.txt)
  18. 把前一个查看命令的结果追加到指定的文件中: 查看命令 >> 文件名
    1. ls >> t2.txt
  19. 查看文件类型,字符编码: file
    1. file 文件名 : 

     

8、关机重启命令

  1. 立刻进行关机  shutdown -h now
  2. 1分钟后关机  shutdown -h 1
  3. 重启计算机  shutdown -r now
  4. 关机 halt 和上面一样
  5. 重启计算机  reboot 和上面一样
  6. 把内存中的数据同步到磁盘 sync

9、Linux中关于日期和事件的操作命令

  1. 查看或者设置系统的日期或者时间:date
    1. 查看系统当前的完整日期时间 :date
    2. 查看系统当前年份  date +%Y   注意要有+号,
    3. 查看系统当前月份  date +%m
    4. 查看系统当前日期  date +%d
    5. date '+%y-%m-%d %H:%M:%S'  按照格式显示 22-06-02 17:10:43 (大小写不同,显示的也会有不同,具体不一一列举了)
    6. 设置当前系统的时间: date -S '22-06-02 17:10:43'
  2. 查看系统日历: cal
    1. cal 查看当前月份的日历
    2. cal 2022 查看指定年份的日历

10、Linux中关于搜索文件或者目录的命令

find [搜索范围] [搜索标准] 关键字

  1. 搜索当前文件下,所有的TXT文件: find *.txt  
  2. 搜索当前文件下,所有名称中包含e的文件 find *e*
  3. 搜索 /etc 目录下所有的TXT文件: find /etc *.txt
  4. 按照文件大小搜索
    1. find /etc -size +5M 文件大于 5M
    2. find /etc -size -5M 文件小于 5M
  5. 搜索标准: -name  -size -user

locate 在整个目录树中搜索文件或者目录,都是根据名称搜索,效率高

  • 先更新目录树  updatedb
  • 然后搜索  locate *.txt

| grep 搜索过滤命令,在前一个搜索命令的结果中按名称进行进一步的过滤

  1. 搜索命令 | grep 过滤条件
    1. find *.txt | grep xx 搜索当前目录下,所有包含xx 的txt文件
  2. 查看命令 |grep 过滤条件
    1. cat t1.txt | grep beijing (过滤条件区分大小写)
    2. cat t1.txt | grep -i beijing  (过滤条件忽略大小写)
    3. cat t1.txt | grep -ni beijing  (显示行号,忽略大小写)

11、Linux中的压缩和解压命令

  1. 压缩或者解压单个文件
    1. 压缩单个文件:gzip 文件名 ,会自动生成一个.gz的压缩包,并且把原来的文件删除。
    2. 解压单个文件:gunzip 文件名,解压完会把原来的.gz压缩包删除。
  2. 压缩(打包)或者解压多个文件和目录:
    1. 压缩(打包):zip 目标压缩包名称  文件或者目录列表 (zip tt.zip t1.txt t2.txt),不会删除之前的文件
    2. 解压:unzip 压缩包名称  解压到当前目录(unzip 压缩包名称 -d 解压目录名  解压到目标目录  unzip tt.zip -d test1)
  3. 压缩(打包)或者解压多个文件和目录: tar 
    1. 压缩(打包): tar [选项] 目标压缩包名称(xxx.tar.gz)
      1. tar -zcvf xxx.tar.gz 文件或者目录列表
    2. 解压: tar [选项] 压缩包名称(xxx.tar.gz)-C 解压目录名
      1. tar -zxvf xxx.tar.gz -C 解压目录名

12、Linux中文件或者目录的三种权限:读(read)写(write)执行(excute)

对文件而言

  1. 读(read):可以读取查看文件的内容,如:cat more less head tail 等
  2. 写(write):可以修改文件的内容,如:vi vim等
  3. 执行(excute):如果该文件是可执行文件(xxx.sh),可以直接运行,如: xxx.sh

对目录而言

  1. 读(read):可以读取查看目录的内容,如:ls
  2. 写(write):可以修改目录的内容,如:在目录下创建、删除、重命名等
  3. 执行(excute):可以进入该目录,如:cd等

文件或者目录的权限控制

  1. 所有者权限:2~4位    使用r/w/x分别表示读写执行的权限
    1. rwx:拥有读写执行的权限
    2. r-x:拥有读,执行的权限
    3. --- : 没有任何权限
  2. 同组用户权限:5~7位
  3. 其他组用户的权限:8~10位

修改文件或者目录的权限

  1. r w x 分别表示读 写 执行的权限
  2. u g o a分别表示 给 所有者 同组用户 其他组用户 所有用户 修改权限
  3. + - = 分别表示给指定的用户增加,减少 ,设置权限
  4. 例子 chmod 
    1. chmod g-w, o+w t6.txt  用逗号隔开  给同组用户减少写权限,其他组用户增加写权限
    2. chmod g=rwx t5.txt 给同组用户设置读写执行权限 
    3. chmod a-w t4.txt  给所有用户减少写权限
  5. 用数字的方式修改文件或者目录的权限
    1. 每一个权限可以用一个数字表示 r:4 w:2 x:1;
      1. ​​​​​ 
    2. 每一个文件或者目录有三部分权限,每一部分权限都可以用一组数据之和表示
      1. chmod 777 t1.txt
      2. chmod 753 t2.txt

13、linux 中关于网络的管理

 DNS后面要加一个1 : DNS1=192.168.11.2

 14、Linux中关于进程的管理

进程:一个程序的执行,一个进程占用一个端口

线程:一个程序的执行线路,一个进行可能会有多个线程

查看进程:ps (process status)

  1. ps  //只会显示应用进程
  2. ps -e  // 显示所有进程
  3. ps -ef // 以全格式的形式显示所有进程
  4. ps -ef |grep xxx  用于查看Linux系统中某些软件或者应用是否处于启动状态

------------------------------------------------------

ps -ef 显示出的结果:

    1.UID       用户ID
    2.PID        进程ID
    3.PPID      父进程ID
    4.C           CPU占用率
    5.STIME     开始时间
    6.TTY         开始此进程的TTY----终端设备
    7.TIME       此进程运行的总时间
    8.CMD       命令名
--------------------------------------------------------
 

关闭进程

使用ps命令查看进程的PID,使用命令 kill -9 PID 关闭该进程

15、Linux中的服务管理

  1. 服务是支持Linux运行的一些必要程序,本质上也是进程,叫做守护进程;守护进程通常默默地运行在后台,为应用程序提供必要的支撑,比如sshd,防火墙等等。
  2. 操作服务:systemctl [start、stop 、restart、reload、status、enable] 服务名称
    1. systemctl status firewalld  查看防火墙运行状态
    2. systemctl stop firewalld 关闭防火墙
    3. systemctl start firewalld 开启防火墙
    4. systemctl enable firewalld 设置防火墙开机启动
    5. ***老版本的操作服务使用service命令,效果和systemctl 相同

16、Linux中的软件包管理:软件安装包

RPM包:

  1.  一种Linux的软件包的打包和安装,他操作的软件包都是以.rpm结尾
  2. 使用RPM:rpm命令
    1. 查看当前系统中已经安装的rpm包: rpm -qa      rpm -qa|grep firefox
    2. 卸载rpm包:rpm -e firefox
    3. 安装rpm包:rpm -ivh xxx.rpm  (-i 安装 -v 提示 -h 进度条  需要提前准备安装包)

YUM包

  1. 一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。
  2. 使用yum命令
    1. 查看当前系统中已经安装的rpm包:yum list installed
    2. 卸载rpm包:yum remove xxx.rpm
    3. 安装rpm包:yum install firefox (需要联网,直接去下载安装,不需要提前准备安装包)

17、Linux搭建javaEE开发环境

安装JDK:(免安装的)

1、软件通过XFTP上传到/opt 目录下

2、解压缩到 /opt目录下

 3、配置环境变量的配置文件 vim /etc/profile

 

4、使配置文件生效:

 5、测试安装成功

6、编写helloWorld.java并运行 

安装Tomcat:(免安装)

1、软件通过XFTP上传到/opt 目录下

2、解压缩到 /opt目录下

3、启动Tomcat:进入到Tomcat的bin目录,

 

 

 4、查看Tomcat是否启动

5、Linux访问Tomcat,需要提前将防火墙关闭

 

安装mysql :

1、检查是否已经安装了mariadb, mariadb是mysql的分支,会和mysql有冲突,如果安装了,需要卸载掉。

        检查命令: yum list intalled | grep mariadb

        卸载命令: yum -y remove xxx

2、上传mysql 安装包

3、解压安装包

4、修改解压后的根目录名

5、创建文件夹data ,data文件夹是mysql用来存放数据文件的,数据库的表数据都放在data目录中,默认没有data目录,需要手动创建

6、创建用来执行mysqld命令的Linux用户。创建mysql用户,用来执行MySQL的命令mysqld,这个命令用来初始化mysql基础信息。

 7、初始化mysql

使用mysqld命令初始化数据库的基本信息,切换到mysql-5.7.18/bin 目录下执行

 执行完这一步,会出现一个随机生成的root的用户密码,需要记住这个密码,第一次登陆的时候需要用到。

8、启动安全功能, 在bin目录下执行如下命令

9、修改mysql的安装目录权限

安装好后,需要mysql-5.7.18/对整个文件夹目录权限进行更新

 10、启动mysql服务

bin目录下执行  ./mysqld_safe & (&表示后台启动,如果不写&,mysql就会占用命令行终端)

确认是否启动: ps -ef | grep mysql

11、客户端登录mysql

在bin目录下执行命令: ./mysql -uroot -p (会提示输入第7步的初始化密码)

12、修改root密码

第7步的密码是临时密码,需要修改才可以使用

执行sql语句 show databases 第一次使用提示修改root密码

11、关闭mysql目录

bin目录下执行 ./mysqladmin -uroot -p -shutdown

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值