一、基础指令 1.ls指令 ../ 上级目录 ./ 当前目录 ls -al -l 表示list,一详细列表的形式显示 -a 表示显示所有目录和文件 2.pwd指令 3.cd指令 cd~ 回到家目录 4.midir指令 mkdir 路径 mkdir -p 路径 创建多层目录 5.touch指令 创建文件 6.mv指令 剪切命令 mv 需要移动的文档路径 需要保存的位置路径 可以移动文件夹 7.rm指令 -f 强制删除 -r 递归删除文件夹 8.vim指令 9.cp指令 cp 被复制的文档路径 文档被复制到的路径 当使用cp命令对文件夹进行复制的时候,需要添加"-r"(表示递归) 10.输出重定向 有时候需要将一些命令的执行结果保存到文件中,进行后续的分析,则需要用到输出重定向技术。 11.cat指令 12.tail tail -F a.txt 可以实时改变 二、进阶指令: 1.df -h(换算单位) :查看磁盘空间 2.free -m:以MB为单位查看内存剩余 swap:临时内存 3.head -3 4.tail -3 tail -f 文件路径:可以查看一个文件的动态变化 5.less :查看文件,以较少的内容 6.wc:统计文件内容信息 wc -l 查看行数,-w 单词数,-c 字节数 7.date 查看时间日期 date +%F (等价于date "+%Y-%m-%d") date "+%F %H-%M-%S(%T)" 设置日期 date -s 字符串时间 date -s "2018-10-10 11:22:22" 时间与网络时间一致 ntpdate 0.asia.pool.ntp.org 8.cal cal -1 当前月份 cal -3 上月,本月,下月 cal -y 年份:某一年月份的日历 10.clear == Ctrl+L 11.grep grep [] 关键词 文件路径 -i 忽略大小写 -c 计算个数 -n 输出所在行数和内容 -v 输出不包含该内容的其他东西 12 which whereis 查找命令在哪里 三、高级指令: 1.hostname:主机名 2.id:当前用户的基本信息 3.whoami:显示自身的用户名称 4.ps -ef:查看当前服务器的进程信息 System V 展示风格 -e:列出全部的进程 -f:显示所有列 ps -aux BSD分格 如果想查看进程的CPU占用率和内存占用率,可以使用aux 如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef 5.top:查看服务器进程所占的资源。 load average 平均负载 单核:小于等于1代表正常,大于1代表负载过高,大于2 需要增加配置 多核:*核数 6.du -sh:查看目录所占的磁盘空间 7.find 范围 -type/-name ? 一个占位符 * 多个占位符 8.service :控制一些软件的服务启动、停止、重启 service 服务名 start/stop/restart 9.kill:杀死进程 kill 进程PID killall [] 进程名称 -9 强制杀死 10.管道 | 过滤:ls / | grep *.txt 11.ifconfig:用于操作网卡 12.reboot:重启 reboot -w 模拟重启,但不重启(写日志) 13.shutdown:关机 init 0/halt/poweroff shutdown -h now shutdown -h 12:30 shutdown -c取消关机 14.uptime:输出计算机的持续在线时间 15.uname:获取操作系统的类型 uname -a 表示获取全部的信息 16.netstat -atnlp 网络端口占用情况 netstat:查看网络连接状态 -t:只列出tcp协议的连接 -n:将地址从字母组合转化成ip地址 -l:过滤出"state(状态)"列中值为Listen(监听)的连接 -p:显示进程pid和进程名称 17.man(manual):包含全部Linux命令的手册。 18.Ctrl+u 快速删除命令行中光标前的内容。 Ctrl+k 光标后 19.文件权限 -rwxr--r-- 1 root root 61 Jul 27 22:54 a.c 第一位:-:文件 d:文件夹 权限:读写执行 u 所有者 g 用户组 o 其他人 a 所有人 chmod a+x 文档路径 chmod a = rwx 设置权限 r = 4 w = 2 x = 1 - = 0 chmod 777 文档路径 chmod -r 777 目录路径 表示对当前目录及目录下所有的文件执行 20.安装命令 yum install -y tree 四、vim 1.vim三种模式 命令模式:快捷键操作(删除行,复制行,移动光标,粘贴) 编辑模式:编辑文件 末行模式:输入命令操作(搜索,替换,保存,退出,撤销,高亮) 2.vim打开文件的方式 #vim #vim +数字 文件的路径 :打开指定的文件,并且将光标移动的指定行 #vim +/关键词 文件的路径 :打开指定的文件,并且高亮显示关键词 #vim 文件路径1 文件路径2 问阿金路径3 :同时打开多个文件 3.命令模式 3.1 光标移动 ①光标移动到行首 shift+6或^ ②光标移动到行尾 shift+4或$ ③光标移动到首行 gg ④光标移动到尾行 G ⑥翻屏 向上 ctrl+b 向下 ctrl+f 3.2 复制 ①复制光标所在行 yy 粘贴(p) ②从光标所在行开始,向下复制指定的行数 数字yy ③可视化复制 Ctrl+v 移动方向键选中需要复制的块 按yy 按p 3.3剪切/删除 ①剪切/删除 光标所在行 dd(删除之后,下一行上移) ②剪切/删除 光标所在行开始,向下多行 数字dd ③剪切/删除 光标所在位置后边的(删除之后,下一行不上移) D 3.4撤销/恢复 ①撤销 :u 或 u (undo) ②恢复 ctrl+r 取消之前的撤销操作 3.5扩展--光标的快速移动 ①快速将光标移动到指定的行数 数字G ②以当前光标为准,向上/向下移动n行 数字 ↑/↓ ③以光标为准 想左/向右 数字←/数字→ ④末行模式下, 输入: 数字 回车 4.末行模式 进入方式 在命令模式下,输入: 退出方式 ①按一下esc ②按两下esc ③将末行内容全部删除 4.1保存操作 输入":w" 保存文件 输入":w 路径" 另存为 4.2退出操作 输入":q" 4.3保存并退出 输入"wq" 输入":x" 写入文件并退出 4.4强制 输入"q!" 强制退出,刚才做的修改不操作。 4.5调用外部命令 输入":!外部命令" 4.6搜索/查找 输入"/关键词" 切换搜索结果 N/n 如果需要取消高亮 输入":nohl" 4.7替换 :s/搜索关键词/新的内容 替换光标所在行的第一处符合条件的内容 :s/搜索关键词/新的内容/g 替换光标所在行的全部符合条件的内容 :%s/搜索关键词/新的内容 替换整个文档中所有行的第一处符合条件的内容 :%s/搜索关键词/新的内容/g 替换整个文档中所有符合条件的内容 %表示整个文档 g表示全局 4.8显示行号 输入":set nu" 下次进入就没了 取消":set nonu" 4.9扩展 打开多个文件操作 输入":files" 查看现在打开了哪几个文件 %a 表示当前打开的文件 # 表示上一个打开的文件 输入":open 文件名" 打开文件 输入":bn" 切换到下一个文件 back next 输入":bp" 切换到上一个文件 back prev 5.编辑模式 进入编辑模式: 在命令模式下 按 i 在光标所在前面插入 按 a 在光标所在后面插入 6.vim的实用功能 6.1代码着色 打开颜色显示 ":syntax on" 关闭颜色显示 ":syntax off" 6.2计算器的使用 当在编辑文件的时候,突然需要使用计算器去计算一些公式,则此时需要用计算器。 此时,用vim集成的计算器 a.进入编辑模式 b.按"ctrl + r",然后输入"=",此时光标变到最后一行 c.输入需要计算的内容,按下回车。 7.扩展功能 7.1vim的配置 ①在文件打开的时候在末行模式下输入的配置(临时) ②个人配置文件(~/.vimrc) 如果没有,可以自己创建 ③全局配置文件(vim自带,/etc/vimrc) 7.2异常退出 在编辑文件后没有正常退出,突然关闭终端或断电。 解决办法 : 将交互文件(.swp)删除即可。 7.3别名机制 创建一些属于自己的自定义的命令 依靠一个别名映射文件:~/.bashrc 修改之后,需要重新登录当前用户 7.4退出方式 :wq 文件若没有修改,但是使用了wq,则文件的修改时间会更新。 :x 文件没有被修改,则时间不会被更新。 :X 对文件进行加密 五、Linux自有服务 1.运行模式 也称之为运行级别 在Linux 中存在一个进程:init(initialize,初始化),进程id是1. 查看进程:ps -ef|grep init 该进程存在一个对应的配置文件 inittab(系统运行级别配置文件,位置/etc/) 0---关机级别 1---单用户模式 init 2---多用户模式,不带NFS 3---多用户模式,完全的多用户,命令行模式 4---被保留模式 5---X11,完整的图形化界面模式,图像界面模式 6---表示重启级别 六、用户管理 1.用户管理 1.1添加用户 #useradd 选项 用户名 选项: -g:表示指定用户的用户主组,id 或 组名 -G:表示用户附加组,id 或 组名 -u:uid , 用户的id 查看用户的主组 可以查看passwd文件 查看用户的附加组可以查看group文件 1.2修改用户 #usermod 选项 用户名 选项: -g:表示指定用户的用户主组,id 或 组名 -G:表示用户附加组,id 或 组名 -u:uid , 用户的id -l:修改用户名 1.3设置密码 前面创建的用户都处于锁定状态,需要设置密码后才能登陆计算机。 #passwd 用户名 输入密码 1.4删除用户 #userdel 选项 用户名 选项: -r; 表示在删除用户的同时,删除其家目录 1.5切换用户 #su 用户名 (不写用户名默认为root) 输入密码 (切换普通用户不需要输入密码;切换root需要输入密码) 提示:所有跟用户操作的命令,(除passwd外,)都需要root才能执行。 2.用户组管理 涉及用户组的添加、删除和修改。组的增加,删除和修改实际上就是对/etc/group文件的更新 文件结构: 用户组名:密码:用户组ID:组内用户名 密码x表示占位符 2.1用户组添加 groupadd 选项 用户组名 选项 -g 用户组id 2.2用户组编辑 groupmod 选项 用户组名 选项:-g 修改用户组id -n 修改用户组名 2.3用户组删除 groupdel 用户组名 如果需要删除一个组,但是这个组是某个用户的主组,则不允许删除; 如果确实要删除,需要将用户移走或删除。 3.网络设置 网卡配置路径:/etc/sysconfig/network-scripts/ ifcfg-ens33 ifcfg-lo 3.1重启网卡:service network restart /etc/init.d/network restart 3.2创建快捷方式 ln -s 原始文件路径 快捷方式路径 3.3重启单个网卡 停止某个网卡:#ifdown 网卡名 开启某个网卡:#ifup 网卡名 4.ssh服务 ssh(安全外壳协议),该协议有2个常用的作用:远程连接协议,远程文件传输协议。 4.1协议使用端口号:默认 22 如果需要修改,则需要修改配置文件 /etc/ssh/ssh_config 端口号范围 0~65535 4.2服务启动/停止/重启 service sshd start/stop/restart 4.3终端工具 PuTTY Xshell secureCRT 4.4SSH服务文件传输工具 可视化的界面传输工具 filezilla工具 通过命令行工具传输 pscp(通过cmd打开) 七、补充 7.1快捷方式 硬连接 ln 原路径 现路径 软连接 ln -s 原路径 现路径 删除软连接 rm -rf 路径(后面不带/) ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化; 7.2history 查看已经执行过的历史指令,执行已经执行过的指令 ①history 显示所有的历史指令 ②histort 10 显示10个历史指令 ③!编号 执行历史编号的指令 7.3搜索查找命令 ①find find [搜索范围] [选项] find /home hello.txt find /opt -user nobody 按文件拥有者查 find / -size +20M 查大于20M的文件。(+n大于 -n小于 n等于) ②locate 快速定位文件路径,利用locate数据库实现快速定位。 第一次运行前,必须使用updatedb指令创建locate数据库 locate 搜索文件 ③grep 和 管道符号| grep,过滤查找;"|"前一个命令的处理结果交给后面的命令处理 grep [选项] 查找内容 源文件 [选项] -n 显示匹配及行号 -i 忽略字母大小写 cat hello.txt | grep -ni yes 7.4压缩和解压缩 ①gzip/gunzip(.gz) gzip 文件 (压缩后,不会保留原文件) gunzip 文件 ②zip/unzip zip [选项] XXX.zip 将要压缩的内容 (压缩文件和目录) -r 递归压缩目录 unzip [选项]XXX.zip -d<目录> 指定压缩后的文件目录 ③tar(打包指令 .tar.gz) tar [选项] XXX.tar.gz 打包文件 :打包目录,压缩后的格式为 .tar.gz -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解压.tar文件 压缩 tar -zcvf a.tar.gz a1.txt a2.txt 解压 tar -zxvf a.tar.gz -C 路径 7.5修改文件所有者 chown 用户名 文件名 修改文件所在组 chgrp 组名 文件名 改变用户所在组 usermod -g 组名 用户名 usermod -d 目录 用户名 (改变该用户登录的初始目录) 7.6定时任务调度(crond) 简单的任务不需要编写脚本,对于复杂的任务需要写脚本实现。 ①crontab进行定时任务的设置 crontab [选项] -e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前用户所有的crontab任务 步骤: crontab -e 分 时 日 月 星期 */1 * * * * ls - l /etc >> /tmp/to.txt * 任何时间 , 代表不连续的时间 - 代表连续的时间范围 */n 代表每隔多久 7.7磁盘分区,挂载 7.7.1 ①mbr分区 最多四个主分区;系统只能安装在主分区;兼容性好 ②gpt分区 支持无线多个主分区 最大支持123Eb大容量 挂载(mount) 将磁盘与Linux的某文件链接在一起。 lsblk -f 查看系统的分区和挂载的情况 7.7.2如何增加一块硬盘? 虚拟机添加硬盘 分区 fdisk /dev/sdb 格式化 mkfs -t ext4 /dev/sdb1 挂载 mount /dev/sdb1 /home/newdisk 设置可以自动挂载 vim /etc/fstab /dev/sdbl /home/newdisk ext4 defaults 0 0 7.8磁盘情况查询 7.8.1查询系统整体磁盘使用情况 df -h 7.8.2查询指定目录的磁盘情况 du -h /目录 -s 指定目录占用大小汇总 -h 戴计量单位 -a 含文件 -c 列出明细的同时,增加汇总量 --max-depth= n 子目录深度 7.8.3磁盘情况---工作使用指令 1)查看/home目录下文件的个数 ls -l /home |grep "^-" | wc -l 2)统计/home及子目录下的所有文件的个数 ls -lr /home |grep "^-" | wc -l 3)以树状显示目录结构 tree 八、网络设置 8.1 固定IP设置 etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.3 NETMASK=255.255.255.0 GATEWAY=192.168.1.111 DNS1=8.8.8.8 //域名解析 DNS2=8.8.4.4 8.2 设置hostname /etc/hosts 设置ip 和 hostname 九 1.安装jdk 卸载自带的jdk rpm -qa | grep jdk 检索jdk rpm -e java-1.7.0-openjdk* --node 删除 安装 1).安装包上传到linux系统中 2).解压 tar -zxvf jdk* -C /usr/local 3).配置环境变量 vim /etc/profile export JAVA_HOME=/usr/local/jdk* export PATH=$PATH:$JAVA_HOME/bin 4).使变量生效 source /etc/profile 2.传输文件 1)rz win往linux传文件 2)sz file linux往win传文件 3.主机名修改 vi /etc/sysconfig/network 4.修改hosts(主机名映射) /etc/hosts 5.pstree 进程树 -p 加上pid -u 查看所属用户 6.服务管理(service) 6.1定义 service 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求, 比如(mysql,防火墙,sshd),因此,我们又称为守护进程,是linux非常重要的知识点。 6.2 使用 service 服务名 [start|stop|restart|reload|status] centos7后,使用systemctl 6.3 查看服务名 1)使用setup -> 系统服务 九可以看到 2)ls -l /etc/init.d 服务名称 6.4 服务的运行级别(vi /etc/inittab) 0:系统停机级别, 1:单用户工作状态,root权限,用于系统维护 2:多用户状态(没有NFS),不支持网络 3:完全的多用户状态,登录后进入控制台命令行模式 4:系统为使用,保留 5:X11控制台,登录后进入图形化界面 6:系统正常关闭并重启,默认不能设置,否则不能正常启动。 6.5 开机运行流程 开机->BIOS->/boot->init进程->运行级别->运行级别对应的服务 6.6 不小心将级别设置为0或6 怎么办? 进入单用户模式,进行设置 7. 动态监控进程 top和ps 都用来显示正在执行的进程,top可惜实时更新。 top -d 10 10s刷新一次 p 一CUP使用率刷新,查看执行的进程 M 以内存的使用率排序 N 以PID排序 q 1)监视特定用户 top 查看执行的精彩 u 用户名 按回车 2)终止指定的进程 top: 查看进程 输入k 回车,在输入要结束的进程ID号。 8.监控网络端口服务 netstat [选项] -an 按一定顺序输出 -p 显示那个进程在调用 十、RPM和YUM 1.rpm包的管理 1.1介绍 一种用于互联网下载包的打包及安装工具,包含在某些Linux分发版中,它生成 .RPM扩展名的文件。 1.2 1.2.1 查询已安装的rpm列表 rpm -qa | grep xx 1.2.2 查询安装软件的版本等信息 rpm -qi 软件名 1.2.3 查看软件包安装到哪里去了 rpm -ql 软件名称 1.2.4 查询文件属于哪个软件包 rpm -qf 文件 1.3 卸载RPm包 rpm -e RPM包的名称 --nodeps 1.4 安装rpm包 rpm -ivh RPM包全路径名称 i= install 安装 v= verbose 提示 h= hash 进度条 1.5安装高版本的MySQL 下载一个rpm,安装上一个配置文件,(包含了mysql的yum下载配置文件) rpm -ivh xx.prm 修改配置文件 /etc/yum.repos.d/mysql-community.repo 把5.7的 enable=0 改为 enable =1 把8.0的 enable=1 改为 enable=0 安装 yum install -y mysql-community-server service mysqld start service mysqld restart 查找临时密码 grep 'temporapy password' /var/log/mysqld.log mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIEd BY '123456' 防火墙 远程操作 2. YUM 2.1 介绍 Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动 下载RPM包并且安装,可以自动处理依赖性关系,并且一次性安装所有依赖的软件包 2.2指令 2.2.1 查询yum服务器是否有需要安装的软件 yum list | grep xx 2.2.2 安装 yum install xx 2.2.3 卸载 yum remove xx 3. 防火墙设置 重启:#systemctl restart firewalld.service 启动:# systemctl start firewalld 查看状态:# systemctl status firewalld 或者 firewall-cmd --state 开机是否启动:# systemctl disable | enable firewalld 禁用:# systemctl stop firewalld 更新防火墙规则: # firewall-cmd --reload # firewall-cmd --complete-reload 4. 克隆 克隆一个一模一样的操作系统 克隆步骤 1) 将克隆前的网卡序列号删除 UUID,HWADDDR 2) 克隆(关机状态) 3) 删除网卡eth0,将eth1改为eth0 /etc/udev/r*/70*net* 4) 修改网络配置eth0 5) 重启电脑 5. 集群同步时间 ntpdate 0.aira.pool.ntp.org 6.scp 远程copy文件 scp file mar01:/root scp -r dir mar01:/root 7. 免密登录 1)yum install -y openssh-clients 安装ssh客户端 2)生成公钥和私钥 ssh-keygen -t rsa 3)把你的公钥发给别人(一旦其他机器接受了公钥,西祠登录就不需要密码了) ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip)