-
-
-
-
Linux常见命令学习
使用远程连接工具连接Linux服务器
连接linux服务器需要的信息
- 服务器的IP地址
- sh协议的端口号
- 服务器的用户名
- 用户名对应的密码
连接linux服务器常用的工具:
- xshell
- Windows(Linux、macOS)系统自带的dos窗口(cmd)
- PuTTY
- google浏览器的一些插件也可以连接Linux服务器
- 手机上面的一些APP也可以连接
使用xshell连接Linux服务器
有两种连接方式
- 通过xshell去创建快捷连接方式
- 通过命令行去连接linux服务器
- 通过cmd去连接Linux服务器
- 通过xshell去创建快捷连接方式
设置xshell工具
- 设置复制粘贴快捷键(选中文本就可以自动复制,点击鼠标中间滚轮按钮就可以粘贴复制到的内容)
- 设置复制粘贴快捷键(选中文本就可以自动复制,点击鼠标中间滚轮按钮就可以粘贴复制到的内容)
Linux常用命令
[root@localhost~]
详解- 方括弧中的root代表当前连接的用户名
- localhost 指的是所连接的服务器的hostname(具体可以直接使用haostname查询)
~ 位置所指的是用户当前所在的目录
- ~ 这个波浪线所指的是当前用户根目录
- home 指的是当前用户所在目录为home
- / 当前系统的根目录
cd 切换工作路径
- cd / 切换到当前系统根目录
- cd ~ 切换到当前用户根目录
- cd /home 切换到当前系统根目录下的home目录下(绝对路径)
- cd home 切换到home目录下(从当前工作路径下寻找--相对路径)
- cd .. 返回上一级目录(其实..是一个目录)也可以是用cd ../../返回上两级目录,如果是三个../那就是返回三层
- cd /var/log/chrony/ 切换多层目录
- pwd 查询当前工作路径(用于展示当前工作的路径)
- tab键 用于命令提示和补全功能键
- ctrl + c 快捷键把当前用户前台正在命令窗口运行的一些东西强制停止,返回等待输入的状态
df 查询已挂载磁盘使用情况
- df [参数] [文件名]
参数:
- -a:all 显示已挂载全部的文件磁盘信息
- -h:以二进制展示已挂载的全部文件的磁盘大小信息
- -H:以十进制展示已挂载的全部文件的磁盘大小信息
- df -h /home 查询的是根目录下home目录的磁盘信息
- df -h 在没有加目录的情况下默认使用根目录
磁盘挂载
- 在Linux下磁盘是挂在目录下的
- 在目录下挂载磁盘,linux系统会把此目录下所有的文件存储到挂载的磁盘中
cp 复制
cp [源] [目标] 复制文件,从源复制某个文件或者文件夹到目标
- cp -r abc webserver/bcd 详解:-r 对文件夹操作,把abc文件夹复制到webserver下并且重命名为bcd
- cp 111.txt ../ 详解:把111.txt文件复制到上一层目录,如果不强制指定文件名称,则使用源文件名称
- cp 111.txt ../222.txt 详解:把111.txt文件复制到上一层,且重命名为222.txt
- 备份:cp 源文件 源文件名称.20190115001.bak
- 恢复:mv 源文件名称.20190115001.bak 源文件名称
scp [源] [目标] 从网络中别的服务器复制文件(跨服务器复制)
- scp -r 登陆此服务器的用户名@ip:/home/abc /home/
- scp -r root@192.168.3.130:/home/abc /home/
mv 剪切
mv [源] [目标]
- mv 111.txt ../ 详解:把111.txt文件剪切到上一层目录,如果不强制指定文件名称,则使用源文件名称
- mv 111.txt ../222.txt 详解:把111.txt文件剪切到上一层,且重命名为222.txt
- mv 111.txt 222.txt 详解:可以直接当成重命名(剪切此文件,并重命名为222.txt 到当前目录下)
删除
rm [文件或者文件夹]
- rm 文件名称 :带提示符的删除文件
- rm -r 文件夹:带提示符对文件夹的删除操作
- rm -rf 文件或者文件夹:对文件或者文件夹的操作,不带提示符,直接删除
新建
mkdir 新建目录
- mkdir abc :在当前目录创建一个叫abc的目录
- mkdir /home/abc/bcd :在系统根目录的home下的abc目录下创建一个叫bcd的目录(必须保证上层目录是已经存在的)
- mkdir -p abc/1/2/3/4/5/6/7/8/9/0 :创建多层空目录
新建文件
touch 创建文本文件
- touch 111.txt 创建一个111.txt的空文本文件
- vi、vim
- vi或者vim命令可以用于创建文件,但前提是必须对文件进行编辑且要不是空文件的时候才可以创建
vi 修改
vi、vim(如果没有此命令则执行yum install vim -y 进行安装)
- a 光标后退一格进行编辑
- i 光标原地不动编辑
- o 光标换行编辑
- insert 就是i的缩写
- esc键退出当前可编辑状态
在未编辑状态下:
- :q 退出vi或者vim命令(前提是文件未被修改,如果修改,则会报错)
- :q! 不保存强制退出vi命令
:wq 保存且退出
#!/usr/bin/env bash echo "我爱学习,学习使我快乐!" echo "我爱工作,工作使我快乐!"
find [查找的目录] [参数] [参数值]查找(只列出常用的-name参数,其他参数可自行百度linux下find命令详解)
- 精确查找:find / -name 111.txt
- 模糊匹配:find / -name *.txt
- 模糊匹配:find /home/ -name 1.
上传、下载(rz、sz)
- 首先要安装一个上传下载的命令:yum install lrzsz -y
- 上传:rz(只可以上传文件,不可以上传文件夹)
- 下载:sz [需要下载的文件名称]
解压
zip、tar.gz(linux中特有的压缩文件)
- 需要安装解压命令:yum install unzip -y
- unzip 压缩包名称
- tar.gz包解压:tar -zxvf 需要解压的文件名称
- tar.gz包压缩:tar -zcvf 压缩后的文件名称.tar.gz 源文件或者目录
- tar包解压:tar -xvf 需要解压的tar包名称
- tar包压缩:tar -cvf 压缩后的文件名称.tar 源文件或者目录
安装
yum
- yum install [需要安装的软件名称] [-y表示无需提示用户,直接确认]
rpm
- 安装:rpm -ivh [需要安装的安装包](需是rpm后缀的安装包)
- 卸载:rpm -e --nodeps [已安装软件名称1 已安装软件名称2...]
- 查找:rpm -qa | grep lrzsz* 查询到已安装的所有lrzsz开头的安装包
- pwd 查询当前路径
ll 列出当前路径下所有文件和文件夹的详细列表
- ll [需要列出的目录,如没有则默认当前工作路径] [参数]
- ll /home -a(a指展示所有文件包括隐藏文件)
ls 列出当前路径下所有文件和文件夹
- 同上ll命令
- ls -l命令等同于ll 文件或者文件夹前加 . 可以隐藏此文件或者文件夹
权限解析(一共10个):drwxrwxrwx,第一个字母为单独的,剩下9个字母每三个一组代表各自权限
第一个字母:
- d 代表目录
- - 代表的是文件
- l 代表的是连接
- 第一组的三个代表的是所有者的权限
- 第二组代表的是所有者所在组的组成员的权限
- 第三组代表的是除所有者和所有者所在组的其他用户的权限
rwx所代表的意义:
- r read缩写:可读权限 赋权操作中用4代表
- w write缩写:可写权限 赋权操作中用2代表
- x 可执行权限 赋权操作中用1代表
- - 没有此权限 赋权操作中用0代表
赋权:
修改文件权限
- chmod -R 755 文件或者路径
- chmod -R +x 文件或者目录
- chmod -R -x 文件或者目录
修改文件所有者和所在组
- chown -R 用户名称:组名称 文件或者路径
- chown -R 用户名称 文件或者路径
- chgrp -R 组名称 文件或者路径
系统目录详解
- bin 存放的是可执行文件(命令)
- etc 存放linux中所有的系统配置文件
- home 所有用户目录存放地
- lib 依赖的包
- opt 软件安装目录
- sbin 可执行文件(命令)
- usr 用户信息
JDK安装配置
上传JDK安装包
jdk-8u102-linux-x64.tar.gz
到/opt/目录下使用
tar -zxvf jdk-8u102-linux-x64.tar.gz
执行
rm -rf jdk-8u102-linux-x64.tar.gz
删除源安装包执行
vi /etc/profile
打开linux环境变量文件在最后增加以下内容:
# jdk环境变量
export JAVA_HOME=/opt/jdk1.8.0_102
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
执行
source /etc/profile
命令重新加载环境变量文件,使刚才配置的jdk环境变量生效 执行java -version
验证环境变量是否配置成功
tomcat配置安装
- 执行rz命令上传
apache-tomcat-8.0.53.zip
到/opt目录下 unzip apache-tomcat-8.0.53.zip
解压tomcat到当前目录- 执行
cd apache-tomcat-8.0.53
进入tomcat根目录 - 执行
cd bin/
进入tomcat的bin目录 - 执行
chmod +x *.sh
对所有.sh文件进行授可执行权限 修改tomcat端口号
- 在tomcat的根目录执行vim conf/server.xml
- 修改完成之后按esc然后按:wq退出编辑状态并保存
- 上传软件包到tomcat根目录下的webapps中
- 在bin目录下执行./startup.sh启动tomcat
- 在tomcat的根目录执行vim conf/server.xml
- 执行rz命令上传
tomcat目录详解
- bin 放的是tomcat的可执行文件(包含咱们常用的启动,停止)
- conf 存放的是tomcat的配置文件
- lib 存放tomcat的一些基础依赖包
- logs 存放tomcat日志,包含项目日志、tomcat运行日志
- temp 存放的是tomcat下的一些文件备份
- webapps 存放Java软件包的目录(常见的软件包以.war,例如:ThreeNewBoard.war)
- work 工作空间
CentOS7关闭防火墙
- 执行
systemctl status firewalld.service
检查服务器防火墙状态 - 执行
systemctl stop firewalld.service
关闭防火墙 - 再执行
systemctl status firewalld.service
检查服务器防火墙状态 - 执行
systemctl disable firewalld.service
禁止防火墙开机启动 - 至此CentOS防火墙关闭完成
- 执行
查看端口号
netstat -anp
查看运行的端口号netstat -anp | grep 8080
查看运行的端口号,过滤显示8080端口信息
- history 查看系统历史执行命令记录
top命令
- PID 软件在系统运行的进程号
- USER 启动这个软件的用户
- %CPU 软件占用CPU的百分比
- %MEM 软件占用系统内存的百分比
- TIME+ 软件启动的时间
- COMMAND 进程关联的软件名称
ps -ef | grep tomcat
查看当前运行的软件,以tomcat或者java关键字进行过滤- 杀进程
kill -9 进程号
执行这条命令可以直接杀死Linux中的某个进程
- 杀进程
WEB项目中常用的一些文件类型(Java)
- jdbc.properties 属于java web项目中的数据库连接池文件
- _.xml、_.json、*.properties前两个属于数据存储类文件,后一个属于java中的配置文件
日志级别:debug<info<warn<Error
- warn:告警日志,输出警告一类的日志,不会影响系统的正常运行
- error:错误日志,输出错误一类的日志,会影响系统的正常运行
- debug:调试日志,指的是系统输出开发调试级别的详细日志,因内容及其详细,我们做软件测试一般不关注,且线上环境严禁输出debug日志
- info:普通日志:系统运行的状态,信息,等等输出的一些日志,主要用来关注系统是否正常以及运行状态
查看日志的命令
- tomcat的日志在tomcat的根目录下的logs中,如果开发没有强制指定app的日志输出文件,则默认会被tomcat输出到catalina.out
tail -f [日志文件名称] 动态打印日志
tail -f catalina.out
命令默认打印倒数10行日志 -tail -200f catalina.out
命令动态打印日志文件中倒数200行日志tail -f catalina.out | grep 'error'
命令动态打印且过滤输出日志中行中包含error关键字的日志
查询日志中含有某个关键字的信息
- cat app.log |grep 'error'
查询日志尾部最后10行的日志
- tail -n 10 app.log
查询10行之后的所有日志
- tail -n +10 app.log
查询日志文件中的头10行日志
- head -n 10 app.log
查询日志文件除了最后10行的其他所有日志
- head -n -10 app.log
查询日志中含有某个关键字的信息,显示出行号(在1的基础上修改)
- cat -n app.log |grep 'error'
显示102行,前10行和后10行的日志 92 102 112
- cat -n app.log |tail -n +92|head -n 20
据日期时间段查询(前提日志总必须打印日期,先通过grep确定是否有该时间点)
- sed -n '/2018-11-02 10:00:00/,/2018-11-02 10:55:00/p' app.log
- 1s=1000ms 一秒等于1000毫秒
- 1ms=1000um 一毫秒等1000微秒
把日志保存到文件
- cat -n app.log |grep "error" > temp.txt
vim 查看日志
- vim app.log
- 使用vim命令进入查看状态(只进入查看状态,不进入可编辑状态)敲 /要查询的关键字 然后敲击回车键,可用于标记日志中的关键字高亮显示
- > 文件名称 清空文本文件(常用于清空日志文件)
- tomcat的日志在tomcat的根目录下的logs中,如果开发没有强制指定app的日志输出文件,则默认会被tomcat输出到catalina.out
ssh命令详解
- 格式:ssh [user@host] [command]
参数(只列出常用)
- -l:指定连接远程服务器登录用户名
- -p:指定远程服务器上的端口
Log位置
- /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
- /var/log/secure 与安全相关的日志信息
- /var/log/maillog 与邮件相关的日志信息
- /var/log/cron 与定时任务相关的日志信息
- /var/log/spooler 与UUCP和news设备相关的日志信息
- /var/log/boot.log 守护进程启动和停止相关的日志消息
grep
主要参数
- -c:只输出匹配行的计数
- -I:不区分大 小写(只适用于单字符)
- -h:查询多文件时不显示文件名
- -l:查询多文件时只输出包含匹配字符的文件名
- -n:显示匹配行及 行号
- -s:不显示不存在或无匹配文本的错误信息
- -v:显示不包含匹配文本的所有行
用户和群组
- groupadd group_name 创建组
- groupdel group_name 删除组(要想删除组,首先必须先删除组内所有用户)
- groupmod -n new_group_name old_group_name 重命名一个用户组
- useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
- useradd user_name 创建一个新用户
- userdel -r user_name 删除一个用户加-r顺带删除用户根目录 ( '-r' 排除主目录)
- usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
- passwd 修改当前用户密码
- passwd user_name 修改指定用户密码-只能超级管理员用户执行
- chage -E 2005-12-31 user1 设置用户口令的失效期限
- pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
- grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
- newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
- 创建用户并将该用户分配到指定的组:useradd -g 组名 用户名
- 改变用户所在组:usermode -g 组名 用户名 (改变条件 必须为root 用户操作)
查看linux中所有组信息
- vi /etc/group
- cat /etc/group
查看linux中所有用户信息
- vi /etc/passwd
- cat /etc/passwd
linux服务器关机与重启
- halt 立刻关机
- poweroff 立刻关机
- shutdown -h now 立刻关机(root用户使用)
- shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
- reboot 重启
- shutdown -r now 立刻重启(root用户使用)
- shutdown -r 10 过10分钟自动重启(root用户使用)
- shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启