1、Linux的目录结构
- Linux 只有一个根目录。/ 所有文件都在他下面
- 层级式的目录结构
一些主要的目录:
/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 只是退出编辑器
一些快捷键:
- 复制当前行:一般模式下按yy ,把光标所在行复制到剪贴板
- 粘贴:一般模式下按p,将剪贴板中的内容粘贴到光标所在的下一行
- 复制当前行往下的5行(包括当前行):一般模式下,按5yy ,按p粘贴
- 查找关键字:命令模式下输入/+查找关键字,然后回车
- 删除当前行:一般模式下,按dd
- 删除当前行往下的5行(包括当前行):一般模式下,按5dd
- 快速到达文档的首行(gg)和尾行(G) : 注意大小写
- 撤销上次操作:一般模式下按u
- 显示行号:命令行模式下(set nu)只输入 nu 则只显示当前行的行号
- 隐藏行号:命令行下(set nonu)
- 快速定位行号:命令行模式下输入行号数字 ,(如定位到76行-----> :76 )
4、Linux中的用户管理
- 任何使用Linux系统资源的用户,必须使用一个合法的账号和密码,账号密码一般都是向系统管理员申请,root是Linux系统安装时默认创建的系统管理员账号,由root创建普通账号
- 添加用户:useradd 用户名 (useradd zhangsan)这个命令行默认干了以下事情:
- 创建一个用户zhangsan
- 在/home目录下创建用户的根目录,目录名称默认和用户名相同
- 在Linux中,任何一个用户都至少属于一个组,新建用户是如果不指定组,则会新建一个组,组名和用户名相同,并且把该用户添加到该组中。
- 给用户设置密码: passwd 用户名 然后在下面输入密码并确认
- 删除用户: userdel 用户名 (userdel zhangsan)
- 删除用户的同时,级联删除主目录: userdel -r 用户名 (userdel -r zhangsan)
- 查看用户信息:id 用户名
- 切换用户:su 用户名 (su root 需要密码 su zhangsan 不需要密码)权限高的用户切换到权限低的用户不需要密码,否则需要密码
5、Linux中的组管理
- Linux中组相当于角色的概念,可以对有共性的用户进行统一管理,每一个用户至少属于一个组,不能独立于组存在,但是可以属于多个组;
- 添加组:groupadd 组名 groupadd dev
- 把用户添加到组中: gpasswd -a 用户名 组名 gpasswd -a zhangsan dev
- 把用户从组中移除: gpasswd -d 用户名 组名 gpasswd -d zhangsan dev
- 删除组:groupdel 组名 groupdel dev
- 添加用户时,直接指定所属的主组 : useradd -g 组名 用户名 useradd -g dev lisi
- Linux中,每个文件或者目录也必须属于一个组,而且只能属于一个组;
- 文件或者目录通过组来控制哪些用户可以对它进行哪些操作,也就是文件或者目录的访问权限。
- 在文件或者目录看来,Linux系统中所有的用户分为三类:
- 所有者:默认情况下,文件目录的所有者都是创建者,但是也可以修改
- 同组用户:与文件目录属于同一个组的用户
- 其他组用户:上述两种情况之外
- 修改文件/目录的所有者:chown 新的所有者 文件名
- chown zhangsan t2.txt 把t2.txt所有者改成zhangsan
- chown zhangsan:dev t4.txt 把t4.txt所有者改成zhangsan的同时把组改成dev
- 如果修改目录的所有者,那么目录里面的文件所有者是不会修改所有者的,需要加 -R 进行递归修改 chown -R zhangsan:dev test1 递归修改所有者
- 修改文件或者目录所在组: chgrp 新的组 文件名或者目录名
- chgrp dev t2.txt;
6 、Linux中的帮助命令
- 查看系统手册上的帮助信息: man 命令 (分屏显示,按回车翻一行,按空格翻一屏)
- 查看命名的内置帮助信息: help 命令
7、文件和目录的操作命令
- 查看当前所在目录: pwd
- 查看指定目录下所有子目录或者文件列表: ls 指定目录 ls /home
- 切换目录: cd 目录名
- 绝对目录,以盘符开始的目录 cd /home/bmpapp/tomcat
- 相对目录,以目录名开始的目录
- 当前用户的根目录: ~ 任何目录下执行 cd ~ 进入当前用户的根目录(直接执行cd 效果也是一样的)
- 当前目录的上一级目录: cd ..
- 当前目录: cd .
- 创建目录: mkdir 目录名 (目录名可以是绝对目录,也可以是相对目录)
- 一次创建多级目录: mkdir -p /opt/testDir/test3/test4 没有test3,先创建test3在创建test4
- 删除空目录: rmdir 目录名 rmdir test3
- 创建一个或者多个空文件:touch 文件名列表(文件名之间空格隔开)
- touch t1.txt
- touch 2.txt t3.txt t4.txt
- 复制文件或者目录: cp 源文件 目标文件
- cp t1.txt test3 将t1.txt复制到test3目录中
- cp t1.txt t2.txt 将t1.txt复制到当前文件夹下命名t2.txt
- cp -r test2 test5: 将test2目录中的所有文件递归复制到test5目录中
- 删除文件或者目录: rm 文件名或者目录名
- 提示删除文件:rm 文件名
- 强制删除文件: rm - f 文件名
- 提示删除目录: rm -i 目录名
- 强制删除目录: rm -rf 目录名
- -i 询问是否删除, -r 递归删除,-f 强制删除, rm不能删除有文件的目录,需要递归删除
- 移动目录或者文件: mv 源 目标
- mv t1.txt test1
- mv test1 test2
- mv t1.txt t2.txt 相当于文件重命名
- 查看文件内容 cat 文件名
- cat t1.txt 查看文件
- cat -n t1.txt 显示行号查看
- cat -n t1.txt | grep -C 5 'a' 显示行号,并且过滤查询关键字a,并显示前后5行的数据 (-B 是往前显示,-A是往后显示)
- 分页查看文件内容: more 文件名 一次性加载文件所有内容到内存,分页显示 按回车翻一行,按空格翻一页
- 分页查看文件内容: less 文件名 分页加载文件内容到内存,分页显示 按回车翻一行,按空格翻一页
- 查看文件的头10行: head [选项] 文件名
- head t1.txt
- head -n 5 t1.txt 显示前5行
- 查看文件的最后10行: tail [选项] 文件名
- echo:输出系统变量或者常量的值到命令行终端
- echo $JAVA_HOME
- echo $PATH
- 把前一个查看命令的结果输出到指定的文件中: 查看命令 > 文件名
- ls > t1.txt (本来输出到控制台的内容,输出到文件中保存下来,如果文件不存在则新建一个文件,如果存在会覆盖之前的内容)
- cat t1.txt > t2.txt (相当于复制了一次t1.txt)
- 把前一个查看命令的结果追加到指定的文件中: 查看命令 >> 文件名
- ls >> t2.txt
- 查看文件类型,字符编码: file
- file 文件名 :
8、关机重启命令
- 立刻进行关机 shutdown -h now
- 1分钟后关机 shutdown -h 1
- 重启计算机 shutdown -r now
- 关机 halt 和上面一样
- 重启计算机 reboot 和上面一样
- 把内存中的数据同步到磁盘 sync
9、Linux中关于日期和事件的操作命令
- 查看或者设置系统的日期或者时间:date
- 查看系统当前的完整日期时间 :date
- 查看系统当前年份 date +%Y 注意要有+号,
- 查看系统当前月份 date +%m
- 查看系统当前日期 date +%d
- date '+%y-%m-%d %H:%M:%S' 按照格式显示 22-06-02 17:10:43 (大小写不同,显示的也会有不同,具体不一一列举了)
- 设置当前系统的时间: date -S '22-06-02 17:10:43'
- 查看系统日历: cal
- cal 查看当前月份的日历
- cal 2022 查看指定年份的日历
10、Linux中关于搜索文件或者目录的命令
find [搜索范围] [搜索标准] 关键字
- 搜索当前文件下,所有的TXT文件: find *.txt
- 搜索当前文件下,所有名称中包含e的文件 find *e*
- 搜索 /etc 目录下所有的TXT文件: find /etc *.txt
- 按照文件大小搜索
- find /etc -size +5M 文件大于 5M
- find /etc -size -5M 文件小于 5M
- 搜索标准: -name -size -user
locate 在整个目录树中搜索文件或者目录,都是根据名称搜索,效率高
- 先更新目录树 updatedb
- 然后搜索 locate *.txt
| grep 搜索过滤命令,在前一个搜索命令的结果中按名称进行进一步的过滤
- 搜索命令 | grep 过滤条件
- find *.txt | grep xx 搜索当前目录下,所有包含xx 的txt文件
- 查看命令 |grep 过滤条件
- cat t1.txt | grep beijing (过滤条件区分大小写)
- cat t1.txt | grep -i beijing (过滤条件忽略大小写)
- cat t1.txt | grep -ni beijing (显示行号,忽略大小写)
11、Linux中的压缩和解压命令
- 压缩或者解压单个文件
- 压缩单个文件:gzip 文件名 ,会自动生成一个.gz的压缩包,并且把原来的文件删除。
- 解压单个文件:gunzip 文件名,解压完会把原来的.gz压缩包删除。
- 压缩(打包)或者解压多个文件和目录:
- 压缩(打包):zip 目标压缩包名称 文件或者目录列表 (zip tt.zip t1.txt t2.txt),不会删除之前的文件
- 解压:unzip 压缩包名称 解压到当前目录(unzip 压缩包名称 -d 解压目录名 解压到目标目录 unzip tt.zip -d test1)
- 压缩(打包)或者解压多个文件和目录: tar
- 压缩(打包): tar [选项] 目标压缩包名称(xxx.tar.gz)
- tar -zcvf xxx.tar.gz 文件或者目录列表
- 解压: tar [选项] 压缩包名称(xxx.tar.gz)-C 解压目录名
- tar -zxvf xxx.tar.gz -C 解压目录名
12、Linux中文件或者目录的三种权限:读(read)写(write)执行(excute)
对文件而言:
- 读(read):可以读取查看文件的内容,如:cat more less head tail 等
- 写(write):可以修改文件的内容,如:vi vim等
- 执行(excute):如果该文件是可执行文件(xxx.sh),可以直接运行,如: xxx.sh
对目录而言:
- 读(read):可以读取查看目录的内容,如:ls
- 写(write):可以修改目录的内容,如:在目录下创建、删除、重命名等
- 执行(excute):可以进入该目录,如:cd等
文件或者目录的权限控制:
- 所有者权限:2~4位 使用r/w/x分别表示读写执行的权限
- rwx:拥有读写执行的权限
- r-x:拥有读,执行的权限
- --- : 没有任何权限
- 同组用户权限:5~7位
- 其他组用户的权限:8~10位
修改文件或者目录的权限:
- 用 r w x 分别表示读 写 执行的权限
- 用 u g o a分别表示 给 所有者 同组用户 其他组用户 所有用户 修改权限
- 用+ - = 分别表示给指定的用户增加,减少 ,设置权限
- 例子 chmod
- chmod g-w, o+w t6.txt 用逗号隔开 给同组用户减少写权限,其他组用户增加写权限
- chmod g=rwx t5.txt 给同组用户设置读写执行权限
- chmod a-w t4.txt 给所有用户减少写权限
- 用数字的方式修改文件或者目录的权限
- 每一个权限可以用一个数字表示 r:4 w:2 x:1;
-
- 每一个文件或者目录有三部分权限,每一部分权限都可以用一组数据之和表示
- chmod 777 t1.txt
- chmod 753 t2.txt
13、linux 中关于网络的管理
DNS后面要加一个1 : DNS1=192.168.11.2
14、Linux中关于进程的管理
进程:一个程序的执行,一个进程占用一个端口
线程:一个程序的执行线路,一个进行可能会有多个线程
查看进程:ps (process status)
- ps //只会显示应用进程
- ps -e // 显示所有进程
- ps -ef // 以全格式的形式显示所有进程
- 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中的服务管理
- 服务是支持Linux运行的一些必要程序,本质上也是进程,叫做守护进程;守护进程通常默默地运行在后台,为应用程序提供必要的支撑,比如sshd,防火墙等等。
- 操作服务:systemctl [start、stop 、restart、reload、status、enable] 服务名称。
- systemctl status firewalld 查看防火墙运行状态
- systemctl stop firewalld 关闭防火墙
- systemctl start firewalld 开启防火墙
- systemctl enable firewalld 设置防火墙开机启动
- ***老版本的操作服务使用service命令,效果和systemctl 相同
16、Linux中的软件包管理:软件安装包
RPM包:
- 一种Linux的软件包的打包和安装,他操作的软件包都是以.rpm结尾
- 使用RPM:rpm命令
- 查看当前系统中已经安装的rpm包: rpm -qa rpm -qa|grep firefox
- 卸载rpm包:rpm -e firefox
- 安装rpm包:rpm -ivh xxx.rpm (-i 安装 -v 提示 -h 进度条 需要提前准备安装包)
YUM包:
- 一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。
- 使用yum命令
- 查看当前系统中已经安装的rpm包:yum list installed
- 卸载rpm包:yum remove xxx.rpm
- 安装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