-
Linux是基于Unix的开源的操作系统,我们常说的Linux是基于Linux内核,包含gcc、vim、apache、emacs、sendmail等工具和软件的操作系统。
应用:服务器操作系统、嵌入式操作系统。
Fedora是Redhat用来测试最新软件或工具的测试系统,CentOS是Redhat的社区版本,适用于服务器。 -
Shell
Shell是用户与内核进行交互操作的接口,分为命令行式和图形式两大类。
命令 [-选项, ...] 参数1, 参数2, ...
ls:查看目录下内容
-l:以列表方式显示
-h、–help:查看帮助
man:获取使用手册 -
Linux文件系统
目录结构:
/:根目录
/root:root用户的家目录,包含root用户启动时用到的配置。
/home:其他用户的家目录,用于存放用户自己的文件和应用。
/etc:存放各种系统和应用的配置文件,如用户账号、防火墙设置等。
/dev:硬件设备对应的文件。
/lib:各种函数库和核心模块。
/sbin:开机过程中所需的开机、修复、还原系统所需要的指令,只有root用户可以执行。
/usr:类似“C:\Windows\”和“C:\Program Files\”,可以在这里安装应用。
/bin:包含所有用户都可以执行的系统指令。路径表示方法:
绝对路径表示法:/usr/share
相对路径表示法:…/bin/date,./man
对于家目录的表示方法:表示当前用户的家目录,account代表用户account的家目录。操作命令:
pwd:当前工作目录的完整路径。
cd:改变当前工作目录。(cd -
:回到前一个工作目录)
ls:列出文件和目录的信息。(-a列出全部文件;-l按长数据格式列出文件属性;-r:递归列出子目录内容)
cp:复制文件或目录。(cp file /tmp/file1
:将file复制到/tmp目录下并重命名为file1;cp -r /etc /tmp
:将整个/etc目录复制到/tmp目录下)
rm:删除文件或目录。(-f:强制删除;-r:删除文件夹)
mv:移动文件或目录、重命名。
mkdir:创建目录。(-p:若父目录不存在,自动创建父目录)
rmdir:删除空目录。(-p:若删除后父目录为空,一起删除父目录)可以多个选项同时使用,如
ls -alR
;可以使用通配符:如ls a*
列出以a开头的文件。 -
查找文件
find:在指定目录下查找具有某些特征的文件,包括文件权限、所属用户或组、大小、类型、时间等。
find 路径 选项
-name:按文件名查找。
-perm:按文件权限查找;
-user:按文件所属用户查找;
-group:按文件所属组查找。
-type:查找某一类型的文件。(b:块设备文件,d:目录,c:字符设备文件,p:管道文件,l:符号链接文件,f:普通文件)
-newer:比较两个文件的更改时间。(find . -newer s ! -newer e
:查找更改时间在s和e之间的文件。)
-size:根据文件大小查找文件。(find . -size +10
:查找大小大于10个数据块的文件;find . -size 100c
:大小正好为100字节的文件)
-mtime、-atime、-ctime [-/+]n:按照文件的更改时间、访问时间、属性被修改的时间查找文件。(n:n天前当天的文件,-n:n天以内;+n:早于n天前的文件)find 路径 选项 -exec command {} \;
对找到的文件执行command参数所给出的shell命令。-exec替换为-ok,则每次执行前要求确认。(find /tmp -type f -mtime +7 -exec rm -f {} \
:强制删除/tmp目录下更改时间在7天以前的普通文件。)grep:使用正则表达式搜索文本,并打印匹配的行。
grep [选项] 正则表达式 [文件]
(多个文件名用空格隔开)
-c:只输出匹配行的计数。
-i:不区分大小写。
-h:不显示文件名。
-l:只显示文件名。
-n:显示匹配行及行号。
-s:不显示错误信息
-v:反选
grep '059[123]' file
:查找0591、0592、0593;
grep '^data' file
:匹配行首的data字符;
grep 'data$' file
:匹配行尾的data字符;
grep '[A-Z]...D' file
:匹配大写字母开头、d结尾、长度为5的字符;
grep '[0-9]\{9\}' file
:匹配长度为9的数字(有转义字符)
grep 'a\{5,8\}'file
:匹配长度为5到8的aaaaaa。
字符串用双引号,正则表达式用单引号。 -
用户和用户组
root用户:可以操作系统中的任何文件和命令,拥有最高权限。
系统用户:不能用于登陆,但对系统运行有重要作用。
普通用户:可用于登陆,但权限受到限制。
一个用户可以加入多个组,但必须有一个基本组。
/etc/passwd文件:所有用户的信息。(用:分隔开,包括用户名,密码占位符,用户id,用户组id,注释信息,用户家目录,用户默认shell)whoami
:查看当前用户名。
id
:查看用户和组的id。(uid:用户id,gid:组id;root为0,系统用户为1-499,普通用户为500以上)
groups
:查询当前用户所属的全部组。
useradd ffcs2 -u 700 -g users
:创建新用户,uid为700,基本组为users。
passwd ffcs2
:给新用户创建密码。
usermod -G root ffcs2
:把用户加入root组。 -
权限
ls -l
查看文件权限。第一个字段的10个字符:
第1个字符为文件类型(-为常规文件;d为目录;l为符号链接;c为字符专门设备文件;b为块专门设备文件;p为管道文件;s为套接字)
后面9个字符3个位一组:文件所属用户的权限,文件所属组的权限,其它用户的权限。(r为读,w为写,x为执行)目录的权限:rwx对应允许列出包含的文件和目录、允许创建和删除文件、允许进入该目录。
chmod:修改权限
chmod [选项] [对象] [操作] [权限] 文件
[对象]:u为所属用户,g为所属组,o为其他用户,a为ugo三种全部。
[操作]:+增加权限,-去除权限,=设置权限。
[权限]:r、w、x。
chmod [选项] 八进制模式 文件
chmod 750 file
表示对file文件设置权限rwx r-x —(111 101 000即750)。 -
进程
交互进程:需要与用户交互。如ftp程序进程。
批处理进程:不与用户交互,启动后执行一个任务就结束了。如find命令。
守护进程:一直在后台运行,不受终端控制的一种特殊进程。如httpd服务程序。ps命令查看进程:
-l:长格式输出。
-u:按用户名顺序显示进程。
-f:用树形格式显示进程。
-a:显示所有用户的所有进程。
-e:显示每个进程所使用的环境变量。
-x:显示所有进程,不以终端机来区分。
-r只列出现行终端机正在执行中的进程。
-w:避免详细参数被截断。
ps aux
:查看所有进程及进程的CPU和内存使用情况。
ps auxf
:更容易判断出父子进程关系。
ps -ef
:查看所有进程及进程的PPID。
ps -ef | grep httpd
:显示httpd程序对应的进程。终止进程:
kill [信号代码] pid
-15:正常退出进程
-9:强制终止进程(-15无效再用-9)kill pid
等同于kill -15 pid
只有root用户才能kill其他用户的进程。服务:
systemctl status:查看服务状态。
systemctl start:启动服务。
systemctl stop:停止服务。 -
环境变量
env
:查看当前所有环境变量。
env|grep 变量名
或echo $变量名
:查看特定环境变量。
export [变量名]=[变量设置值]
:设置或显示环境变量。
unset 变量名
:清除环境变量。
HOME:用户的家目录路径。
LOGNAME:当前用户的用户名。
PATH:进程命令或脚本查找的目录顺序。目录之间用:隔开。
SHELL:获取当前环境使用的shell
PS1:设置命令提示符(\u为当前用户名,\h为主机名,\w为当前目录)
PS2:附属提示符,用于执行超过一行的命令。
PWD:当前目录路径名。 -
安装软件
RPM软件管理器
vsftpd-3.0.2-22.el7.x86_64.rpm
vsftpd:软件名
3.0.2-22:版本号
el7:适用于RHEL7(Red Hat Enterprise Linux)的发行版
x86_64:适用硬件uname -r
查看当前系统版本。
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
:安装软件包(i为安装,v显示详细信息,h显示进度条)。
rpm -q vsftpd
:查询软件是否安装。
rpm -e vsftpd:
卸载软件。
rpm -qa
:查询所有安装软件。
rpm -Uvh ***.rpm
:升级软件包。
rpm -K ***.rpm
:验证rpm软件包。
rp, -V ***.rpm
:验证已安装的软件。如果rpm软件安装包需要的依赖没有安装,则安装无法进行。
YUM在线安装软件
自动下载rpm包安装包,自动处理依赖关系。
软件仓库的配置文件在/etc/vum.repos.d/*.repo配置完软件仓库后,执行
yum clean all
清除缓存,
yum repolist all
显示所有仓库,可以看仓库是否启用成功。
yum install php
安装php软件及其依赖。
yum list php
显示php已经安装。
yum update php
:升级软件。
yum remove php
:删除软件。 -
远程管理工具
TELNET:明文传输。
SSH:对数据进行加密。SSH远程管理:
服务器安装SSHD服务并启动,ps -ef | grep sshd
查看进程,systemctl status sshd
查看服务状态。
登陆命令:ssh root@192.168.7.168 -p 22
,SSH默认为22端口,可以用-p参数指定端口。远程文件传输命令:
scp [选项] 源文件 目标地址
scp test.txt root@192.168.7.168:/root/
:传输文件到远程服务器。
scp root@192.168.7.168:/root/remote.txt ./
:将远程文件复制到本地当前目录下。
-r:递归复制目录
-P:指定端口
-C:进行压缩传输XShell
Windows使用XShell访问远程主机。 -
快速搭建Tomcat服务
下载好jdk和tomcat软件包,使用XShell上传到Linux服务器,或直接使用wget下载安装包。安装jdk:
安装:rpm ivh jdk-8u181-linux-x64.rpm
,确认安装:rpm -q jdk1.8
,确认安装路径:rpm -ql jdk1.8 | more
。
配置环境变量:vi /etc/profile
进入编辑,shift+G移动到文件末尾,按i进入插入编辑模式,加入export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
按esc退出编辑模式,输入:wq保存退出。
执行source /etc/profile
使配置生效。
执行java -version
测试jdk注意版本号是否正确。安装tomcat:
新建文件夹:mkdir -p /usr/tomcat
,cd /usr/tomcat
。
将tomcat软件包复制过来:cp /root/apache-tomcat-9.0.12.tar,gz ./
。
解压并解包:tar -zxvf apache-tomcat-9.0.12.tar.gz
。
执行./apache-tomcat-9.0.12/bin/startup.sh
启动tomcat。设置开机启动:
执行vi /etc/rc.d/rc.local
,在文件最后输入o新增一行并进入插入编辑模式,增加以下内容:/usr/tomcat/apache-tomcat-9.0.12/bin/startup.sh
按esc退出编辑,输入:wq保存退出。
增加执行权限:chmod +x /etc/rc.d/rc.local
。配置防火墙:
设置防火墙:firewall-cmd --add-port=8080/tcp --zone=public --permanent
。
刷新使配置生效:firewall-cmd --reload
。
查看所有规则:firewall-cmd --list-all
确定8080端口可以访问。 -
安装mysql
安装yum仓库:
下载:wget https://dev.mysql.com/get/mysql180-community-release-el7-1.noarch.rpm
。
安装:rpm -ivh mysql180-community-release-el7-1.noarch.rpm
。
ls /etc/yum.repos.d/
查看生成的两个repo文件。安装mysql:
yum install -y mysql-community-server
启动数据库服务:
systemctl start mysqld
设置开机自动启动:
systemctl enable mysqld
设置数据库密码:
获取安装时的临时密码:grep 'temporary password' /var/log/mysqld.log
。
设置root的密码:执行mysqladmin -u root -p password
,输入临时密码,再输入新密码。
登陆数据库验证一下:mysql -u root -p
。设置允许远程连接:
use mysql; update user set host='%' where user='root'; --任何客户端及其都能以root用户登录到mysql服务器 flush privileges; --刷新权限 alter user 'root' @'%' identified with mysql_native_password by 'ffcs@123456'; --为root用户重新设置密码
配置防火墙:
mysql默认端口3306
设置防火墙:firewall-cmd --add-port=3306/tcp --zone=public --permanent
。
刷新使配置生效:firewall-cmd --reload
。
福富网大课程笔记 - JAVA初级阶段 - 03轻松玩转Linux
最新推荐文章于 2024-08-29 15:39:07 发布