1 用户与账户相关
1.1 账户管理
1.1.1 添加用户
语法:useradd [参数] 用户名 #添加用户 参数: -c<备注>:设置用户帐号的备注。 -e<有效期限>:设置帐号的有效期限。 -g<群组>:设置用户所属的群组。 -n:取消建立以用户名称为名的群组.
1.1.2 密码管理
语法:passwd [参数] 用户名 #给指定用户设置密码 参数: -d:删除密码。本参数仅有系统管理者才能使用。 -f:强制该用户下次登录后修改密码 -l:锁住密码。 -u:解开已上锁的帐号。
1.1.3 修改用户
语法:usermod [参数] 用户名 #修改用户相关信息 选项: -c<备注>:修改用户帐号的备注文字。 -e<有效期限>:修改帐号的有效期限。 -g<群组>:修改用户所属的群组。 -l<帐号名称>:修改用户帐号名称。 -L:锁定用户密码,使密码无效。 -U:解除密码锁定。
1.1.4 删除用户
语法:userdel [参数] 用户名 #删除用户 选项: -r:删除主目录(家)和邮件箱 -f:删除用户的所有文件
1.2 用户组管理
1.2.1 添加/删除组
语法: groupadd 用户组名 #创建用户组 groupdel 用户组名 #删除用户组 groups 用户名 #查询用户所属组
1.2.2 修改组
语法:groupmod [参数] 用户组名 #修改用户组 参数: -g <组识编号>:设置欲使用的群组识别码。 -n <新群组名称>:设置欲使用的群组名称。
1.2.3 组成员管理
语法: gpasswd [可选项] 用户名 组名 #将一个用户添加到组或者从组中删除。 参数: -a:添加用户到组; -d:从组删除用户; -A:指定管理员; -M:指定组成员和-A的用途差不多; -r:删除密码; -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
1.3 其他操作
1.3.1 显示用户
语法:logname #显示当前登录账号的信息
1.3.2 切换用户
语法:su 用户名 #切换用户 举例: su #切换到root用户 su root #切换到root用户 su itcast #切换到itcast用户
1.3.3 详细信息
语法:id #查看当前用户的详细信息(用户id,群组id,所属组)
1.3.4 sudo
语法:sudo #提高权限 用法: sudo -l #显示自己的权限 sudo 命令 #让当前用户使用系统管理者的身份,去执行某个命令 sudo -u 用户名 命令 #以指定用户的身份,去执行某个命令
2 系统操作相关
2.1 日期管理
语法:date [参数] #显示或修改系统时间 参数: -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
2.2 进程相关
2.2.1 top
语法:top #实时显示所有进程信息 举例: top #实时显示所有的进程信息 top –c #实现显示所有的进程信息(显示的是详细信息) top –p PID #实时显示指定进程的信息 q #结束监控(Ctrl + C)
2.2.2 ps
语法:ps [参数] #查看进程信息 参数: -A:进程信息信息(部分) -u : 显示指定用户信息 -ef :显示所有进程信息(完整) 举例: ps #显示当前正在运行的进程信息 ps -A #显示系统中所有的进程信息 ps -ef #显示系统中所有的进程信息(完整信息) ps –u 用户名 #显示指定用户的进程信息
2.2.3 kill
语法:kill [参数] [进程] #中断执行中的程序 参数: -l<信息编号> : 若不加信息编号选项,则-l参数会列出全部的信息名称,进程:可以是程序的PID或者PGID,也可以是工作编号 -u 用户名: 杀死这个用户中所有进程 举例: kill 进程PID #杀死指定进程 kill -9 进程PID #彻底杀死指定进程 kill -9 $(ps –ef | grep 用户名) #彻底杀死指定用户所有进程 killall –u 用户名 #杀死指定用户所有进程
2.3 关机命令
语法:shutdown #关机 举例: shutdown #关机(不同的版本有所差异) shutdown –h now #麻溜的立马关机 shutdown +1 "警告信息" #墨迹一分钟再关机,并出现警告信息 shutdown –r +1 "警告信息" #墨迹一分钟再重启,并出现警告信息 shutdown -c #取消当前关机操作
2.4 重启命令
语法:reboot #重启 举例: reboot #立马重启
2.5 who命令
语法:who [参数] #显示当前登录系统的用户 参数: -H:显示标题信息 -u:显示闲置时间,如果一份之后有操作,则显示点,如果超过24小时无操作,则显示old字符串 -q:只显示登入系统的账号名称和总人数 -s:次参数将忽略不予处理,仅负责解决who指令其版本的兼容性问题 -w:显示用户的信息状态栏 举例: who #显示当前系统中登录的所有用户 who –H #显示明细(标题)信息
2.6 timedatectl命令
语法:timedatectl #校正服务器时间、时区 举例: timedatectl status #显示系统的当前时间和日期 timedatectl list-timezones #查看所有可用的时区 timedatectl set-timezone "Asia/Shanghai" #设置本地时区 timedatectl set-ntp false #禁用时间同步 timedatectl set-time "2019-03-11 20:45:00" #设置时间 timedatectl set-ntp true #启用时间同步
2.7 clear命令
语法:clear #清除当前屏幕; 也可以使用快捷键 ctrl+L
3 目录相关
3.1 目录相关命令
ls #列出目录 ls 显示不隐藏的文件与文件夹 ls -l 显示不隐藏的文件与文件夹的详细信息(简化写法是ll) ll –a 显示所有文件与文件夹的详细信息 ll –h 友好显示当前文件夹下所有的文件与文件夹 cd #切换目录 cd [相对路径或绝对路径] 切换目录 pwd #显示目前的目录 pwd –P 查看当前所在目录 mkdir #创建新目录 mkdir 文件夹名 #创建单级文件夹 mkdir -p 文件夹名 #创建多级文件夹 rm #删除文件或目录 rm 文件名 #删除文件 rm -rfv 文件夹名 #删除指定文件夹(不论文件夹是否为空,都进行删除) cp #复制文件或目录 cp aaa/a.txt ccc 将aaa文件夹中的a.txt文件拷贝到ccc文件夹中 cp –r aaa/* ccc 将aaa文件夹中所有内容拷贝到ccc文件夹中 mv #移动文件或目录,修改文件或者目录的名字 mv 数据源 目的地 改名、移动
3.2 chgrp命令
语法:chgrp [选项参数][所属群组][文件或目录...] #更改属组 参数: -c:效果类似"-v"参数,但仅回报更改的部分。 -f:不显示错误信息。 -h:只对符号连接的文件作修改,而不更动其他任何相关文件。 -R:递归处理,将指定目录下的所有文件及子目录一并处理。 -v:显示指令执行过程。 举例: chgrp -v root aaa #将aaa的属组改为root
3.3 chown命令
语法:chown [参数选项] 属主名 文件名 #更改属主 chown [参数选项] 属主名:属组名 文件名 #更改属主和属组 参数: -R 处理指定目录以及其子目录下的所有文件 举例: chown root aaa #将aaa的属主改为root chown root:root bbb #将bbb的属主和属组改为root chown –R root:root aaa #将aaa文件夹和里面所有的属主和属组改为root
3.4 chmod命令
语法:chmod [参数选项] 数字权限或符号权限 文件或目录 #修改文件的权限(属主、属组、其他用户) 参数: -c : 若该档案权限确实已经更改,才显示其更改动作 -f : 若该档案权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递归的方式逐个变更) 数字权限: 就是刚刚提到的数字类型的权限属性,为 rwx 对应数值相加的和。 符号权限: u:user属主权限 g:group属组权限 o:others其他权限 a:全部身份 举例: chmod –R 770 aaa #修改aaa文件夹及内容对属主和属组拥有所有权限,其他用户没有任何权限 chmod u=rwx,g=rx,o=r a.txt #修改a.txt文件对属主有所有权,属组拥有读和执行权限,其他用户只有读的权限
3.5 touch命令
语法:touch [参数选项] 文件名 #如果文件不存在就创建文件,如果存在就修改时间属性 参数: -a 改变档案的读取时间记录。 -m 改变档案的修改时间记录。 -c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 -d 设定时间与日期,可以使用各种不同的格式。 -t 设定档案的时间记录,格式与 date 指令相同。 举例: touch a.txt #不存在就创建,存在就修改时间属性 touch a{1..10}.txt #批量创建空文件 stat a.txt #查看文件的详细信息
4 文档操作相关
4.1 vi/vim编辑器
#编辑文件 语法:vim 文件名 #文件编辑器。如果文件存在就打开文件并编辑,如果文件不存在就创建并打开编辑 #模式切换 进入编辑模式 可以使用字母: i,a,o任意字母 退出编辑模式 可以按1次esc按键 进入底行模式 可以使用字母冒号 : 退出底行模式 可以按两次esc按键 #模式介绍: 编辑模式 处于此模式时,可以对文件的内容进行修改; 命令模式 处于此模式时,只能看文件的内容,同时此模式也是默认模式,是转换另外两种模式的中转站; 底行模式 处于此模式时,可以对文件本身操作,例如:文件保存,文件退出,等; #底行模式的语法: q #不保存,并推出 q! #不保存,并强制推出 wq #保存,并推出 wq! #保存,并强制推出 #异常处理: 如果vim异常退出, 在磁盘上可能会保存有交换文件, 需要将后缀名为.swp的文件删除即可恢复;
4.2 文件查看
cat命令
语法:cat [参数选项] 文件 #查看小型文件,一次性显示全部 参数: -n:由 1 开始对所有输出的行数编号。 举例: cat a.txt #查看a.txt的内容 cat –n a.txt #查看a.txt的内容(加入行号)
less命令
语法:less [参数选项] 文件 #查看大文件(可以通过上下按键进行翻页) 参数选项: -N:显示每行的行号 举例: less a.txt #查看a.txt的内容 less –N a.txt #查看a.txt的内容(加入行号)
tail命令
语法:tail [参数选项] 文件 #查看文件的最后部分,或动态显示文件最后内容 参数: -数字:显示文件的最后几行 -f :循环读取文档最后10行 -n <行数>:显示文件的内容,从指定行至文件末尾 -c:显示最后指定的字节数 举例: tail –3 big.txt #显示文件最后3行 tail -f big.txt #动态显示最后10行(必须掌握) tail -4f big.txt #动态显示最后4行 tail -n +2 big.txt #显示文件a.txt 的内容,从第 2 行至文件末尾 tail -c 45 big.txt #显示最后一些字符
4.3 grep命令
语法:grep [参数选项] 关键字 文件 #根据关键词,搜索文本文件内容(对内容进行筛选) 参数: -n:把包含关键字的行展示出来 -i :把包含关键字的行展示出来,搜索时,忽略大小写。 -v : 把不包含关键字的行展示出来 举例: grep 关键字 small.txt #把包含关键字的行展示出来 grep –i 关键字 small.txt #把包含关键字的行展示出来,搜索时忽略大小写 grep –v 关键字 small.txt #把不包含关键字的行展示出来 grep –A数字 关键字 small.txt #把包含关键字的行展示出来,并且显示改行之后的"数字"行 grep –B数字 关键字 small.txt #把包含关键字的行展示出来,并且显示改行之前的"数字"行 ps -ef | grep 关键字 #查找指定的进程信息,包含grep进程 ps -ef | grep 关键字 | grep -v "grep" #查找指定的进程信息,不包含grep进程 ps -ef | grep -c sshd #查找进程个数
4.4 echo命令
语法:echo 字符串 #展示文本 举例: echo 字符串 >文件名 #将字符串写到文件中(覆盖文件中内容) echo 字符串 >> 文件名 #将字符串写到文件中(不覆盖文件中内容) cat 不存在的目录 &>> error.log #将命令的失败结果 追加 error.log文件的后面
4.5 awk命令
#AWK是一种处理文本文件的语言,是一个强大的文本分析工具。一般配合cat命令可以对cat打开的文件内容进行分析展示; 语法:awk [参数选项] "语法" 文件 参数: -F ',' #使用逗号对文件内容进行分割 $+数字 #可以获取分割后的第几段内容 $0 #表示获取当前行内容 OFS='分隔符' #以指定的分隔符连接分割的结果 #awk脚本: BEGIN{ 这里面放的是执行前的语句 } {这里面放的是处理每一行时要执行的语句} END {这里面放的是处理完所有的行后要执行的语句 } #awk的方法: toupper($数字) tolower($数字) length($数字) #awk的特殊变量: NR 表示行号,从1开始 可以直接在{中使用自定义的变量名}
4.6 sed命令
语法: sed 命令 文件名 #把文件内容按照指定命令操作,并把结果输出. 注意: 文件本身不变 sed -i 命令 文件名 #修改文件内容,按照指定命令操作. 注意: 文件本身被改变 例如: sed 's/旧字符串/新字符串/g' 文件名 # 把指定文件中的指定"旧字符串"替换为"新字符串",并把替换结果输出. 文件本身不变. sed '/^$/d' 文件名 # 删除文件中的空行,并把替换结果输出. 文件本身不变. sed '/^关键字/d' 文件名 # 删除文件中以"关键字"开头的行,并把替换结果输出. 文件本身不变. 注意: 命令可以书写多个,如果书写多个,则使用"分号;"隔开. 例如: sed 's/旧字符串/新字符串/g;/^$/d' 文件名 #替换字符串的同时,删除空行
5 压缩与解压操作
5.1 ln命令-软连接
#创建软连接,也就是windows中的快捷方式; 语法:ln -s 目标文件路径 快捷方式路径
5.2 find命令
语法:find [参数选项] <指定目录> <指定条件> <指定内容> #在指定目录下查找文件 参数选项: -name filename #查找名为filename的文件 -ctime -n或+n #按时间来查找文件,-n指n行以内,+n指n行以前 例如: find . -name "*.java" 将当前目录及其子目录下所有后缀名是java的文件罗列出来
5.3 gz压缩与解压命令
5.3.1 gzip压缩
语法:gzip [参数选项] [文件] #压缩文件 参数: 不加任何参数表示压缩文件 -d 解压缩 -v 显示指令执行过程 举例: gizp a.txt #压缩a.txt文件 gzip * #压缩当前目录下所有文件 gzip -dv * #解压当前文件夹下所有压缩文件并列出详细信息
5.3.2 gunzip解压
语法:gunzip [参数] [文件] #解压文件 参数: -v 显示指令执行过程 举例: gunzip a.gz #解压a文件; gunzip * #解压当前文件夹下所有压缩文件并列出详细信息 gunzip 专门解压文件; 例如: gunzip a.gz 解压a文件, *可以表示所有文件;
5.4 tar打包并压缩命令[掌握]
语法: tar -zcvf 压缩文件名 文件名/文件夹名 #打包,并压缩 tar –zxvf 压缩文件名 #解压缩,解压到当前文件夹下 tar –zxvf 压缩文件名 -C 路径 #解压缩,解压到指定文件夹下 参数: -c:建立新的压缩文件 -v:显示指令执行过程 -f<备份文件>:指定压缩文件 -z:通过gzip指令处理压缩文件。 -t:列出压缩文件中的内容 -x:表示解压 举例: tar -q -r a.zip a #将a文件夹压缩成a.zip文件 注意: tar本身不具有压缩功能。他是调用gzip压缩功能实现的 。
5.5 zip格式解压与压缩
5.5.1 zip压缩
语法:zip [必要参数][选择参数][文件] #压缩文件 参数: -q 不显示指令执行过程。 -r 递归处理,将指定目录下的所有文件和子目录一并处理。 举例: zip -q -r a.zip a #将a文件夹压缩成a.zip文件 注意: 压缩出来的是".zip"扩展名的压缩文件。 zip是个在windows中使用广泛的压缩程序(linux中一般使用tar.gz方式压缩文件),
5.5.2 unzip解压缩
语法:unzip [必要参数][选择参数][文件] #解压 参数: -l 显示压缩文件内所包含的文件。 -d<目录> 指定文件解压缩后所要存储的目录 举例: unzip a.zip #将a.zip解压到当前文件夹中 unzip -d bb a.zip #将a.zip解压到bb文件夹中 注意:只能解压".zip"扩展名的压缩文件。
6 网络相关
6.0 网络配置信息
cd /etc/sysconfig/network-scripts/ #进入网络配置文件所在位置 vim ifcfg-网卡名 #编辑指定网卡的配置信息 systemctl restart network #重启网络服务 TYPE=Ethernet 网卡类型:以太网 PROXY_METHOD=none 代理方式:关闭状态 BROWSER_ONLY=no 只是浏览器(yes|no) BOOTPROTO=static 设置网卡获得ip地址的方式(static|dhcp|none|bootp) DEFROUTE=yes 设置为默认路由(yes|no) IPV4_FAILURE_FATAL=no 是否开启IPV4致命错误检测(yes|no) IPV6INIT=yes IPV6是否自动初始化 IPV6_AUTOCONF=yes IPV6是否自动配置 IPV6_DEFROUTE=yes IPV6是否可以为默认路由 IPV6_FAILURE_FATAL=no 是不开启IPV6致命错误检测 IPV6_ADDR_GEN_MODE=stable-privacy IPV6地址生成模型 NAME=eth0 网卡物理设备名称 UUID=6e89ea13-f919-4096-ad67-cfc24a79a7e7 UUID识别码 DEVICE=eth0 网卡设备名称 ONBOOT=no 开机自启(yes|no) IPADDR=192.168.103.203 IP地址 NETNASK=255.255.255.0 子网掩码,也可使用掩码长度表示(PREFIX=24) GATEWAY=192.168.103.1 网关 DNS1=114.114.114.114 首选DNS DNS2=8.8.8.8 备用DNS
6.1 ifconfig命令
ifconfig 显示激活的网卡信息 ifconfig ens37 down 关闭网卡 ifconfig ens37 up 启动网卡 ifconfig ens37 192.168.23.199 配置ip地址 ifconfig ens37 192.168.23.133 netmask 255.255.255.0 配置ip地址和子网掩码
6.2 ping命令
语法:ping [参数选项] ip地址 #检测是否与主机连通 参数选项: -c<完成次数>:设置完成要求回应的次数。 例如: ping www.baidu.com #检测是否与百度连通 ping -c 2 www.baidu.com #指定接收包的次数
6.3 netstat命令
语法:netstat [参数选项] #显示网络状态 参数: -a 显示所有连线中的Socket -i 显示网卡列表 举例: netstat –a #显示详细的连接状况 netstat –i #显示网卡列表 netstat -ap #显示当前网络连接状况(带PID)
6.4 防火墙
#查看防火墙状态 firewall-cmd --state # 停止firewall systemctl stop firewalld.service # 开启firewall systemctl start firewalld.service #禁止firewall开机启动 systemctl disable firewalld.service #重启防火墙: firewall-cmd --reload
6.5 开启端口
# 开启端口 # --zone #作用域, --add-port=80/tcp 添加端口,格式为:端口/通讯协议 # --permanent #永久生效,没有此参数重启后失效 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 关闭3306端口 firewall-cmd --zone=public --remove-port=3306/tcp --permanent # 查询端口号3306是否开启: firewall-cmd --query-port=3306/tcp #查询有哪些端口是开启的 firewall-cmd --list-port
7 硬盘相关
7.1 lsblk命令
语法:lsblk [参数选项] #列出硬盘的使用情况,理解为"list block"的英文缩写 参数: -f 显示系统信息 例如: lsblk #列出硬盘的使用情况 lsblk –f #显示系统信息
7.2 df命令
语法:df [参数选项] #显示目前在Linux系统上,硬盘的使用情况 参数选项: --total:显示所有的信息 -h:换算成KB,MB,GB等形式进行展示(方便阅读) 例如: df #显示整个硬盘使用情况 df 文件夹 #显示文件夹使用情况 df –total #显示所有的信息 df -h #将结果变成KB,MB,GB形式展示,利于阅读
7.3 mount命令
#作用:挂载Linux系统外的文件。(可以理解为是将linux系统外的软件或硬件与linux系统连接在一起,并被linux系统识别的一系列操作,就是挂载,例如:你把U盘插入电脑,电脑识别U盘,并读取到U盘中的内容就是挂载了U盘) 语法:mount [参数选项] 目录 #用于挂载Linux系统外的设备 例如: mkdir 文件夹 #创建文件夹(也是创建一个挂载点) mount -t auto /dev/cdrom 文件夹 #开始挂载 umount 文件夹 #卸载
8 软件下载安装与卸载
8.1 yum命令
#Yum(全称为 Yellow dog Updater, Modified)是一个软件包管理器。能够从指定的服务器自动下载RPM软件安装包并且安装,还可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 #yum命令的作用: 可以完成软件的安装,下载或者卸载; #yum常用命令: yum check-update #列出所有可更新的软件清单 yum update #更新所有软件 yum install <package_name> #仅安装指定的软件 yum update <package_name> #仅更新指定的软件 yum list #列出所有可安裝的软件清单 yum remove <package_name> #删除软件包 yum search <keyword> #查找软件包: yum clean packages: #清除缓存目录下的软件包 yum clean headers #清除缓存目录下的 headers yum clean oldheaders #清除缓存目录下旧的 headers yum clean, yum clean all #清除缓存目录下的软件包及旧的headers
8.2 rpm命令
安装rpm软件包
rpm -ivh 软件全包名
卸载rpm软件包
rpm -e 软件全包名
列出所有安装过的包
rpm -qa
查询软件包信息
rpm -qi 软件全包名
查看文件安装位置