Linux常用命令
Linux基本命令及操作
简介
PC
- Window:个人用户、很友好的图形化界面和操作体验
- Linux:服务器领域;安全、稳定、开源
- MacOS:非常优秀的操作体验,软硬件集成度非常高
Unix:操作系统的鼻祖、大型机操作系统
部署
- linux
- jdk
- mysql
- tomcat
- nginx
发行版=操作系统内核+软件
Ubuntu:linux个人操作系统
OPenSUSE:教育行业
RedHat:行业的服务器操作系统
Centos:用RedHat的源代码编译成的免费服务器操作系统
最美的Linux发行版:ElementryOS
国内的深度OS:DeepinOS
Xshell:SSH客户端,远程连接linux操作系统
基本命令
cd
英文全称:change dirtory
特殊目录:
cd /
根目录cd ~
用户目录cd ..
上一级目录cd -
来回切换
pwd
英文全称:present working directory
作用:查看当前目录
ls
- 作用:列出当前目录的文件
ls -a
列出所有,包括隐藏的文件及文件夹ls -l
长列表模式ls --help|less
查看ls的帮助,并且将输出作为less的输入- –help/-h:
man
- 英文全称:manual(手册)
- 安装方法: `yum install man
- J 向下 k向上 q退出
查看历史命令
history | tail -n 20
显示历史命令的最后20条
history | head -n 10
显示历史命令的最开始10条
tail -f notes.log
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
查看运行中的Java
程序
jps
文件管理
cat 文件名
查看文件内容less 文件名
滚动查看文件内容touch 文件名
创建文件vi 文件名
编写文件>>
例:ls –help >>lshelp.txt- 将ls的帮助内容,输出到txt文件中,不覆盖[>代表覆盖输出]
- rm 删除文件 -r可以删除文件夹
rm -rf
- mkdir 创建文件夹
mkdir -p a/b/c
一次性创建多个文件
cp –r test/ newtest
将当前目录”test/“下的所有文件复制到新目录”newtest”下- 用户使用该指令复制目录时,必须使用参数”-r”
- mv 移动/重命名
- ln 创建连接
命令的别名
- 方式一
cd ~
进入用户目录vi .bashrc
编辑隐藏文件alias la='ls -a'
添加自定义命令名=’原命令名’source ~/.bashrc
重新执行刚修改的初始化文件,使之立即生效
- 方式二
alias la='ls -a'
添加自定义命令名=’原命令名’
VI编辑器
操作模式:esc退回到操作模式
命令模式:按
:
,输入命令编辑模式
i, I
- i 为『从目前光标所在处输入』
- I 为『在目前所在行的第一个非空格符处开始输入』
a A
- a 为『从目前光标所在的下一个字符处开始输入』
- A 为『从光标所在行的最后一个字符处开始输入』
o O
- o 为『在目前光标所在的下一行处输入新的一行』
- O 为在目前光标所在处的上一行输入新的一行
s S
- s 删除当前字符并插入
- S删除当前行并插入
全键盘操作
- j下 k上 h左 l右
- gg 光标移动到第一行第一列
- GG光标移动到最后一行第一列
- $行尾
- 0行头
命令
- vi打开文件
i
进入编辑模式Esc
退回到操作模式- :wq保存退出 :q!不保存退出
r
不进入编辑模式,修改当前的字符u
撤销ctrl+r
反撤销(重做)- d{x}删除
- dw删除一个字母(光标在单词的第一个字母上)
- dd删除一行
- d$删到行末尾
- y{x}复制
- yw复制一个单词
- yy复制一行
- y3y复制3行
- y$复制到行尾
- p粘贴
- x剪切一个字符
建议安装:vim
安装方式:yum install vim
使用方式:
.bashrc中添加alias vi=’vim’
source .bashrc
压缩解压缩
tar 压缩解压缩软件,生成的文件 .tar为后续,tarball
-c
创建一个新的压缩包
-t
列出压缩包中的内容
-x
解压
-f
使用某个压缩文件
-v
描述操作执行的过程
-C
指定解压的文件目录
#解压 tar -C abc -xvf code.tar #压缩 tar -cf code.tar dirs.txt HelloWorld.java # 查看 tar -tf code.tar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
## grep
grep[选项] 关键词 文件...
grep --color
可以修改.bashrc文件,添加 alias grep = 'grep --color'
再source .bashrc
例:
`grep --color h ./helloworld `从当前目录的helloworld文件名中的文件里寻找有h关键字的行匹配
`find /proc/meminfo | xargs grep --color "^[S|s]"`
可以使用参数 `-v`代表仅输出没有匹配的行
## 正则表达式
$行结尾
^d单词的边界
^行的开始
[]多个选一个,|表示或者
`.`任意字符
`*`出现任何次
`[0-9]`数字
`\`转义
## find 查找
`find路径 -name 表达式`
`?`一个字符
`*`任意字符
`[]`任何一个 `[H|d] 以H或者d开头的文件`
- [a-z] 小写字母
- [A-Z] 大写字母
- [a-Z] 大小写字母
- [0-9] 数字
`find 路径 -mtime 数字` 按修改时间查找
`find 路径 -type 类型符号` 按类型查找
```bash
1) f:普通文件,如文本文件,可执行文件
2) d:目录
3) l:软链接文件
4) c:字符设备,如终端,磁带机等
5) b:块设备,如光盘,硬盘等
1 | find . -name "hello*" -exec ls -l {} \; |
管道:把前一个命令的结果作为输入,给到下一个命令执行
find / -name '*a*b*'|grep --color ab
1 | [root@lucas ~]# ls / | grep bin |
用户管理
新建用户:useradd 用户名
切换用户:su 用户名
:删除用户userdel 用户名
设置用户密码:passwd 用户名
- 用户密码在 /etc/shadow
:查看用户各种idid 用户名
usermod
- 修改用户名
uesrmod -l 新的用户名 旧的用户名
- 修改用户组
- 修改主组名
usermod -g 新的用户组 用户名
- 修改附属组
usermod -G 附属组名1 用户名
usermod -G 附属组名1,附属组名2 .。。。用户名
- 修改主组名
用户组管理
新建用户组:groupadd 新用户组名
查看用户组信息:cat /etc/group
删除组:groupdel 用户组名
查看用户的组的信息:groups 用户名
修改:groupmod -n 新的组名 旧的组名
- -n <新群组名称> 设置欲使用的群组名称。
文件基本属性
通过ls -l可以看到文件的属性,包括文件类型和可执行权限等
1 | 文件类型: |
更改文件属性
1、chgrp:更改文件属组
语法:chgrp [-R] 属组名 文件名
参数选项:
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件拥有者,也可以同时更改文件属组
1 | chown [–R] 拥有者名 文件名 |
软件安装方式
yum {install | remove | update} 拥有软件仓库,可以自动获取软件,自动安装软件的依赖包
rpm {-ivh | -e} 仅安装.rpm文件,需要用户自行安装相关依赖包
service
service 服务的名字 操作
service network restart
服务有: network 、 iptables、mysql 、sshd
操作: start(启动) stop(关闭) restart(重启) status(状态)
服务器的搭建
注意:
本教程首先得在VMware Workstation上安装好Linux的发行版CentOS环境
具体安装教程在上一级目录的 “linux” 笔记中,安装完毕后,在linux下测试
ping baidu.com ,网络畅通后才可继续本教程
安装”lrzsz”
作用:可以将本地文件直接上传到Linux的目录中
安装命令:yum -y install lrzsz
JDK
1.将所需文件(jdk-8u171-linux-i586.tar.gz)上传至Linux目录下
rz
2.创建文件夹
mkdir /opt/jdk
3.解压到jdk目录下
tar -C /opt/jdk -zxvf jdk-8u171-linux-i586.tar.gz
进入jdk下的/opt/jdk/jdk1.8.0_171
执行[mv * ..]将所有文件放到上一层目录,这里也可以不如此做,
后面注意路径问题就行了
4.配置环境变量
vi /etc/profile
在文件最后添加
JAVA_HOME=/opt/jdk
JRE_HOME=/opt/jdk/jre
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH JRE_HOME
5.使之生效
source /etc/profile
6.查看是否配置成功
java -version
javac -version
两个命令都有输出,则配置成功,提示Command not found则配置失败
nginx
1.在 /etc/yum.repos.d 目录下创建文件nginx.repo
2.插入如下代码
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
3.安装nginx
yum -y install nginx
4.启动nginx
nginx
注:
nginx 启动
nginx -s stop 停止
nginx -s reload 重新加载
5.Linux上测试是否安装成功
curl localhost
出现ngix的欢迎界面的html代码,则说明安装成功
6.想要在电脑上查看是否安装成功,需要先停止防火墙
service iptables stop
然后电脑输入linux的ip地址就可以访问欢迎界面,
这里可以不加端口号80,浏览器会自动识别
配置nginx
1.修改nginx的配置文件
vi nginx.conf
将
server{
listen 8000;
server_name 192.168.60.138;
location /{
root /opt/upload/;
index index.html index.htm;
}
}
放入最后花括号之前
2.重启nginx
nginx -s stop
nginx
2.导入文件
3.开放8000端口
vi /etc/sysconfig/iptables
添加:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 8000 -j ACCEPT
4.重启防火墙
service iptables restart
5.看一下8000端口是否开放
iptables -nL
6.先访问ip地址+80端口,确认nginx已开启,
192.168.60.138:80
再访问ip地址+8000端口,出现404证明端口已开放
192.168.60.138:8000
再访问ip地址+8000端口+文件路径+文件名
http://192.168.60.138:8000/picture.jpg
tomcat
1.创建文件夹
mkdir /opt/tomcat
2.解压tomcat文件(apache-tomcat-8.5.31.tar.gz)
tar -C /opt/tomcat/ -zxvf apache-tomcat-8.5.31.tar.gz
3.进入/opt/tomcat/apache-tomcat-8.5.31目录
mv * ..
移动后,空的目录可以删除哟
4.启动tomcat
执行命令(注意当前你的位置)
./bin/startup.sh
注:
查看日志: tail -f ./logs/catalina.out
关闭: ./bin/shutdown.sh
启动并查看日志: ./bin/startup.sh & tail -f logs/catalina.out
开放端口
因为linux的安全原因,可以需要将防火墙开启,后果就是无法通过ip+端口访问
解决方式:
方式一:
1.开放端口
iptables -A INPUT -p tcp --dport=8080 -j ACCEPT
2.保存规则
service iptables save
3.查看当前的规则
iptables -nL
4.修改规则后,重启iptables服务
service iptables restart
方式二(推荐):
1.编辑文件
vi /etc/sysconfig/iptables文件
2.添加端口号(这行里面有,直接yy复制,p粘贴,修改自己需要的
端口号就行,这里nginx是80端口,tomcat是8080端口,所以
添加两行,后面增加端口,也是同理放行)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
3.重启
service iptables restart
4.测试是否成功
ip地址+8080端口号
例:http://192.168.0.189:8080/
出现tomcat的欢迎界面,即成功
mysql在线安装
1.安装前置命令包
yum -y install wget
2.查看当前环境上是否安装了mysql
rpm -qa | grep mysql
会有一个是内置的其他软件依赖的,不要去卸载
3.如果安装过mysql可以先卸载以前的老版本
rpm -e mysql
rpm -e –nodeps mysql版本名称(强力删除)
4.安装命令
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum install mysql-community-server
上面的安装下载太慢了,放弃,我选择离线安装,后面的步骤未测试,但别人测试过了,可行
5.启动服务
service mysqld start
6.修改root密码
mysqladmin -uroot password ‘root123’
7.给root授权远程登录
使用控制台登陆mysql,执行命令开启远程访问权限
mysql -uroot -p
GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’ IDENTIFIED BY ‘root123’;
flush privileges;
8.开放3306端口(方法见”自定义开放端口”的方式二)
mysql离线安装
1.上传mysql的安装包
(MySQL-5.6.46-1.el6.i686.rpm-bundle.tar),
并解压到/opt/mysql目录下
tar -C mysql -xvf MySQL-5.6.46-1.el6.i686.rpm-bundle.tar
2.查看是否有mysql的安装
rpm -qa|grep “mysql”
3.先安装兼容包,保证其他软件不挂
yum -y install MySQL-shared-compat-5.6.46-1.el6.i686.rpm
4.卸载mysql-libs
yum -y remove mysql-libs
5.安装server
yum -y install MySQL-server-5.6.46-1.el6.i686.rpm
6.安装client
yum install MySQL-client-5.6.46-1.el6.i686.rpm
7.一些配置
执行安装数据库的命令
mysql_install_db –user=mysql –ldata=/var/lib/mysql
启动
mysql mysqld –user=mysql
配置mysql的root密码,随机密码在 ~/.mysql_secret中
mysqladmin -uroot -p{随机密码} password “root123”
博客:https://blog.csdn.net/u010096371/article/details/51725895
8.开放3306端口
编辑/etc/sysconfig/iptables
service iptables restart
9.给root授权远程登录
使用控制台登陆mysql
mysql -uroot -p
执行命令开启远程访问权限
GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’ IDENTIFIED BY ‘root123’;
flush privileges;
exit
重启mysql
service mysqld restart
10.在Windows下用navicat访问数据库,测试是否成功
mysql安装三
上面两种都太慢,我选择
yum install -y mysql mysql-server
安装完成后,启动服务…和上面一样的步骤
最后测试是否成功
1.将项目导成warbao,放入webapps下面
2.关闭tomcat再打开
关闭:./bin/shutdown.sh
启动并查看日志: ./bin/startup.sh & tail -f logs/catalina.out
注意:自己的当前路径
mysql安装四
上面三种都太菜,我选择第四种,没测试过
yum上mysql的资源有问题,所以不能仅仅之用yum。在使用yum之前还需要用其他命令获取mysql社区版
cd /tmp wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm
1
2
3
4
5
- 接着就可以通过yum安装了:
- ```bash
yum install mysql mysql-server mysql-devel -y以上只是安装,执行如下命令才能启动mysql服务器:
systemctl start mysql.service
安装后会自动启动,启动后会占用3306端口。 使用如下命令查看3306端口是否启动,如果启动了则表示mysql处于运行状态。
netstat -anp|grep 3306
小结:
各软件端口号:
- tomcat:8080
nginx:80
mysql:3306
配置nginx监听端口:8000
Nginx
作用
反向代理
动静分离
#实现方式 在locaction下面添加一个新的location: location ~\.(css|js|png)$ { root C:/Users/X7TI/Downloads/tomcat_8111/webapps/ROOT; } 这表示所有的css js png访问都由nginx来做,访问的地址是 C:/Users/X7TI/Downloads/tomcat_8111/webapps/ROOT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
- 负载均衡
- session共享
http服务器,静态资源服务器+反向代理,负载均衡
ng+tomcat集群,服务器横向的扩展
步骤:
- 新建一个项目,在jsp文件里`<%=request.getLocalPort()%>`打印当前项目端口,便于最后测试是否nginx部署成功,将项目导成war包,导入linux的tomcat的webapps中,然后开启tomcat呗,这个就默认的8080端口吧
- 服务器再开一个tomcat(模拟,实际情况是新开一个服务器,新开一个tomcat),内容和另一个tomcat一样,直接copy就行了
- 修改tomcat文件里的conf/server.xml文件,将端口设为8081
- `vi /opt/tomcat/conf/server.xml`
- ```bash
#找到下面的几段,前面和后面的修改是为了和另一个tomcat的端口不冲突,因为我的修改是在一个服务器运行两个tomcat,中间的才是真正的端口修改
<Server port="8006" shutdown="SHUTDOWN">
...
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
bin/startup.sh
在tomcat目录下,直接启动新开的tomcat开房8081端口
vi /etc/sysconfig/iptables
重启防火墙
service iptables restart
配置nginx
1 | upstream netitcast.com { #服务器集群名字 |
- 重新加载配置
nginx -s reload
- 外部访问
192.168.60.109/greeting
观察端口变化
Maven
Linux下的搭建
首先得安装wget(没有的情况下)
yum -y install wget
在网址
http://maven.apache.org/download.cgi
中找到Link下的maven文件链接,右键复制,有bin的在linux下安装
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
解压
tar -xzvf apache-maven-3.6.2-bin.tar.gz
解压到当前目录
我个人将解压后的apache-maven-3.6.2文件夹下的所有内容,使用
mv * ..
移动到上一级目录了配置环境变量
vi /etc/profile
MAVEN_HOME=/opt/maven PATH=$MAVEN_HOME/bin:$PATH export MAVEN_HOME
... 注意:在这个标签是配置maven文件的存放目录 <localRepository>D:\UserData\repo</localRepository> .... 注意:下面的是配置下载路径,从阿里下载 <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>1
2
3
- 修改/opt/maven/conf/settings.xml文件,在158行左右会看见</mirros>,在其上面添加,添加的内容在`https://maven.aliyun.com/mvn/view`点击右上角的使用指南,往下拉就能看见1
2
3
4
5
6
7
8
9
- 使用`mvn -version`来测试一下
#### Windows下的搭建
1)下载 http://maven.apache.org/download.cgi 并解压到合适的目录,有bin的
2)配置环境变量
新增系统变量
变量名:MAVEN_HOME
变量值:maven安装目录,例:F:\maven\apache-maven-3.6.2修改path,加入%MAVEN_HOME%\bin
1
2
3
4
5
6
7
3) 测试 `mvn -version`
4) 修改配置文件
- 修改F:\maven\apache-maven-3.6.2\conf下的settings.xml文件,将53行的 <localRepository>/path/to/local/repo</localRepository>复制下来,将中间的目录修改为自己想要的存放目录,在</mirrors>上添加aliyunmaven * 阿里云公共仓库 https://maven.aliyun.com/repository/public