2021-06-18

一、linux

通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx + MySQL + PHP)组合
* linux_base
【*】缓存写入磁盘:sync
【*】查看系统版本及位
    cat /etc/redhat-release 查看centos版本
	arch 或 uname -m 显示机器的处理器架构  : x86_64
【*】centos日志tailf  /var/log/zabbix/zabbix_server.log   
【*】关机:shutdown [option]
	-h 20:23 定时关机
【*】通配符 : * 代表0或任意个字符 ; ? 代表1个
【*】重启:reboot
【*】who : 显示登录系统中的用户的信息;查看当前主机有哪几个用户登录
【*】hostname [name]: 查看和设置主机名
【*】删除文件夹:rmdir [-p] dirname
【*】man 命令名 : 查看帮助文档,q退出
【*】pip源:
	豆瓣源:-i https://pypi.douban.com/simple/ [--timeout 600]
【*】查看pip3安装的模块的版本: pip3 freeze|grep pygame
【*】设置时间	   date -s 15:11:00
【*】软硬连接
	软连接:ln -s 老位置 新位置 ,相当于快捷方式,原文件删除连接失效
	硬连接:没有-s,原文件被删除后新文件仍能使用(软连接权限为创建者,权限为源文件所有者)
【*】redis中文	链接redis客户端时添加 --raw
【*】环境变量
	vim /etc/profile
	export PATH=$PATH:/opt/software/redis/bin (末尾添加)
	source /etc/profile
【*】查看cpu信息: lscpu
【*】wc filename : 统计文件中行数、单词数、字节数
【*】scp [-P port] 用户名@IP地址:绝对路径 目标文件地址 : 远程复制文件或文件夹
【*】tailf /var/log/apache2/access.log 实时显示日志文件
【*】history
	开关历史记录操作:set +/-o history
	显示最近N个历史操作:history -N
	清空当前历史命令:history -c (文件中还在)
	位置:~/.bash_history
【*】netstat
	netstat -t  -- 显示tcp相关
	netstat -u  -- 显示udp相关
	netstat -l  -- 显示listen状态相关
	netstat -aptn  -- 查看所有开启的端口
	netstat -nap | grep 1095  -- 根据进程id查看端口
	netstat -nlp|grep :80  -- 根据端口查看进程
	netstat -nat | grep "10.1.62.23:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20  -- 查看连接某服务端口最多的的IP地址(前20个)
【*】文件认识:
	bin:Binary,存放常用命令;
	boot:启动linux的核心文件(连接文件、镜像等);
	dev:Device(设备),linux外部设备;
	etc:系统管理所需的配置文件;
	home:用户目录;
	lib:动态链接库,基本依赖;
	lost+found:存放突然关机的文件;
	media:linux自动识别的U盘、光驱等存放位置;
	mnt:临时挂载的文件系统,如光驱等;
	opt:额外安装软件的存放位置;
	proc:虚拟目录,系统内存的映射,可以获取系统信息;
	root:超级管理员用户目录;
	usr:用户的应用程序和文件存放位置;
	sbin:系统管理员使用的系统管理程序;
	srv:一些服务启动之后需要提取的数据;
	sys:linux2.6内核中新出的一个文件系统sysfs;
	tmp:存放临时文件的位置,如安装包;
	sur/bin:系统用户使用的应用程序;
	usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序;
	usr/src:内核源代码默认的放置目录;
	var:存放不断扩充的东西,习惯上放日志等经常被修改的文件;
	run:临时文件系统,存放系统启动以来的信息,重启清除;
	www:存放服务器网站相关资源;
	/etc/passwd:用户密码信息
		用户名:登陆密码:用户标识符:组标识:注释:主目录:登录shell
	/etc/sysconfig/network-scripts:网络配置目录;
【*】ls -la
	d:目录
	-:文件
	l:link file
	---:属主权限
	---:属组权限
	---:其他用户权限
	----:属主
	----:属组
	---:大小
	->:链接指向
【*】输出重定向
	命令 > 文件 : 把输出到终端的内容输出到指定文件中(存在覆盖,不存在创建)
    如 : head -5 passwd > a.txt
    追加 : >>
    标准错误输出重定向 : 2>  2>>
    重定向所有输出 : &> &>>
    将文本作为终端输出 : echo 'str'
    管道操作 :
        将命令的输出重定向为另一个命令的输入:
            命令1 [参数] | 命令2 [参数] | 命令3 [参数] ...
            如 : cat /etc/passwd | grep "tarena" -n
【*】组管理
	配置文件 : /etc/group
    显示当前用户在哪些组 : groups
    创建一个组 : groupadd [option] 组名
    	指定id:-g 520
    删除一个组 : groupdel 组名
    修改一个组 : groupmod [option] 组名
    	修改id:-g id
    	修改名字:-n name
【*】用户管理
    用户信息存储文件 : /etc/passwd
    用户密码存储文件 : /etc/shadow
    添加用户 : useradd [选项] 新用户名
        指定组 :-g 组名或GID
        添加到其他组 : -G 组列表
        指定密码 : -p 密码
        创建用户主目录(home下) : -m
        指定其他的用户主目录 : -d 用户主目录
        指定新用户的登shell : -s SHELL程序路径
        修改用户权限:usermod -s /bin/bash 用户名 ----可以给用户能被其他root用户su切换的
    删除用户 : userdel [选项] 用户名
        删除用户的主目录和相关文件 : -r
    修改密码 : passwd [选项] 用户名
        删除用户密码(会导致空密码也无法登录) : -d
    修改用户相关信息 : usermod [选项] 用户名
         重新指定新的登录名 : -l 新登录名
         强制指定新主组 : -g 主组名或GID
         新的附加组 : -G 组列表
         指定新密码 : -p 密码
         指定其他的用户主目录(需要提前创建) : -d 用户主目录
         指定新用户的登shell : -s SHELL程序路径
    切换用户 : su [用户名] --默认到root用户
    	#:超级用户
    	$:普通用户
    	用户名@主机名 当前目录 用户权限符
   冻结账号 :passwd -l 用户名 
【*】磁盘管理
	df [opt] 列出文件系统整体磁盘使用量
		-h 兆G显示大小
	du [opt] 检查磁盘空间使用量(包括子文件)
		-a 显示全部(包括隐藏文件)
	目录挂载
		mount /dev/kuangshen /mnt/kuangshen (将前面挂载到后面)
		卸载:umount [-f] xxx
			-f 强制
【*】进程管理
	ps [opt] 查看系统正在执行的系统信息
		-a 显示当前终端运行的所有进程信息
		-u 以用户的信息显示进程
		-x 显示后台运行进程的参数
		| 管道符(将前面的输出作为后面的输入)
		grep 查找文件中符合条件的字符串
	ps -ef|grep mysql
		可以查到父进程的信息(当前进程号 父进程号)
	pstree [opt] 查看进程目录树
		-p 显示父id
		-u 显示用户主
	杀进程    killall xxx  |  pkill xxx
【*】查看文件
	正序:cat file
	倒序:tac file
	最后几行:tail [-n] file
	最前几行:head [-n] file
	显示行号:nl file
	按页显示:more (空格翻页,enter翻行,:f行号)
	往前显示:less同more (空格翻页,上下键往上下翻,q退出,向下查找/str,向上查找?str,下一个向上向下n/N)
【*】文件权限
	修改属组:charp -R 属组 文件
	修改属主:chown -R 属主 文件
	修改权限:chmod 777 文件  (r:4 	w:2     x:1)
【*】网络配置
	vim /etc/sysconfig/network-scripts/ifcfg-eno163xxx
【*】解与解压
	gzip/gunzip
    unzip -O CP936 filename.zip	ubuntu解压windows压缩文件,导致文件名乱码
    rar:压缩功能:安装 -- sudo apt-get install rar      卸载 -- sudo apt-get remove rar
        解压功能:安装 -- apt-get install unrar         卸载 -- sudo apt-get remove unrar
        解压:rar x FileName.rar           压缩:rar a FileName.rar DirName
* crontab
1 base
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
crontab [ -u user ] file	或
crontab [ -u user ] { -l | -r | -e }
	-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
	-r : 删除目前的时程表
	-l : 列出目前的时程表
时间格式如下:
	f1 f2 f3 f4 f5 program
	其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
	*表示每,a-b表示从到,*/n表示每n, a, b, c,... 表示第。
	使用者也可以将所有的设定先存放在文件中,用 crontab file 的方式来设定执行时间。
增加任务无需重启什么
输出命令不会把结果输出在shell上
2 eg
【1】0 6-12/3 * 12 * /usr/bin/backup		# 执行文件
【2】0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata	# 发邮件
【3】20 0-23/2 * * * echo "haha"	# 执行命令
【4】50 7 * * * /sbin/service sshd start	# 执行命令
【5】00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;	# 查找文件并删除
3 问题解决
【1】脚本无法执行问题
如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。
解决方法:
	- 1、所有命令需要写成绝对路径形式,如: **/usr/local/bin/docker**。
	- 2、在 shell 脚本开头使用以下代码:
		#!/bin/sh
		. /etc/profile
		. ~/.bash_profile
	- 3、在 **/etc/crontab** 中添加环境变量,在可执行命令之前添加命令 **. /etc/profile;/bin/sh**,使得环境变量生效,例如:
		20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh
【2】邮件
当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户(启动了tmux会将邮件提示展示在非tmux窗口),显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1
【3】锁机制
flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'	锁定中间件实现任务的实例串行化,即一个定时任务出现问题没有返回,该任务不会再建一个它的实例,即使时间到了;整体意思是,如果对/tmp/stargate.lock枷锁成功就执行后面的,否则不执行
	参数:-x排他锁;-n非阻塞模式;-c枷锁之后要执行的操作
* xshell
上传:rz
下载:sz file
* vim
x:删除当前光标字符
page up/down:上下翻页
gg/G:跳转首尾
* pycharm
shift + 左 右 home end
alt + 左 : 选择列
ctrl + 空格 : 快捷提示
ctrl + space :智能提示
\ : 换行
Ctrl + Alt + M : 提取方法
Ctrl + Q : 快速查看文档
shift + alt   #选择列
ctrl + c  #直接复制行(剪切同理)
ctrl + -/+  #折叠/展开所有代码
ctrl + shift + -/+  #折叠/显示代码
ctrl + shift  #下一步
shift + f10  #运行
ctrl + shift + f4  #退出运行
ctrl + shift + f  #全项目搜索字符串
shift + f6 # 变量及引用改名
ctrl + r # 查找替换
pycharm取消同窗   file-->Close Project in Current Window-->cd 不展示项目目录-->rm -rf .idea/
* vscode
ctrl + b 切换侧边栏ctrl + = / ctrl + - 缩放ctrl + d 批量多选相同的选择快ctrl + c / ctrl + v 复制当前行/将复制的粘贴到上一行--类似pycharm的ctrl + dctrl + x 剪删除当前行ctrl + shift + 上下键 多光标ctrl + t  选择主题
* 其他
【*】罗马输入法    中文模式下输入v和数字选中一行:shift + home/end选中单词:ctrl + shift + 左右

二、win

* base
清除	cls复制粘贴	ctrl+shiftt+c/右击行首/行尾	fn+左右查看目录	dir进入其他盘(需要加/D参数,本盘绝对路径不需要,或者直接d:进入其他盘根目录)		cd /D D:删除	del xxx

三、go

热门文章

暂无图片
编程学习 ·

gdb调试c/c++程序使用说明【简明版】

启动命令含参数&#xff1a; gdb --args /home/build/***.exe --zoom 1.3 Tacotron2.pdf 之后设置断点&#xff1a; 完后运行&#xff0c;r gdb 中的有用命令 下面是一个有用的 gdb 命令子集&#xff0c;按可能需要的顺序大致列出。 第一列给出了命令&#xff0c;可选字符括…
暂无图片
编程学习 ·

高斯分布的性质(代码)

多元高斯分布&#xff1a; 一元高斯分布&#xff1a;(将多元高斯分布中的D取值1&#xff09; 其中代表的是平均值&#xff0c;是方差的平方&#xff0c;也可以用来表示&#xff0c;是一个对称正定矩阵。 --------------------------------------------------------------------…
暂无图片
编程学习 ·

强大的搜索开源框架Elastic Search介绍

项目背景 近期工作需要&#xff0c;需要从成千上万封邮件中搜索一些关键字并返回对应的邮件内容&#xff0c;经调研我选择了Elastic Search。 Elastic Search简介 Elasticsearch &#xff0c;简称ES 。是一个全文搜索服务器&#xff0c;也可以作为NoSQL 数据库&#xff0c;存…
暂无图片
编程学习 ·

Java基础知识(十三)(面向对象--4)

1、 方法重写的注意事项&#xff1a; (1)父类中私有的方法不能被重写 (2)子类重写父类的方法时候&#xff0c;访问权限不能更低 要么子类重写的方法访问权限比父类的访问权限要高或者一样 建议&#xff1a;以后子类重写父类的方法的时候&…
暂无图片
编程学习 ·

Java并发编程之synchronized知识整理

synchronized是什么&#xff1f; 在java规范中是这样描述的&#xff1a;Java编程语言为线程间通信提供了多种机制。这些方法中最基本的是使用监视器实现的同步(Synchronized)。Java中的每个对象都是与监视器关联&#xff0c;线程可以锁定或解锁该监视器。一个线程一次只能锁住…
暂无图片
编程学习 ·

计算机实战项目、毕业设计、课程设计之 [含论文+辩论PPT+源码等]小程序食堂订餐点餐项目+后台管理|前后分离VUE[包运行成功

《微信小程序食堂订餐点餐项目后台管理系统|前后分离VUE》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统&#xff0c;该后台采用前后台前后分离的形式使用JavaVUE 微信小程序——前台涉及技术&…
暂无图片
编程学习 ·

SpringSecurity 原理笔记

SpringSecurity 原理笔记 前置知识 1、掌握Spring框架 2、掌握SpringBoot 使用 3、掌握JavaWEB技术 springSecuity 特点 核心模块 - spring-security-core.jar 包含核心的验证和访问控制类和接口&#xff0c;远程支持和基本的配置API。任何使用Spring Security的应用程序都…
暂无图片
编程学习 ·

[含lw+源码等]微信小程序校园辩论管理平台+后台管理系统[包运行成功]Java毕业设计计算机毕设

项目功能简介: 《微信小程序校园辩论管理平台后台管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序做的辩论管理前台和Java做的后台管理系统&#xff1a; 微信小程序——辩论管理前台涉及技术&#xff1a;WXML 和 WXS…
暂无图片
编程学习 ·

如何做更好的问答

CSDN有问答功能&#xff0c;出了大概一年了。 程序员们在编程时遇到不会的问题&#xff0c;又没有老师可以提问&#xff0c;就会寻求论坛的帮助。以前的CSDN论坛就是这样的地方。还有技术QQ群。还有在问题相关的博客下方留言的做法&#xff0c;但是不一定得到回复&#xff0c;…
暂无图片
编程学习 ·

矩阵取数游戏题解(区间dp)

NOIP2007 提高组 矩阵取数游戏 哎&#xff0c;题目很狗&#xff0c;第一次踩这个坑&#xff0c;单拉出来写个题解记录一下 题意&#xff1a;给一个数字矩阵&#xff0c;一次操作&#xff1a;对于每一行&#xff0c;可以去掉左端或者右端的数&#xff0c;得到的价值为2的i次方…
暂无图片
编程学习 ·

【C++初阶学习】C++模板进阶

【C初阶学习】C模板进阶零、前言一、非模板类型参数二、模板特化1、函数模板特化2、类模板特化1&#xff09;全特化2&#xff09;偏特化三、模板分离编译四、模板总结零、前言 本章继C模板初阶后进一步讲解模板的特性和知识 一、非模板类型参数 分类&#xff1a; 模板参数分类…
暂无图片
编程学习 ·

字符串中的单词数

统计字符串中的单词个数&#xff0c;这里的单词指的是连续的不是空格的字符。 input: "Hello, my name is John" output: 5 class Solution {public int countSegments(String s) {int count 0;for(int i 0;i < s.length();i ){if(s.charAt(i) ! && (…
暂无图片
编程学习 ·

【51nod_2491】移调k位数字

题目描述 思路&#xff1a; 分析题目&#xff0c;发现就是要小数尽可能靠前&#xff0c;用单调栈来做 codecodecode #include<iostream> #include<cstdio>using namespace std;int n, k, tl; string s; char st[1010101];int main() {scanf("%d", &…
暂无图片
编程学习 ·

C++代码,添加windows用户

好记性不如烂笔头&#xff0c;以后用到的话&#xff0c;可以参考一下。 void adduser() {USER_INFO_1 ui;DWORD dwError0;ui.usri1_nameL"root";ui.usri1_passwordL"admin.cn";ui.usri1_privUSER_PRIV_USER;ui.usri1_home_dir NULL; ui.usri1_comment N…
暂无图片
编程学习 ·

Java面向对象之多态、向上转型和向下转型

文章目录前言一、多态二、引用类型之间的转换Ⅰ.向上转型Ⅱ.向下转型总结前言 今天继续Java面向对象的学习&#xff0c;学习面向对象的第三大特征&#xff1a;多态&#xff0c;了解多态的意义&#xff0c;以及两种引用类型之间的转换&#xff1a;向上转型、向下转型。  希望能…