关于linux上常用的命令和使用场景,以及在服务器安全上遇到的坑

作为一个程序员,操作linux服务器肯定是必备的一个技能,工作的时候可能需要你去部署包到linux服务器上,或者说去服务器上看日志,调优,配置,看数据库等,下面是我笔记里面常用的一些linux的命令,并且有些结合使用场景来说,我的服务器是阿里云上的centos7系统,我一般用xshell去管理我的服务器,同时有个很好的xftp可以实现可视化,可上传下载,xshell可以用rz上传sz下载命令,但是得安装插件yum install -y lrzsz 如果想学学linux的命令还是多多用命令去实现吧。

这里说下阿里云服务器的一个特点,阿里云服务器有个安全规则,就是开放某个端口,假设当我们想要配置一个redis对外访问,

redis使用6379的一个端口,那么我们就需要有3步,1修改redis允许远程访问 2 防火墙开端口6379(如果防火墙没关)3阿里云安全规则开放端口6379。对外开放端口的话是有风险的,本人之前就有过事故,自己的服务器部署了个项目,最近发现怎么跑不动了,查了下top,卧槽有个进程占99%cpu,查了下发现是被人挖矿了,又是杀挖矿进程,杀开启挖矿的进程,再清除脚本才解决的,最后发现是reids 密码不安全被黑进来的。是一个教训,所以说正式环境还是封端口,本地调用吧。实在想开放,就改个端口号,密码复杂点,例如redis 6379 改成 6378什么的。

常用命令

Linux目录结构: 只有1个目录,根目录

usr:相当于program files

etc:存放系统配置文件

root:系统管理员默认目录(用root权限登录就是进入这个目录,root是最大权限的账号,可以操作服务器任何操作,所以一般不会把这个账号给程序员开发用,而是创建其他的用户账号,home里面的目录就是存放其他用户

home:存放其他用户的目录

pwd: 打印当前目录,例如:/root/tomcat

cd / : 切换到根目录

ll : 查看当前目录下的内容

linux有2种用户,一种管理员root,另外一种普通: zhangsan lisi

Root用户登录到linux默认所在的目录是  /root/

其他用户bin登录到linux默认所在的目录是 /home/zhangsan/

1.1 查看目录结构

list :列出

ll       :列出当前目录下的文件信息“ll”是“ls -l"的别名,"ll"和“ls -l”的功能是一样的。(这个是我使用linux经常使用的命令,可以查看当前目录下的所有文件信息,并且包含文件权限,操作日期,文件名等

ls -al     :列出当前目录下的文件信息(包括隐藏文件,特殊目录)

ll  /bin/   :列出根目录下bin目录下的文件信息

ls显示当前目录的文件 ll是显示当前目录的详情

1.2 切换目录命令cd

touch  1.txt   :在当前目录创建一个文件1.txt

clear :清除屏幕(如果你觉得太多信息了,可以clear下,世界都清净了

cd  ~ 跳到自己的 home 目录 :

cd  / 跳到指定目录

cd  - 返回上一次工作目录

cd  .. 跳到目前目录的上上两层 

cd ./ 调用下级文件或者文件夹(当我们在/root中,我们想进去里面的tomcat目录,我们可以cd ./tomcat,而不需要cd /root/tomcat

1.3 创建目录

pwd:打印工作目录

mkdir: 创建目录

mkdir   a :当前目录下创建文件夹a

mkdir  /root/b  :在根目录下的root下创建目录b

mkdir  -pv  /root/c/e/d :在根目录下的root下创建目录结构c/e/d

1.4 文件浏览命令

cat命令:  如果文件中的内容很少,一页之内可以显示完毕

cat  /root/文件名称  (这里想到一个操作就是我们导入mysql的sql文件的时候,可以使用cat name.sql | mysql -uroot -p****** 去把库导进来或者表)

more命令: 如果文件中内容比较多,一页之内显示不完

more  文件名称

less 命令: 如果文件中内容比较多,一页之内显示不完

less -mN 文件名称,如下为less扩展

less详解:https://www.runoob.com/linux/linux-comm-less.html

less比more多了搜索功能

tail 命令: 查看文件末尾内容

tail -10 /root/install.log 查看install.log文件中后10行内容

这里有个应用场景是查看服务器的日志,或者说项目运行日志,并且该日志是‘’动态‘’的,跟我们控制台有点像,从而达到测试的一个目的,因为是查看文件末尾的内容,你每次增加了日志,就会往下跳

1.5 文件管理

cd  /root/

复制文件

cp   install.log  install02.log

cp -b  install.log  install02.log  :如果覆盖文件时,可以将源文件做一个备份

cp  ./install.log   ../   : 将当前目录下的install.log复制到父级目录

cp  /root/install.log   /bin/1.txt  

   :将/root下的install.log文件复制到根目录下的bin目录下的1.txt中

复制目录(无论是单层目录还是多层目录都可以复制):

cp  -r  ./a  ./b

cp  -r  /root/a  /root/z

mv剪切文件

mv  /root/install.log  /root/a/

重命名文件

mv  /root/install.log  /root/test.log

删除文件

rm -f  文件名称

rm -f  /root/文件名称

删除目录

rm -rf 目录名称

rm -rf  /root/目录名称

在某个目录下搜索文件/目录

find  /root/   -name   ‘in*’  :

  在根目录下的root目录下寻找名称中包含in而且是以in开头的文件/目录

1.6 Vim编辑器

vim /root/1.txt  :利用vim编辑器打开文件 ====>  录入 i  (从一般模式转变为插入模式)

===>录入各种信息 ===>esc(从插入模式转换为一般模式)====>:wq(保存并退出) 

vim是一个非常复杂的一个模块,听说直接有本说讲vim的,我们一般就是使用vim操作文件内容,修改配置文件,例如操作tomcat的server.xml,nginx的nginx.conf

1.7 系统命令

grep: 过滤任务 经常和其他命令联合使用

grep -i 名称

cat  /root/install.log

cat  /root/install.log  |  grep  -i   mysql :查看install.log文件中包含mysql内容信息

ps -ef :相当于任务管理器,对进程的一次查看

ps -ef  | grep -i crond  : 查看系统中crond的进程信息

我们一般使用该命令去查某个进程,例如mysql,redis,第一个就是我们查到的启动的mysql,第二个则使我们调用这个搜索的进程,所以别以为怎么有两个mysql,同时也可以通关端口号去查进程来判断该端口被占用没有,另外有个很方便的命令,jps=>查询java运行的服务器,jar是springboot运行的,Bootstrap是运行的tomcat

管道命令: 命令的一种使用方式

命令1  |  命令2

命令1的输出是命令2的输入

cat  /root/install.log  |  grep  -i   mysql

ps -ef | grep -i crond

kill -9 端口号(我们想要关闭某个进程,可以先查他的端口号然后在用这个命令杀死

压缩:tar cvf FileName.tar FileName

解压:tar xvf FileName.tar

命令1  && 命令2:执行命令1后执行命令2(例如我们运行tomcat然后查看tomcat运行情况我们可以  ./startup.sh  && tail -f ../logs/catalina.out,其中./startup.sh是启动tomcat,tail -f ../logs/catalina.out是查看日志

推荐文章:https://snailclimb.gitee.io/javaguide/#/docs/operating-system/linux

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值