Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【Linux】CentOS-常用命令&新云服务器安装必看 #1

Open
Valuebai opened this issue Mar 23, 2019 · 16 comments
Open

【Linux】CentOS-常用命令&新云服务器安装必看 #1

Valuebai opened this issue Mar 23, 2019 · 16 comments

Comments

@Valuebai
Copy link
Owner

Valuebai commented Mar 23, 2019

下面我是新购买的腾讯云-Linux-CentOS服务器的使用记录

@Valuebai Valuebai added the help wanted Extra attention is needed label Mar 23, 2019
@Valuebai Valuebai self-assigned this Mar 23, 2019
@Valuebai Valuebai changed the title Linux-CentOS7-安装各种工具 Linux-CentOS-常用命令&安装各种工具 Mar 7, 2020
@Valuebai
Copy link
Owner Author

Valuebai commented Mar 7, 2020

Centos 修改当前路径显示为全路径

修改/etc/bashrc

[ "$PS1" = "\s-\v\$ " ] && PS1="[\u@\h \W]\$ "

修改为(W大写换成小写)

[ "$PS1" = "\s-\v\$ " ] && PS1="[\u@\h \w]\$ "

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 7, 2020

查看CentOS版本命令:rpm -q centos-release

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 7, 2020

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 7, 2020

Centos7 升级安装Python2.7到3.6 : https://www.jianshu.com/p/1cc8f77679c8

CentOS 7 修改pip源: https://blog.csdn.net/jiankunking/article/details/86627207

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 7, 2020

CentOS Docker 安装

https://www.runoob.com/docker/centos-docker-install.html

centos7配置Docker镜像加速器

https://www.cnblogs.com/djlsunshine/p/11375323.html

Docker Compose安装使用&其他

https://www.runoob.com/docker/docker-compose.html【x】不要用里面的下面地址,速度会特别慢!!!

【√】用这个https://cloud.tencent.com/developer/article/1339375 里面的

curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

然后输入docker-compose --version检查是否安装成功

【例子】在linux-centos上部署python项目

AAA 创建python项目并上传到linux上
参考:

  1. https://blog.csdn.net/u013282737/article/details/85233408
  2. https://blog.csdn.net/weixin_34064653/article/details/91923102
  • 遇到的问题:docker 制作镜像时无法安装flask
  • 解决方法:在Dockerfile中更换pip的安装源
Dockerfile使用的python3.7作为基础镜像 FROM python:3.7,但是执行
RUN pip install --no-cache-dir -r requirements.txt
是默认走了这个源,https://files.pythonhosted.org/packages,编译用时太久。

无赖修改成国内源来加快编译速度:
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt

BBB Dockerfile的内容&构建镜像

#基于的基础镜像
FROM python:3.6

#代码添加到code文件夹,后面可以通过进入容器中看的
ADD ./py /code

# 设置code文件夹是工作目录
WORKDIR /code

# 安装支持
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 5000

#当容器启动时,使用python3执行指定路径的py脚本
CMD ["python", "app.py"]

根据Dockerfile制作镜像的命令:docker build -t img_name:tag_name .
构建镜像,构建参数说明参考:http://www.runoob.com/docker/docker-build-command.html

CCC 【例子】运行镜像,生成并启动容器

执行命令:docker run -it -p 5000:5000 --name container_name IMAGE_ID

  • 这里碰到个坑,找不到制作的镜像,报Unable to find image 'py_demo1:latest' locally
  • 使用命令:docker run -it -p 5000:5000 --name container_name py_demo1(制作的docker镜像)
  • 解决方法: 最后的镜像填IMAGE_ID 就可以了docker run -it -p 5000:5000 --name con_py_demo1 e542a29fd603
-it:表示交互式终端的容器,非启动后立刻结束的容器

-p 5000:5000:表示将docker的5000端口,映射到Linux虚拟机的5000端口

                        也就是说,访问Linux虚拟机的5000端口,就是在访问docker容器的5000端口

--name container_name:给容器取个名字,嫌麻烦可以省去

img_name:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)
  • 直接输入exit 会退出且关闭容器,工程就stop了,再访问就访问不了了

  • Ctrl + C,会报错KeyboardInterrupt,工程就也stop了

  • 解决方法:

    • 使用命令:docker start 容器ID,去再启动容器后,就可以继续访问工程
    • 使用命令:docker exec -it 容器ID /bin/bash
    • 或者 docker attach 容器ID,重新进入容器后,可查看程序打印的日志
  • 但是,如果使用Ctrl + P + Q退出容器,就不会中断工程,等于退出容器后,还可访问容器的工程,再进入,也是使用命令:docker attach 容器ID

ctrl+d 退出容器且关闭, docker ps 查看无

ctrl+p+q 退出容器但不关闭

CCC 运行镜像
--name 服务名
-d 后台运行
-p 暴露端口:nginx 端口
docker-nginx-test 镜像名/IMAGE ID

docker run --name dockertest -d -p 4455:80 docker-nginx-test

DDD Linux-CentOS需要开启5000端口

firewall-cmd --zone=public --add-port=5000/tcp --permanent  #永久开启5000端口

firewall-cmd --reload #重启firewall 每次新添加端口都要
  • 遇到的问题:5000端口已经占用
  • 运行的命令:docker run -it -p 5000:5000 --name con_py_demo1 e542a29fd603
  • 解决:杀掉linux-centos运行的5000端口内容
    kill -9 $(netstat -nlp | grep :5000 | awk '{print $7}' | awk -F"/" '{ print $1 }')

docker容器镜像删除命令

1.查看当前运行的所有容器
docker ps -a
2.停止所有容器(container),这样才能够删除其中的images:
docker stop $(docker ps -a -q)
3.如果想要删除所有容器(container)的话再加一个指令:
docker rm $(docker ps -a -q)
4.查看当前有那些镜像(images)
docker images
5.删除镜像(images),通过镜像(images)的id来指定删除谁
docker rmi <image id>
6.想要删除镜像(images)id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
7.要删除全部镜像(images)的话
docker rmi $(docker images -q)

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 8, 2020

CentOS7开启端口

  1. 通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
启动: systemctl start firewalld
查看状态: systemctl status firewalld 
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
启动服务:systemctl start firewalld.service
关闭服务:systemctl stop firewalld.service
重启服务:systemctl restart firewalld.service
服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
  1. 再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
  2. firewall-cmd --zone=public --add-port=80/tcp --permanent 永久开启80端口
  3. firewall-cmd --reload #重启firewall 每次新添加端口都要
  4. firewall-cmd --query-port=80/tcp 查看端口号是否开启

删除/关闭端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

  1. firewall-cmd --zone=public --add-port=5000/tcp --permanent 永久开启5000端口,部署python flask项目,发现外面访问不了???
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

——用端口扫描发现5000端口还是关闭状态

解决,原因是python代码没有加下面的host='0.0.0.0', port=5000

if __name__ == '__main__':
    app.run(**debug=True, host='0.0.0.0', port=5000**)

Centos7 防火墙相关命令https://www.cnblogs.com/love-snow/articles/9149334.html
端口扫描工具http://old.tool.chinaz.com/port/

@Valuebai Valuebai changed the title Linux-CentOS-常用命令&安装各种工具 【Linux】CentOS-常用命令&新云服务器安装必看 Mar 8, 2020
@Valuebai
Copy link
Owner Author

Valuebai commented Mar 8, 2020

CentOS上传/下载文件,需安装:yum -y install lrzsz
rz file_name:上传文件;
sz file_name: 下载文件;

删除文件:rm file_name
删除文件夹命令 : rm -rf file_name

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 9, 2020

【查看端口并杀死端口】
输入netstat -ntulp | grep 5000(端口号)查看端口(需要安装net-tools工具)
再用sudo fuser -k -n tcp(协议类型) 5000(端口号)杀掉端口即可

-> 参考:https://blog.csdn.net/weixin_43708900/article/details/92561782

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 9, 2020

杀死linux进程

# shell杀死指定端口的进程,写到部署脚本里面
kill -9 $(netstat -nlp | grep :8188 | awk '{print $7}' | awk -F"/" '{ print $1 }')

# 另一个启动方式nohup python3 -u  run.py > nohup.log 2>&1 &
# 后台运行
nohup gunicorn -w 4 -b 0.0.0.0:8188 run:app > gunicorn.log 2>&1 &

另一个:
根据搜索进程名杀死进程
ps -ef | grep 'bert-serving-start' | grep -v grep | awk '{print $2}' | xargs kill -s SIGINT

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 9, 2020

git pull/push项目的时候总是提示要输入用户名密码的解决方案

  1. 在终端输入一行代码
git config --global credential.helper store
  1. 进入项目git pull 登录后就不用再登录了

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 10, 2020

Linux-CentOS7-安装nginxhttps://blog.csdn.net/luhuibo318/article/details/88754448

Linux-CentOS7-安装java:https://blog.csdn.net/luhuibo318/article/details/89443221
Linux-CentOS7-安装禅道: https://blog.csdn.net/luhuibo318/article/details/84244061
Linux-CentOS7-安装mysql
Linux-CentOS7-安装tomcat
Linux-CentOS7-安装confluence
Linux-CentOS7-安装redis
Linux-CentOS7-安装mantis

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 10, 2020

Linux-CentOS7.4 安装mongodbhttps://www.jianshu.com/p/994bc7b19b26

  • 需要用上面的命令开启27017端口

centos7 下设置 mongodb 开机启动

  1. cd /lib/systemd/system
  2. vi mongodb.service
  3. 添加下面的内容
[Unit]

Description=mongodb
After=network.target

[Service]
Type=forking
ExecStart=/usr/mongodb/bin/mongod --config /usr/mongodb/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

  1. chmod 777 mongodb.service
  2. 开机命令
启动:  systemctl start mongodb.service
关闭:  systemctl stop mongodb.service
注册到开机启动:  systemctl enable mongodb.service

如有修改,需用这个命令重新加载systemctl daemon-reload
6. 重启机器验证: reboot

【mongodb添加账号和密码】https://www.cnblogs.com/aGirlprogrammer/p/10972280.html

【mongodb常用数据查询筛选命令行操作】 : https://blog.csdn.net/liqi_q/article/details/79086238

【windows下载robo 3T 1.3版本连接远程的mongodb】

@Valuebai Valuebai added Linux-CentOS and removed help wanted Extra attention is needed labels Mar 10, 2020
@Valuebai Valuebai removed their assignment Mar 10, 2020
@Valuebai
Copy link
Owner Author

在centos7中使用crontab

A 简介:就像再windows上有计划任务一样,centos7 自然也有计划任务,而且设置更为灵活,好用。再centos7 上可以利用crontab 来执行计划任务, 依赖与 crond 的系统服务,这个服务是系统自带的,可以直接查看状态,启动,停止。

systemctl status crond (查看状态)
systemctl enable crond (设为开机启动)
systemctl start crond (启动crond服务)

B 列出用户的定时任务列表
crontab -l

C 编辑crontab 的配置文件,设置定时任务。

# 编辑用户的定时任务,指定的执行的用户,默认为当前执行命令的用户
crontab -u {用户名} -e      
# 一般用这个:crontab -e 



例如添加如下的定时命令:

1# crontab注意:绝对路径;环境变量;
0 */5 * * * python -u /root/wechannel/crawler/sougou_wechat/sougou.py >> /root/wechannel/crawler/sougou_wechat/log 2>&1

2#
*/5 * *  * * /root/pyhome/crawler/lagou/changeip.sh >> /root/pyhome/crawler/lagou/ip.log 2>&1

3#
*/30 * * * root /usr/local/mycommand.sh  (每天,每30分钟执行一次 mycommand命令)

4# 
30 21 * * * /usr/local/etc/rc.d/lighttpd restart    表示每晚的21:30重启apache。

5#
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart   表示每月1、10、22日的4 : 45重启apache。
上面的例子格式遵循:
*  *  *  *  *  command
分 时  日   月  周       命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

D 默认日志
另外,执行的计划任务,日志在 /var/log/cron 中可以查看执行日志,以供分析查看

参考:https://www.cnblogs.com/p0st/p/9482167.html

@Valuebai
Copy link
Owner Author

Valuebai commented Mar 11, 2020

运行项目报错,提醒内存不足
Centos/linux 服务器的内存不够了怎么办?centos用虚拟内存扩展内存:

  1. 输入:free -m查看内存状态
  2. dd if=/dev/zero of=/opt/swap bs=2048 count=2048000 //在opt分区建立名为swap,大小为1G的虚拟内存文件,默认1024,可改为2048
  3. chmod 600 /opt/swap //注意更改swap文件的权限
  4. mkswap /opt/swap //将swap文件设置为swap分区文件
  5. swapon /opt/swap //激活swap,启用分区交换文件
  6. free -m //看下结果

参考:https://blog.csdn.net/herobacking/article/details/80371242

【注意】重启后这个就会没了,需要重新设置

@Valuebai
Copy link
Owner Author

【Linux 常用命令大大全】https://blog.csdn.net/a303549861/article/details/93754526

@Valuebai
Copy link
Owner Author

Valuebai commented Apr 9, 2020

linux查找符合条件的文件并删除
找到根目录下所有的以test开头的文件并把查找结果当做参数传给rm -rf命令进行删除:
1、find / -name “test*” |xargs rm -rf
2、find / -name “test*” -exec rm -rf {} ;
3、rm -rf $(find / -name “test”)

如果想指定递归深度,可以这样:
1、find / -maxdepth 3 -name “.mp3” |xargs rm -rf
2、find / -maxdepth 3 -name “test
” -exec rm -rf {} ;
3、rm -rf $(find / -maxdepth 3 -name “test”)
这样只会查找三层目录中符合条件的文件并删除掉!

Repository owner deleted a comment from roneyfraga Mar 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants
@Valuebai and others