一、快捷键自动补全tab取消当前操作Ctrl+c清屏Ctrl+L返回首行Ctrl+A返回尾行Ctrl+E按单词移动Ctrl+方向键把光标到行首的内容剪切/删除Ctrl+U把光标到行尾的内容剪切/删除Ctrl+K调出上一个命令最后一个【空格】之后的内容ESC+.复制ctrl+insert粘贴shift+insert二、操作命令2.1 软件包2.1.1 工具包相关命令配置官方源更新地址curl -s -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo配置第三方 eqel 源更新地址curl -s -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo查看软件包yum provides 工具包名 -y安装软件包yum install 工具包名 -y2.1.2 lrzsz(文件传输工具)上传至linuxrz-E有同名自动改名-y有同名直接覆盖下载至windowssz-E有同名自动改名-y有同名直接覆盖2.1.2 tree (显示目录的树形结构)tree -C颜色显示tree -f显示文件全路径tree-a显示所有文件,包括隐藏文件tree以树形结构显示文件和目录tree -L n A显示目录A的n层2.1.3 VIM(文件编辑工具)2.1.3.1 模式切换编辑模式进入编辑模式i I a A退出编辑模式ESC命令模式进入命令模式冒号 :保存:w保存:wq保存并退出:wq!强制保存并退出退出:q退出:q!强制退出向下查找/字符按n继续搜索向上查找?字符按n继续搜索替换全局替换:%s/A/B/g将A替换成B局部替换:a,bs/A/B/g在a-b行的内容中,将A替换成B2.1.3.2 快捷键行尾$或end行首0或Home文件尾行shift+G文件开头行gg光标移动到第n行数字 gg光标向下移动n行数字[回车]复制yy复制多行数字yy粘贴p粘贴于光标所在的下一行删除dd删除多行数字dd撤销操作u显示行号:set nu取消行号:set nonu2.1.4 zabbix 工具监控用户登录工具,每分钟监控2.1.5 apt(软件包管理器)更新软件源`sudo apt update` 此命令会更新系统中已有的所有软件信息安装软件包`sudo apt install <packageName>`升级软件包`sudo apt upgrade` 注意此命令无法指定软件包,他会自动检查并升级所有安装的软件包,并更新,如果想更新指定软件包可以使用 `install` 它会更新并安装指定软件包卸载软件包`sudo apt remave <packageName>` 他会删除指定的软件包及其依赖的其他软件包,但它不会删除配置文件和数据,如果你想把那些都删除了可以使用 `sudo apt-get remave --purge <packageName>`删除卸载残留`sudo apt autoremove` 这个命令同样不能指定软件包,他会删除系统中缺失依赖的软件包和过时的软件包,同样不会删除配置文件和数据,想删除那些可以使用 `sudo apt-get autoremave --purge`删除过时软件包`sudo apt autoclean` 这个命令会清理本地软件包缓存中的过时软件包搜索软件包`sudo apt search <packageName>` 会搜索系统仓库中与指定名称相匹配的软件包列出已安装的软件包`sudo apt list --install` 列出系统中已经安装的所有软件包显示详细信息`sudo apt show <packageName>` 会显示指定软件包的详细信息,包括软件包的版本、描述、依赖关系等内容2.1.6 yum(软件包管理器)更新整个系统中的软件包及其依赖项`yum update`安装软件包`yum install packageName` 此命令会自动安装依赖的其他软件包卸载软件包`yum remove packageName` 会卸载软件包及其依赖升级软件包`yum upgarde` 与 apt 一样,此命令是更新系统中的所有软件包,且不能指定软件包搜索软件包`yum search keyword` 搜索与关键字匹配的相应软件包列出已有软件包`yum list installed` 列出系统中已安装的所有软件包搜索软件包的文件`yum provides fileName` 搜索哪个软件包拥有指定文件清除缓存`yum clean all` 清除 yum 缓存,并释放占用的磁盘空间检查是否有可用的新软件包`yum check-update` 此命令并不会自动升级或下载任何软件包,只是检查一下三、常用命令3.1 查看信息类3.1.1 安全相关lastlog查看各个目录的登录信息grep过滤关键词grep "字符串" 文件位置-v取反—选出除“”内的内容-i不区分""内的大小写-n标示筛选出的内容在原文件中的位置grep -E "过滤内容(多个 用空格隔开)“ 文件名从文件中过滤出含有 过滤内容的行 过滤内容之间为或的关系grep "字符串" 过滤文件名 >>存放文件名将从 要过滤的文件 中过滤出来的内容写入 要存放的文件中chattr文件加锁+i加锁 不能删改对目录加锁的话只能保护其下一级子目录,无法保护更多级子目录-i撤销加锁=i赋予a可以追加内容,但不能删改-R +i递归加锁+i的加强版 可以保护加锁目录下的所有子目录lsattr查看文件是否加锁md5sum根据文件及文件内容,利用固定的算法生成一串特殊字符系统信息网络相关查看IP地址ip addifconfig查看网关ip routeroute -nnetstat -rn查看DNScat /etc/sysconfig/network-scripts/ifcfg-eth1测试网络连通ping +网站系统相关查看时间datedate +%F显示年月日date +%Y只显示年date +%y只显示年date +%m只显示月date +%d只显示日date +%H只显示小时date +%M只显示分钟date +%S只显示秒date -s "时间”修改时间ntpdate ntp2.aliyun.com服务器时间和互联网时间同步查找(二进制命令)所在路径which +命令查看系统版本cat /etc/redhat-release查看主机名、hostnameuname -n查看内核版本uname -r查看历史记录historyhistory -d 编号按编号删除历史记录history -c删除所有历史记录history查看历史记录用户相关查看用户登录情况last报告所有用户的最近登录情况lastlog清除用户的登录信息lastlog -C -u 用户名查当前用户whoami文件相关查看文件内容catcat -n显示文件内容,显示行号less回车一行行向下浏览空格一屏屏向下浏览/mysql向下 搜索含有 mysql 字符串的内容—按n连续向下搜索?mysql向上 搜索含有 mysql 字符串的内容—按n向下搜索查看文件前几行head查看文件前几行head -n查看文件前n行查看文件后几行tail查看文件后10行tail -n查看文件后n行tail -f 文件名跟踪指定文件的尾部变化文件信息查看统计信息stat + 文件名查看当前路径pwd查看文件行数wc -l查看目录ls(白色表示文件;蓝色表示文件夹)ls -l (ll)长格式显示目录ls -a显示所有文件(包括隐藏文件)ls -t按修改时间排序ls -r倒序文件内容过滤grepgrep "字符串" 文件位置-v取反—选出除“”内的内容-i不区分""内的大小写-n标示筛选出的内容在原文件中的位置-w以单词为单位进行搜索grep -E "过滤内容(多个 用空格隔开)“ 文件名从文件中过滤出含有 过滤内容的行 过滤内容之间为或的关系grep "字符串" 过滤文件名 >>存放文件名将从 要过滤的文件 中过滤出来的内容写入 要存放的文件中搜索which查找二进制文件命令所在的路径find 查找路径 选项1【参数1】 选项2【参数2】……普通搜索-a(默认)选项的交集-o选项的并集!搜选项的取反-name按文件名/关键词搜索-type按文件类型搜索bblock (buffered) special块设备 硬盘光驱ccharatory字符设备ddirectory查找目录fregular查找文件lsymbolic link软连接 快捷方式ssocket和应用程序之间通信有关-size按大小搜索+N m大于N 兆的N m等于N 兆的-N m小于N 兆的-mtime按修改时间查找+77天之前的7之前第七天的-7最近7天的搜索并操作find …… -exec 命令 {} \; {} 代表查找到的内容 \; 代表后边的命令结束find …… -exec rm -rf {} \;find …… | xargs 命令(无需加文件名)find …… | xargs rm -ffind …… | xargs -i 命令 {} 目标地址 -i 可以在后边用{}接收搜索到的文件find ……| xargs cp {} 目的地用户信息查看用户信息id +用户名whoani查看当前用户查看用户登录情况w查看用户日志lastlastloglastlog报告所有用户的最近登录情况lastlog -C -u 用户名清理登录用户信息状态控制类网络相关启动网卡ifup + 网卡名关闭网卡ifdown + 网卡名重启所有网卡systemctl restart network图形化配置网卡nmtui账号控制添加用户useradd +用户名useradd -u UID 用户名添加用户名并指定UIDuseradd 用户名 -g 组名添加用户并指定组useradd 用户名 -M创建用户但不创建家目录useradd 用户名 -s /sbin/nklogin -M创建用户且不允许登录用于给应用软件运行提供用户删除用户userdel +用户名默认不删除家目录userdel -r +用户名同时删除家目录修改用户usermod +用户名usermod +用户名 -s /bin/bash修改解释器为/bin/bashusermod +用户名 -u UID修改用户UID修改密码echo 密码 |passwd --stdin 用户名修改指定用户的密码passwd 用户名需要root权限 / 或修改当前用户的密码切换用户su -【空格】用户名使用管理员权限执行sudo+命令管理用户权限visudo然后100gg yy p 修改权限范围 命令的全路径系统控制关机(默认1分钟后关机)shutdown-c取消关机-h n在n分钟后进行关机-now立刻关机-r nreboot 重启 默认1分钟后重启 n 分钟后重启haltpoweroffinit 0重启rebootshutdown-r nowinit 6编辑类批量操作命令后+ 文件名/文件夹名{1..n}对 文件名/文件夹名{1..n} 执行命令删除rm+文件名询问后删除文件rm -f + 文件名强制删除(不再询问)rm -fr A*删除以 A开头的所有目录rm -r +目录询问后删除目录rm -rf 目录强调删除目录创建文件/文件夹touchtouch + A B C创建文件A 文件B 文件Ctouch + .A创建隐藏文件 .Atouch -c + A避免强制创建文件A(可用于更改该文件的访问和修改时间)touch -a + A修改文件A的访问时间为当前touch -m +A修改文件A的修改时间为当前mkdirmkdir + A创建文件夹Amkdir + A{1..n} 注意此处只有两个点创建文件夹A1、A2...Anmkdir + A/B/C/D -p创建递归文件夹 A/B/C/D执行文件./文件名执行文件(. 代表执行 / 代表当前目录更改文件属性chownchown -R 用户 文件更改文件对应的用户chown 用户.用户组 文件更改文件对应的用户和组chown . 用户组 文件更改文件对应的用户组更改目录cd(change directory)cd + A更改到目录Acd ~更改到用户的家目录cd -更改到上一次所在的目录cd .更改到当前目录cd ..更改到上一级目录cd ../..更改到上一级的上一级目录复制文件或目录cp + a + 目录A复制 文件a 到目录Acp +a + b复制 文件a 并更名为 文件bcp -r/-a (a 的功能大于 r)复制目录并保持属性cp -t 目的地 源文件对调源文件和目的地的位置移动文件或目录mv + 源 + 目录移动 源文件 到目标目录mv + 源 + 文件名为源文件更名写入文本到指定文件echo 文本 >>文件名在文件末尾继续写入echo 文本 >文件名删除该文件之前的内容,并写入新的文本输入数字序列到指定文件seq n >文件名输入1-n 的数列到指定文本,每行一个数字分组xargs -n N <文件名将文件中的内容按N个一组的方式进行分组文件权限更改chmod分区权限对象u (user)r 读文件可读目录可以浏览目录下的文件g (group)w 写文件可写目录创建/删除文件o (other)x 执行文件可执行目录决定能否进入目录- 无修改+ 增加权限- 减少权限= 将权限改为-R递归修改递归修改目录下目录和文件打包压缩tartar zcvf 存放路径+压缩包的名字.tar.gz 要打包的文件路径打包tar zxvf 要解压的文件路径+文件名.tar.gz解压tar zxvf 要解压的文件路径+文件名.tar.gz -C 要存放的路径解压到指定位置tar zcvf 存放路径+文件名_$(date +%F).tar.gz_ 要打包的文件路径组合打包 (给打包的文件名加上日期 方便查看备份时间)tar tf查看unzip 文件(名/路径)解压windows下载的 .zip文件-O不提示解压 会覆盖gzipgzip 文件名只能打包文件,同时会删除原文件gzip -d 文件名只能解压文件,同时会删除原文件MySQL常用命令图形化数据库工具Navicat库级操作连接MySQL数据库mysql -uusername -ppassword -hlocalhostusername 表示用户名password 表示对应的密码localhost 表示要连接的主机创建数据库CREATE DATABASE test_db;test_db 表示创建的数据库名称删除数据库DROP DATABASE test_db;选择数据库USE test_db;查询所有数据库SHOW databases;显示所有数据库表级操作创建表CREATE TABLE employee ( id INT PRIMARY KEY, name VARCHAR(50), age INT, department VARCHAR(50) );employee 表示创建的表名id/name/age/department 表示字段名后边的属性表示了该字段的属性INT PRIMARY KEY 表示是这个表的主键主键是用来标识表中每行数据的字段,他应该是唯一且非空的VARCHAR(50)表示可变长度字符型,最长是50个字符INT表整数类型,可以存储带符号的32位整数,从-2,147,483,648到2,147,483,647删除表DROP TABLE employee;插入数据INSERT INTO employee (id, name, age, department) VALUES (1, 'John Smith', 30, 'Sales');(id, name, age, department)表示后边要插入的值的所属字段(1, 'John Smith', 30, 'Sales')表示每个字段对应的值更新数据UPDATE employee SET name = 'John Doe', age = 32 WHERE id = 1;employee 表示要更新的表名SET 后边跟要更新的具体字段和对应的值WHERE 后边跟更新对应的主键值显示所有表SHOW tables;查询数据查询表中的所有数据SELECT * FROM employee;* 表示要查询所有数据employee 表示要查询的表名对查询结果进行排序SELECT * FROM employee ORDER BY age DESC;ORDER BY 表示按照 age 字段进行排序DESC 表示降序ASC 表示升序分组数据SELECT department, COUNT(*) AS employee_count FROM employee GROUP BY department;COUNT(*) 表示计算行数,即每个部门的所有人数AS 关键字用于给COUNT(*)函数计算出的结果起一个别名,名称为employee_count,这样结果就会包含 depertment 和 employee_count 两列FROM 指定数据来自那个表GROUP BY 关键字用于按指定字段进行分组查询结果示例+------------- +---------------------+ | department | employee_count | +------------- +---------------------+ | Sales | 10 | | Marketing | 8 | | Engineering | 15 | | HR | 6 | +------------- +---------------------+对查询结果进行过滤SELECT * FROM employee WHERE department = 'Sales';employee 表示要过滤的表department = 'Sales' 表示只显示 department 字段中值为 Sales 的数据连接多个表SELECT * FROM employee JOIN department ON employee.department_id = department.id;JOIN 表示要将 employee 和 department 这两个表联合起来employee.department_id = department.id 表示通过这两个值相等都得条件连接这两个表查询结果示例id name age gender department_id id department_name 1 Alice 23 Female 1 1 Sales 2 Bob 28 Male 2 2 Marketing 3 Charles 31 Male 2 2 Marketing 4 David 25 Male 3 3 Engineering 5 Emma 27 Female 3 3 Engineering 6 Frank 33 Male 3 3 Engineering创建索引CREATE INDEX age_index ON employee (age);age_index 表示索引名称employee 代表您要创建索引的表名称age 根据字段 age 来创建索引,以加速数据检索CREATE INDEX 可以通过创建索引提高数据检索的速度,从而使查询更加快速和有效。在实际使用中,如果某个表中的数据量较大,并且该表经常被用来执行查询操作,那么为该表的某些字段(如age)添加索引,将会提高数据检索的效率索引的使用当查询条件中包含了索引列时,MySQL将会自动选择使用该索引进行优化,而你要只需要正常的执行 Select 命令即可如果你的employee表上添加了age_index索引,那么你可以使用以下SELECT语句来查询年龄大于25岁的员工。执行这个查询时,MySQL会使用age_index索引快速定位所有年龄大于25岁的员工的位置,然后返回结果SELECT * FROM employee WHERE age > 25;子主题 2除了使用SELECT语句之外,还可以在INSERT、UPDATE和DELETE语句中使用索引进行优化。例如,如果要更新employee表中的某一行数据,可以使用以下语句UPDATE employee SET age = 30 WHERE id = 1;数据导入导出导出数据mysqldump -uusername -ppassword test_db > backup.sqltest_db 表示要导出那个表的数据backup.sql 表示保存到那个文件导入数据LOAD DATA INFILE 'data.txt' INTO TABLE employee;employee 代表你要导入到数据库的哪个表里data.txt 表示数据来源与那个文件
一、快捷键
二、操作命令
2.1 软件包
2.1.1 工具包相关命令
2.1.2 lrzsz(文件传输工具)
2.1.2 tree (显示目录的树形结构)
2.1.3 VIM(文件编辑工具)
2.1.3.1 模式切换
2.1.3.2 快捷键
2.1.4 zabbix 工具
2.1.5 apt(软件包管理器)
2.1.6 yum(软件包管理器)
三、常用命令
3.1 查看信息类
3.1.1 安全相关