Linux命令:
ip addr 查看ip地址
pwd 查看当前路径
ll 查看当前目录下的详情,=ls -l
ls 查看当前路径下有哪些文件,只显示文件名字
-a 显示所有文件包括隐藏文件
su 切换用户
cd ~ 进入到家目录
相对路径:从当前路径开始
绝对路径:从根目录下找
tab键具有补齐的作用
mkdir创建目录test(root账号创建)
绝对路径:mkdir /root/test
相对路径:cd ~ mkdir test
递归创建目录:mkdir -p test/test1/test2
rmdir test 删除空目录
rm -r test 删除非空目录
rm -rf test 强制删除非空目录
rmdir -p test/test1/test2 递归删除空目录,将test整个目录都删掉
ctrl+c 强制退出
mv a(源路径) b(目标路径)将a移动到b目录下
mv a(源路径) b(不存在路径)将a修改成b---重命名
touch test1 创建空文件test1
touch test1 test2 同时创建test test2
cp /etc/profile . 将profile文件复制到当前路径下
cat profile 查看profile内容,从头到尾
cat a b 将a文件和b文件内容按照顺序拼接显示
cat -n profile 对输出内容每行进行编号
cat -b profile 不对空白行进行编号
cat -n profile >profile_copy 将profile文件输出的带有编号的内容写入新文件profile_copy中
tac profile_copy 倒序显示
head profile_copy 默认显示内容前十行
head -5=head -n 5 显示前五行
tail profile_copy默认显示后十行
tail -5=tail -n 5 显示后五行
tail -f xxx.log 实时日志文件
more profile 分页查看显示百分比
more +5 -5 从第五行开始,每页显示五行
空格向下翻页,B向上翻页,回车键一行一行
看完即结束、Q,ctrl+c/z
less profile 分页查看,不显示百分比,需要Q或者ctrl+c/+z才能结束
less -m profile 分页查看显示百分比
less -N profile 分页查看显示序号
/ 关键字 向下搜索关键字
? 关键字 向上搜索关键字
echo “test” 会显示test
echo $PATH 将环境变量的值显示出来
echo 4 > test.txt 将4写入test.txt,且覆盖原来内容
echo 4 >> test.txt 将4追加到文件下一行
echo 'tt $PATH'显示tt PATH
echo "tt $PATH"显示变量的值
命令 --help 可以查看解释以及用法
main
history
vi 有三种模式,进入编辑或者底行模式,必须进入命令行模式
vi profile
第一种:进入命令行模式,光标默认位于首行第一个字符
第二种:i a o I A O 进入编辑模式,进入命令行模式按ESC
第三种:shift + : 进入底行模式,进入命令行模式按ESC
q(什么都不操作直接退出)
q!(强制退出,不保存)
wq(保存并推出)
vi test(不存在):直接新建test文件
vi +5 profile 打开光标默认显示第五行首字符
vi + profile 打开文件光标默认显示最后一行首字符
vi profile profile_copy 打开多个文件,底行模式N,向上切换文件,n向下切换文件
命令行模式
键盘:上k 下j 左h 右l 前面都可以加数字,切换到第几行
左移:
h 左移1个字符,nh左移n个字符
Backspace 左移1个字符
b/B 光标左移当前字至字首 before
右移:
l 右移,nl右移n个字符
space
w或W:光标右移下一个字至字首
e或E:光标右移当前字至字尾
上移:k 上移一行,nk上移n行
下移:j 下移一行,nj,enter
{ 光标至段落开头
} 光标至段落结尾
gg或者1G光标移动到首行首字符
nG移动到n行的行首
G移动到文件末尾行首
o将光标移动到当行的行首
$将光标移动到当行的行尾
dd删除光标所在的一行
d1G删除从光标所在行一直到第一行
dG删除从光标所在行一直到最后一行
dnG从光标所在行开始删除n行
u代表退回 撤回
设置行号
必须在底行模式下进行:set nu
查找关键字---命令行模式
/关键字,从代表光标开始向文件尾部查找
?关键字,从代表光标开始向文件头部查找
查找并替换---底行模式
语法:搜索范围s/搜索的关键字/替换的字符/g(c)
s/p1/p2/g 搜索范围是光标所在行,将p1替换成p2
s/p1/p2/gc 搜索范围是光标所在行,将p1替换成p2,但是需要先确认
1,10s/p1/p2/g 搜索范围是1-10行,将所有的p1替换成p2(gc要先一个一个确认)
%s/p1/p2/g 搜索范围是全文,将文本红所有的p1替换成p2(gc要先一个一个确认)
复制粘贴
yy 复制光标所在一行
nyy 从光标开始向下复制n行
小p向下粘贴
大P向上粘贴
grep 文本搜索
grep NOT profile 显示该文件里NOT关键字所在行
grep -n then profile 显示行号
grep -r hostman profile 不区分大小写
grep -l then profile profile_copy my.txt 只显示then关键字存在的文件名
grep -r then test (存在profile和profile_copy)对目录进行查找,会显示路径test/profile;关键字所在行内容
| 管道符 前面的输出是后面的内容
如:
ll |grep .local 没有回显,因为执行ll后,不显示隐藏文件.local
ll -a | grep .local显示.local,因为ll -a显示隐藏文件.local
cp
cp a b若a,b都是文件,a可以覆盖b
cp a b若b是目录,a复制到b目录
cp -r a b 若a是目录,必须有 -r,将a目录复制到b目录中
cp a b/c 将a拷贝到b目录中并重命名
rm文件名,提示确认删除文件
rm -f 文件名 直接删除文件
rm -r 目录(文件) 提示确认删除
rm -rf 目录(或文件)直接删除
rm -rf test* 直接删除test开头的文件或者目录
Linux服务器之间拷贝文件
scp
本地服务器上传文件到对方服务器
scp your.txt (本地路径) root@192.168.10.129(对方服务器的用户名和地址):/home/(对方服务器目标路径)
本地服务器下载对方服务器的文件
scp root@192.168.10.129(对方服务器的用户名和地址):/home/69test(源文件路径) /home/(本地服务器目标路径)
重要命令
find / -name 文件名 根目录下查找,回显文件所在路径
find -name 文件名 当前路径查找
find / -name 文件名 -exec cat {} \; 将文件找到后执行命令
文件权限 r读 w写 x执行
修改文件权限:
-文件 d目录
---拥有者 ---所属组 ---其他人
字母法:u代表文件拥有者,g代表文件所属组,o代表其他人
chmod u+r 文件名,代表给文件拥有者赋予可读的权限
chmod u-r 文件名 代表给文件拥有者取消可读的权限
chmod u+r,g+w,o+x 文件名,代表给文件拥有者加读的权限,给文件所属组加写的权限,给其他人加执行的权限
chmod +x 文件名,代表给所有人加上执行的权限
数字法:r=4,w=2,x=1
chmod 777 文件名 代表给文件拥有者、所属组以及其他人的权限都是读写可执行
chmod 754 文件名 代表文件拥有者读写可执行,所属组读和可执行,其他人读
chmod 777 目录名 -R 代表该目录和目录下的所有文件及目录都是读写可执行
netstat -anp | grep 端口号
关闭进程:
kill -15 进程号:正常结束进程,释放进程占用的资源,但是进程可能还会起来
kill -9 进程号:强制杀掉
管道符:| 前面的结果 后面的输入
ping:检测能否互相通信的命令
ping ip地址 -c 次数
磁盘管理命令
df (-h)查看Linux服务器的文件系统的磁盘占用情况
free (-h)查看Linux中的内存
du (-h)查看目录/文件
加上-h,展示控件使用大小 更改单位
mem代表内存
系统资源查看
top:性能分析工具,查看各个进程的资源占用情况,类似于Windows的任务管理器
top -d 时间
ps:显示正在执行的进程
ps // 只显示应用进程
ps -e显示所有进程
ps -ef以全格式的形式显示所有进程,查看Linux系统某一些软件和应用是否处于启动状态
ps -ef | grep 程序名,查看软件是否启动
服务
1、服务(service)本身就是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如(防火墙,mysql,sshd),又称为守护进程
2、列出所有服务:systemctl list-unit-files=systemctl --type service
3、启动服务:systemctl start mysqld
4、查看mysql的服务:systemctl status mysqld
5、服务的命令:systemctl 【start、stop、restart、status】 服务名
6、防火墙:firewalld
备份压缩命令:
gzip:压缩文件,经过压缩后,名称后会多出“.gz”,不保存源文件
不能对目录直接压缩
-c 将输出写到标准输出上,并保留源文件
-d 解压,文件名必须有 .gz
-r 递归式查找指定目录并压缩其中的所有文件,会将目录中的所有文件逐个压缩,逐个解压就是 -rd
gunzip:从.gz解压文件
-c保留源文件
tar:打包,vf同时出现
-cvf,打包
-xvf,解包
-zcvf,打包压缩
-zxvf,解包解压
如果指定路径,则在最后 -C(大C)
zip:是Linux和Windows唯一通用的压缩
-r 压缩目录 目标文件名 源文件
unzip:-d指定解压后存储的目录
区别:
gzip和gunzip 删除源文件,-c保留原文件,-r目录
tar命令不会删除源文件,且能处理目录
zip、unzip不会删除源文件,-r处理目录
其他
rpm
-qa 查询
-ivh xxx.rpm 安装
-e xxx.rpm 卸载
-U 升级
-qa | grep
-qa | more
date:日期
更改格式按照:月月日日时时分分年年年年.秒秒
YUM:.repo
包存放地址:/etc/yum.repos.d
yum list | grep 包名 查找程序中所有包文件
yum list installed 查看所有安装过的包
yum install 安装
yum remove 卸载
YUM和rpm的区别
使用rpm需要注意依赖关系,要预先安装好依赖包
使用yum能够自动从程序获取相应的安装包和依赖包
yum类似于包的仓库
wget 一种下载工具 可以从网络上下载包,类似于迅雷
环境搭建:
JDK语言环境:
第一步: 在/opt目录下新建两个目录soft和model
(soft放一些软件安装包,model是软件安装路径)
cd /opt
mkdir model soft
第二步: xftp工具上传安装包到 将jdk上传到/opt/soft
jdk安装包:jdk-8u291-linux-x64.tar.gz
第三步: 解压jdk压缩包到/opt/model
cd /opt/soft
tar -zxvf jdk-8u291-linux-x64.tar.gz -C /opt/model
第四步: jdk环境变量设置(在/etc/profile文件中配置)
vi /etc/profile
export JAVA_HOME=/opt/model/jdk1.8.0_291
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./$JAVA_HOME/lib:$JRE_HOME/lib
环境变量生效
source /etc/profile
第五步: 验证jdk环境配置成功
java
javac
java -version
TOMCAT应用服务器:
第一步: 上传Tomcat压缩包到/opt/soft
第二步: 解压压缩包到/opt/model
unzip -d /opt/model apache-tomcat-8.0.50.zip
进入model目录看一下是否解压成功
cd /opt/model
第三步: 修改解压文件夹的权限
chmod -R 755 apache-tomcat-8.0.50
第四步: 修改tomcat包名
第五步:启动Tomcat,切换到Tomcat的bin目录下,执行./startup.sh
第五步: 访问Tomcat
(如果访问不了,查看一下防火墙情况
systemctl status firewalld
)
MYSQL数据库:
第一步:下载mysql源安装包
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
第二步:安装mysql源
rpm -ivh mysql-community-release-el7-5.noarch.rpm
第三步:安装MySQL
yum list | grep mysql
yum install mysql-community-server.x86_64
第四步:安装成功后重启mysql服务
systemctl restart mysqld
第五步:登录进入mysql(初次安装mysql,root账号没有密码,密码直接回车)
mysql -u root -p
第六步: 设置mysql的系统管理员root密码(这里的root不是linux的root)后,退出
语法:
set password for 'root'@'localhost'=password('数据库密码');
set password for 'root'@'localhost'=password('123456');
配置Mysql
更改字符集
mysql -u root -p 输入密码进入mysql(密码是刚才改的123456)
status
Linux安装mysql,mysql数据库的默认字符集编码是latin1。
(latin1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号,但它并不支持中文。UTF-8包含全世界所有国家需要用到的字符,是国际编码。所以我们要修改mysql数据库默认编码为utf8。)
第一步: 修改mysql的配置文件(mysql配置文件为 /etc/my.cnf)后保存。
vi /etc/my.cnf
在[mysqld]段增加下面的编码:
character-set-server=utf8
在最后一行后面加:
[mysql]
default-character-set=utf8
第二步:重启 mysql 服务后,进入mysql
systemctl restart mysqld
mysql -uroot -p
第三步:输入status查看
status
远程连接设置
刚安装好的mysql只支持本机连接,需要开启远程连接才可以远程访问。
第一步: 登录mysql
mysql -uroot -p
第二步: 使用mysql数据库:
use mysql;
把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户:
grant:赋权命令;
all privileges:当前用户的所有权限
on:介词 ;
*.*:当前用户对所有数据库和表的相应操作权限
to:介词 ;
‘root’@’%’:权限赋给root用户,所有ip都能连接
identified by ‘123456’:连接时输入密码,密码为123456
GRANT 权限 ON 数据库.* TO 用户名@'登录主机' IDENTIFIED BY '密码'
grant all privileges on *.* to root@'%'identified by 'password';
刷新权限:flush privileges;
查看是否成功:
use mysql
select host,user,password from user;
开机自启动设置
第一步: 检查mysql服务是否开机自启动,设置mysql服务开机自启动,以后就不用手动启动mysql服务
systemctl list-unit-files | grep mysql
若是disable,则需要设置开机自启动
systemctl enable mysqld
取消mysql开机自启动: systemctl disable mysqld