功能:查看文件或目录的信息
命令:ls [-ahld] [文件或目录]
a:显示所有文件,包括隐藏文件
l:详细信息显示
h:显示详细信息后,以m来显示文件或目录的大小
d:查看目录属性
例子:ls -lh
功能:创建新目录
命令:mkdir [-p] [目录名]
p:递归创建
例子:mkdir -p /a/b/c
例子(创建多个目录):mkdir -p /data/redis_data/{7000,7002,7004}
功能:切换到指定的目录
命令:cd [目录]
例子:cd /root
功能:显示当前目录
命令:pwd
例子:pwd -> /a/b/c
功能:删除空目录
命令:rmdir [目录名]
例子:rmdir /a/b/c
功能:创建空文件(如果该文件已存在,则取消操作)
命令:touch [文件名]
例子:touch /a/a1.txt
功能:复制文件或目录
命令:cp [-rp] [原文件或目录] [目标目录]
r:复制目录
p:保留文件属性
例子:cp -rp /a/a1.txt /b/b1.txt
功能:剪切文件或目录(改名)
命令:mv [原文件或目录] [目标目录]
例子:mv /a/a1.txt /b/b1.txt
功能:删除文件(或目录)
命令:rm [-rf] [文件或目录]
r:删除目录
f:强制执行
例子:rm -rf /a/a1.txt
功能:显示文件内容
命令:cat [-n] [文件名]
n:显示行号
例子:cat -n /a/a1.txt
功能:显示文件内容(倒序)
命令:tac [文件名]
例子:tac a1.txt
功能:分页显示文件内容
命令:more [文件名]
说明:回车键换行,空格键翻页,q键退出
例子:more /etc/httpd/conf/httpd.conf
功能:分页显示文件内容
命令:less [文件名]
说明:上下键换行,左右键翻页,q键退出
例子:less /etc/httpd/conf/httpd.conf
功能:显示文件的前面几行
命令:head [-n] [文件名]
n:指定行数
例子:head -10 /etc/httpd/conf/httpd.conf
功能:显示文件的后面几行
命令:tail [-nf] [文件名]
n:指定行数
f:动态显示文件末尾的内容
例子:tail -10f /etc/httpd/conf/httpd.conf
功能:生成链接文件(快捷方式)
命令:ln [-s] [原文件] [目标文件]
s:创建软链接
说明:软链接可以用于文件或目录,硬链接只能用于文件(不能跨分区)
例子:
软链接:ln -s a1.txt a1.txt.soft
硬链接:ln a1.txt a1.txt.hard
功能:改变文件或目录的权限
命令:chmod [-R] [数字] [文件或目录]
R:递归修改
例子:chmod -R 755 a
功能:改变文件或目录的所有者
命令:chown [用户] [文件或目录]
例子:chown lj01 /a
功能:改变文件或目录的所属组
命令:chgrp [用户] [文件或目录]
例子:chgrp lj01 /a
功能:显示当前目录的默认权限
命令:umask [-S]
S:以rwx形式来显示权限
例子:
rwx格式:umask -S
数字格式:umask(数字权限=777-该命令的结果数值的后三位)
功能:文件搜索
命令:find [选项] [匹配条件]
name:文件名
iname:文件名(不区分大小写)
例子:find /a/ -iname a1.txt
size:文件大小(+n:大于,-n:小于,=:等于)
例子:find /a/ -size +1k
user:所有者名称
group:所属组名称
例子:find /a/ -user lj01
amin:创建时间
cmin:文件属性
mmin:文件内容
例子:find /a/ -amin -3(在当前目录下查找3分钟内创建的文件和目录)
type:文件类型(f:文件,d:目录,l:软链接)
例子:find /a/ -type l
a:与
o:或
例子:find /a/ -size +3k -a -size -5k
inum:i节点
功能:在文件资料库中查找文件
命令:locate [文件或目录]
例子:locate a1.txt
功能:搜索命令所在目录及其别名信息
命令: which [命令]
例子:which ls
例子:which phpize
功能:搜索命令所在目录及帮助文档路径
命令: whereis [命令]
例子:whereis ls
功能:在文件中搜索字符串匹配的行并输出
命令:grep [-ivn] [字符串] [文件]
i:不区分大小写
v:排除指定的字符串
n:显示行号
例子:grep -ivn ll /a/a1.txt
功能:获取帮助信息
命令:man [命令或配置文件]
例子:man ls
功能:获取shell内置命令的帮助信息
命令:help [命令]
例子:help umask
功能:添加新用户
命令:useradd [用户名]
例子:useradd lj02
功能:设置用户的密码
命令:passwd [用户名]
例子:passwd lj02
功能:修改用户的密码状态
命令:passwd [-Slu] [--stdin] [用户名]
S:查看密码状态(仅root用户可用)
l:暂时锁定用户(仅root用户可用)
u:解锁用户(仅root用户可用)
--stdin:把管道符输出的数据作为用户的密码
例子:echo "hx01" | passwd --stdin hx001
功能:删除用户
命令:userdel [-r] [用户名]
r:删除用户的同时删除其家目录
例子:
删除用户:userdel lj01
删除用户及其家目录:userdel -r lj01
功能:修改用户的信息
命令:usermod [-ucGLU] [用户名]
u:修改用户的id
c:修改用户的说明
G:修改用户的附加组
L:临时锁定用户(修改/etc/shadow文件的密码字段,字段开头添加了!符号)
U:解锁用户(修改/etc/shadow文件的密码字段,字段开头删除了!符号)
例子:usermod -L lj01
功能:修改用户的密码状态
命令:chage [-ldmMWIE] [用户名]
l:列出用户的详细密码状态
d:最后一次修改密码的日期(shadow文件的第三字段)
m:俩次密码修改的间隔时间(shadow文件的第四字段)
M:密码的有效期(shadow文件的第五字段)
W:密码过期前的警告天数(shadow文件的第六字段)
I:密码过期后的宽限天数(shadow文件的第七字段)
E:帐号过期时间(shadow文件的第八字段)
例子:chage -l lj01
功能:查看用户的id,初始组id,附加组id
命令:id [-ugG] [用户名]
u:查看用户的id
g:查看用户的初始组id
G:查看用户的附加组
例子:
查看所有的id信息:id lj01
查看用户的id:id -u lj01
查看用户的初始组id:id -g lj01
功能:切换用户的身份
命令:su [-] [用户名] [-c]
例子:
只切换账号:su hx
切换账号和用户的环境变量:su - hx
只执行一次命令,而不切换身份:su - root -c "useradd hx001"
功能:查看登录用户的基本信息
命令:who
例子:who
功能:查看登录用户的详细信息
命令:w
例子:w
功能:压缩文件(压缩后文件格式:.gz),不保留原文件
命令:gzip [文件]
例子:gzip /a/a3.txt
功能:解压缩.gz格式的压缩文件,不保留原压缩文件
命令:gunzip [压缩文件]
例子:gunzip /a/a3.txt.gz
功能:压缩目录,保留原文件
命令:tar [-cvf] [压缩后的文件名] [目标目录]
c:打包
v:显示详细信息
f:指定文件名
例子:tar -cvf a1.tar a1(要在当前目录下操作,防止打包错误;选项的顺序不能错误cvf)
功能:解压缩.tar格式的压缩文件,保留原压缩文件
命令:tar [-xvf] [压缩文件]
x:解包
v:显示详细信息
f:指定文件名
例子:tar -xvf a1.tar(选项的顺序不能错误xvf)
功能:安装zip和unzip命令
命令:yum -y install unzip zip
功能:压缩文件或目录,保留原文件
命令:zip [-r] [压缩后的文件名] [文件或目录]
r:压缩目录
例子:zip -r /a/a1.zip /a/a1
功能:解压缩.zip格式的压缩文件,保留原压缩文件
命令:unzip [压缩文件]
例子:unzip /a/a1.zip
功能:压缩文件(压缩后的文件格式:.bz2)
命令:bzip2 [-k] [文件]
k:产生压缩文件后保留原文件
例子:bzip2 -k /a/a3.txt
功能:解压缩.bz2格式的压缩文件
命令:unzip [压缩文件]
k:解压后保留原压缩文件
例子:bunzip2 -k /a/a3.txt
功能:给在线的用户发信息,以ctrl+d保存结束
命令:write [用户名]
例子:write hx
功能:发广播信息
命令:wall [信息]
例子:wall hello,boy,good luck!
功能:测试网络连通性
命令:ping [-c] [ip地址]
c: 指定发送的次数
例子:ping -c 3 47.254.130.34
功能:查看和设置网卡信息
命令:ifconfig [网卡名称] [ip地址]
例子:
查看网卡信息:ifconfig
设置网卡:ifconfig eth0 61.153.188.131;(谨慎设置网卡,会被踢出)
功能:查看或发送邮件
命令:mail [用户名]
例子:
查看邮件:mail
发送邮件:mail hx
功能:列出目前和过去登录系统的用户信息
命令:last
例子:last
功能:修改主机名称
命令:vi /etc/hostname
例子:
vi /etc/hostname
修改为hjx2019,保存/etc/hostname文件后,重启服务器
功能:查看某用户最近一次的登录时间
命令:lastlog [-u] [用户名或用户id]
例子:
用户名:lastlog -u lj
用户id:lastlog -u 1000
功能:测试IP和端口是否能访问
命令:wget ip:port
例子:wget 47.103.3.29:3306
功能:显示数据包到主机的路径
命令:traceroute [主机的ip地址]
例子:traceroute 61.153.188.131
功能:显示网络相关信息
命令:netstat [-tulrn]
a:显示所有选项,默认不显示LISTEN相关
t:tcp协议
u:udp协议
l:监听
r:路由
n:显示ip地址和端口号
p:显示建立相关链接的程序名
例子:netstat -t
功能:配置网络
命令:setup
例子:setup
功能:挂载设备
命令:mount [-t] [文件系统] 设备文件名 挂载点
例子:mount -t iso9660 /dev/sr0 /mnt/cdrom
功能:关机和重启
命令:shutdown [-chr]
c:取消前一个命令
h:关机
r:重启
例子:shutdown -r now;(立即重启)
功能:退出系统
命令:logout
例子:logout
RPM包命名规则(查询未安装的rpm包要用其包全名httpd-2.2.15-15.e16.centos.1.i686.rpm,已安装的用其简称httpd)
名称:
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd:软件包名
2.2.15:软件版本
15:软件发布的次数
e16.centos:适合的linux平台
i686:适合的硬件平台
rpm:扩展名
RPM模块依赖查询网站:http://www.rpmfind.net
功能:安装rpm包
命令:rpm -ivh [包全名]
i:安装
v:显示详细信息
h:显示进度
例子:rpm -ivh httpd-2.2.15-15.e16.centos.1.i686.rpm
功能:升级rpm包
命令:rpm -Uvh [包全名]
U:升级
v:显示详细信息
h:显示进度
例子:rpm -Uvh httpd-2.2.16-15.e16.centos.1.i686.rpm
功能:卸载rpm包
命令:rpm -e [包全名]
e:卸载
例子:rpm -e httpd-2.2.16-15.e16.centos.1.i686.rpm
功能:查询rpm包的信息
命令:rpm [-qlai] [包名]
q:查询已安装的rpm包
p:查询未安装的rpm包
l:列表
a:所有
i:详细信息
例子:
查询已安装的rpm包:rpm -qi httpd
查询已安装的所有rpm包:rpm -qai
查询未安装的rpm包:rpm -pl httpd
功能:查询文件属于哪个软件包
命令:rpm [-qf] [文件名]
q:查询
f:文件
例子:rpm -qf /etc/httpd/conf/httpd.conf
功能:查询软件包的依赖性
命令:rpm [-qRp] [软件包名]
q:查询
R:依赖性
p:未安装
例子:rpm -qR httpd
功能:检验rpm包中的文件
命令:rpm [-V] [包名]
V:检验
例子:rpm -V httpd
显示结果(是否改变):
S:文件大小
M:文件的类型或文件的权限
5:文件的内容
D:从代码
L:文件路径
U:文件的所有者
G:文件的所属组
T:文件的修改时间
文件类型:
c:配置文件
d:普通文件
g:鬼文件(rpm包不应该包含该文件)
l:授权文件
r:描述文件
功能:从rpm包中提取想要的文件
命令:rpm2cpio [包名] | cpio [-idv] [目标目录]
i:还原
d:还原时自动新建目录
v:显示还原过程
例子:rpm2cpio /a/coreutils-8.22-18.el7.x86_64 | cpio -idv /bin/ls
功能:查询所有可用的软件包
命令:yum [list]
list:列表
例子:yum list
功能:查询网上所有和搜索软件包相关的软件包
命令:yum [search] [软件包]
search:查询
例子:yum search httpd
功能:yum命令操作软件包
命令:yum -[y] [-install,-update,-remove] [软件包]
y:自动回答yes
install:安装
update:升级
remove:卸载
例子:yum -y install gcc
功能:yum操作软件组
命令:yum [grouplist,groupinstall,groupremove] [组名]
例子:
查询所有可用的软件组名:yum grouplist
安装指定的软件组:yum groupinstall aKfgpqVcdLilsiv(组名由yum grouplist查询所得)
卸载指定的软件组:yum groupremove aKfgpqVcdLilsiv(组名由yum grouplist查询所得)
功能:查看本机公网ip
命令:curl cip.cc
功能:查看端口开放情况
命令:iptables -L -n
功能:查看端口被什么程序占用
命令:ss -lntpd|grep :端口号
例子:ss -lntpd|grep :22
功能:清空文件全部内容
命令:echo > [文件名]
例子:echo > /root/a.txt
功能:查看linux内核的版本
命令:lsb_release -a
用户信息文件:/etc/passwd
第一字段:用户名称
第二字段:密码标志
第三字段:uid(用户id)
第四字段:gid(用户初始组id)
第五字段:用户说明
第六字段:家目录
第七字段:登录之后的shell(命令解释器)
影子文件:/etc/shadow
第一字段:用户名称
第二字段:加密的密码("!!"或"*"则代表没有密码,无法登录)
第三字段:密码最后一次的修改日期(以1970年1月1日为标准时间,每过一天时间戳加1)
第四字段:俩次密码修改的间隔时间(和第三字段相比)
第五字段:密码有效期(和第三字段相比)
第六字段:密码修改到期前的警告天数(和第五字段相比)
第七字段:密码过期后的宽限天数(和第五字段相比.0:密码过期后马上失效;-1:密码永远不会失效)
第八字段:帐号的失效时间(用时间戳表示)
第九字段:预留(暂无任何功能)
功能:把时间戳换算为日期:
命令的例子:date -d "1970-01-01 17891 days"
功能:把日期换算为时间戳
命令的例子:echo $(($(date --date "2018/12/26" +%s)/86400+1))
功能:将日期转换为Unix时间戳
例子:
普通格式:date +%s
指定的格式:date -d "2018-5-20 05:20" +%s
功能:将Unix时间戳转换为日期
例子:
普通的格式:date -d @1561542596
指定的格式:date -d @1561542596 +"%Y-%m-%d %H:%M:%S";(指定日期格式的转换)
功能:查看acl权限
命令:getfacl [文件或目录]
例子:getfacl /a/a4.txt
功能:设置acl权限
命令:setfacl [-mxbk] [-d] [用户或用户组] [-R] [文件或目录]
m:设置acl权限(m也就是mask是指定最大有效权限->最高优先级别的限制)
x:删除指定的acl权限
b:删除所有的acl权限
k:删除默认的acl权限
R:递归设置acl权限(当前父目录的子孙拥有和父目录一样的acl权限)
d:设定默认的acl权限(所有新建的子孙和父目录的acl权限一样)
例子:
给用户设置acl权限:setfacl -m u:hx:rwx /a/a4.txt(格式->u:用户名:权限)
给用户组设置acl权限:setfacl -m g:hx:rwx /a/a4.txt(格式->g:用户组名:权限)
设置最大的acl权限:setfacl -m m:rx /a/a4.txt(防止用户设置的acl权限过高)
删除指定用户的acl权限:setfacl -x u:hx /a/a4.txt
删除指定用户组的acl权限:setfacl -x g:hx /a/a4.txt
删除所有的acl权限:setfacl -b /a/a4.txt
递归设置的acl权限:setfacl -m u:hx:rx -R /a/b
设置默认的acl权限:setfacl -m d:u:hx:rx /a/b
功能:命令执行者在执行二进制程序的过程中获得该程序文件的所属者的身份
介绍:SetUid权限只用于可执行的二进制程序
命令1:ll /usr/bin/passwd
显示1:-rwsr-xr-x(拥有SetUid权限,所以普通用户也可以修改自己的密码)
命令2:ll /bin/cat
显示2:-rwx-xr-x(没有SetUid权限,所以普通用户不能用cat命令查看/etc/shadow文件)
功能:设置SetUid权限
命令:chmod [权限] [二进制文件]
例子:
数字格式:chmod 4755 /a/b/c1.sh
字母格式:chmod u+s /a/b/c2.sh
功能:取消SetUid权限
命令:chmod [权限] [二进制文件]
例子:
数字格式:chmod 755 /a/b/c1.sh
字母格式:chmod u-s /a/b/c2.sh
功能:命令执行者在执行二进制程序的过程中获得该程序文件的所属组的身份
介绍:SetGid权限只用于可执行的二进制程序
命令1:ll /usr/bin/locate
显示1:-rwx--s-x;
命令2:ll /var/lib/mlocate/mlocate.db
显示2:-rwx-xr-x;
(执行/usr/bin/locate命令时,组身份升级,所以普通用户也可以查看mlocate.db数据库)
功能:设置SetGid权限
命令:chmod [权限] [二进制文件]
例子:
数字格式:chmod 2755 /a/b/c1.sh
字母格式:chmod g+s /a/b/c2.sh
功能:取消SetGid权限
命令:chmod [权限] [二进制文件]
例子:
数字格式:chmod 755 /a/b/c1.sh
字母格式:chmod g-s /a/b/c2.sh
功能:在拥有粘着位的目录下,除了root用户,其他用户只能删除自己建立的文件
介绍:粘着位sbit只用于目录
功能:设置粘着位
命令:
数字格式:chmod 1755 /a/b
字母格式:chmod o+t /a/b
功能:取消粘着位
命令:
数字格式:chmod 755 /a/b
字母格式:chmod o-t /a/b
功能:查看文件或目录的系统属性
命令:lsattr [-ad] [文件或目录
a:显示所有的文件和目录的属性
d:如果目标是目录,则只列出目标自己的属性
例子:lsattr -d /a/b
功能:设置文件或目录的系统属性
命令:chattr [+-=] [-ia] [文件或目录]
+:增加权限
-:删除权限
=:等于某权限
i:
文件->无法对文件执行w操作;
目录->只能修改目录下的子孙,但不能建立和删除;
a:
文件->只能添加数据,但不能修改和删除;
目录->只能在目录下建立和修改子孙,但不能删除;
例子:chattr +i /a/b
介绍:sudo权限的操作对象是系统命令,把root用户才能执行的命令赋予普通用户也能执行;
配置sudo必须通过编辑/etc/sudoers文件,该文件只要root用户才能打开,visudo命令可以打开文件/etc/sudoers
功能:获取sudo权限(只能通过修改sudo的配置文件来获取sudo权限)
步骤:
第一步:使用visudo命令打开/etc/sudoers文件(命令:visudo)
第二步:添加上一行你需要的sudo权限
格式说明:
1:用户 ip地址=(可使用的身份) 授权的命令
2:lj ALL=(ALL) ALL
3:用户组 ip地址=(可使用的身份) 授权的命令
4:%hx ALL=(ALL) ALL
例子:
赋予指定的用户拥有全部命令的权限:hx ALL=(ALL) ALL
赋予指定的用户拥有部分命令的权限:hx ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel
功能:查看文件系统信息
命令:df [-ahTmk] [挂载点]
a:显示所有的文件系统信息
h:使用习惯的单位来显示容量
T:显示文件系统类型
m:以mb为单位显示容量
k:以kb为单位显示容量(默认选项)
例子:df -Tm /boot
功能:统计文件或目录的磁盘占用量
命令:du [-ahs] [文件或目录]
a:同时显示其子孙的磁盘占用量
s:只统计总的磁盘占用量(不显示子孙的)
h:使用习惯单位显示磁盘占用量
例子:du -s /boot
解释:
df命令:面向文件系统的,不仅计算文件或目录占用的空间,还计算命令或程序占用的空间(最常见的就是文件已经删除,但命令或程序还没有释放空间);
du命令:面向文件的,只计算文件或目录占用的空间;
功能:修复文件系统
命令:fsck [-ay] [分区设备文件名]
a:自动修复文件系统
y:自动修复文件系统(有些文件系统不支持a选项只支持y选项)
例子:
fsck -y /dev/vda2;
fsck -y devtmpfs;
功能:显示磁盘状态
命令:dumpe2fs [分区设备文件名]
例子:dumpe2fs /dev/vda2
功能:挂载使用和卸载光盘
步骤:
第一步:建立挂载点(命令:mkdir /mnt/cdrom/)
第二步:挂载光盘(命令:mount -t iso9660 /dev/cdrom /mnt/cdrom/)
第三步:卸载光盘(命令:umount /mnt/cdrom/)
功能:查看U盘设备文件名
命令:fdisk [-l]
l:详细信息
例子:fdisk -l
功能:挂载使用和卸载U盘
步骤:
第一步:建立挂载点(命令:mkdir /mnt/usb/)
第二步:挂载U盘(命令:mount -t vfat /dev/sdb1 /mnt/usb/)
第三步:卸载U盘(命令:umount /mnt/usb/)
功能:挂载
命令:mount [-to] [-L] [卷标名]
t:指定文件系统(ext3,ext4,iso9660等文件系统)
o:可以指定挂载的额外选项(exec/noexec,rw/ro,remount等等)
L:挂载指定卷标的分区,而不是挂载设备文件名
例子:mount -o remount,exec /home
功能:支持NTFS文件系统(linux默认不支持NTFS文件系统)
步骤:
第一步:去NTFS-3G网站下载压缩包
第二步:解压(tar -zxvf 压缩包)
第三步:进入解压出来的目录(cd 解压目录)
第四步:编译安装(编译器准备:./configure;编译:make;安装:make intall);
第五步:开始使用(mount -t ntfs-3g 分区设备文件名 挂载点)
功能:查看历史命令(历史命令默认最多保存1000条,可以在环境变量配置文件/etc/profile中修改上限条数)
命令:history [-cw] [历史命令保存文件->~/.bash_history]
c:清空历史命令
w:把缓存中的历史命令写入历史命令保存文件(不需要重启服务器)
例子:
清空历史命令:history -w
把缓存中的历史命令写入历史命令保存文件:history -w ~/.bash_history
功能:查询命令别名
命令:alias
例子:alias
功能:设置命令的别名(重启服务器后失效)
命令:alias [别名]=["原命令"]
例子:alias list="ls"
功能:删除别名
命令:unalias [别名]
例子:unalias list
介绍:想要让命令的别名永久生效,可以修改配置文件(超级管理员:/root/.bashrc;普通用户:/home/用户名/.bashrc,例子:/home/lj/.bashrc)
功能:统计文件的一些信息
c:统计字节数
w:统计单词数
l:统计行数
命令:wc [-cwl] [文件]
例子:wc -w /etc/profile
功能:对文件内容进行排序
命令:sort [-fnrt] [-k m,n] [文件]
f:忽略大小写
n:以数值进行排序(默认使用字母进行排序)
r:反向排序
t:用分隔符(默认是制表符)来分割获取字段;例如一列的值为aa:bb:cc,用符号:来分割这一列则字段一为aa,字段二为bb,字段三为cc
-k m,n:按照指定的列范围进行排序(从第m列开始,第n列结束,没写n的话默认是列尾)
例子:sort -n -t ":" -k 3,4 /etc/passwd
sort -n -t $'\t' -k 3,4 a1.txt
功能:搜索文件里的某个内容
命令:grep [-inv] [--color=auto] ["搜索内容"] [文件]
i:忽略大小写
n:输出行号
v:反向搜索
--color=auto:搜索出的关键字用颜色显示(默认已经有的选项,可不加)
例子:grep -i --color=auto "httpd" /etc/httpd/conf/httpd.conf
功能:提取文件中的列(局限性:面对制表符tab这种多个空格的时候,无法正确获取想要的列)
命令:cut [-fd] [文件]
f:提取某些列
d:按照指定的分隔符来分隔列
例子:cut -f 2,3,5 -d ":" /etc/passwd
功能:查看当前系统的运行级别
命令:runlevel
例子:runlevel
解释:
1:单用户模式(安全模式)
2:不完全的命令行模式(不含NFS服务)
3:完全的命令行模式(标准模式)
4:系统保留
5:吐血模式
6:重启
功能:改变当前系统的运行级别
命令:init 运行级别
例子:init 3
功能:执行脚本文件的方法
方法1:命令chmod赋予文件可执行权限(chmod 755 1.sh),执行方式(./1.sh)
方法2:bash 1.sh
功能:查看rsyslogd日志服务功能是否启动
例子:ps aux | grep rsyslogd
Bash常用快捷键
ctrl+a:光标移动到命令开头
ctrl+e:光标移动到命令结尾
ctrl+c:终止当前命令
ctrl+l:清屏(相当于clear命令)
ctrl+d:退出服务器
ctrl+r:搜索历史命令
ctrl+u:剪切光标之前的内容
ctrl+k:剪切光标之后的内容
ctrl+y:粘贴ctrl+u和ctrl+k剪切的内容
RPM包的软件的默认安装路径
/etc/:默认文件
/usr/bin/:可执行命令
/usr/lib/:程序所使用的函数库
/usr/share/doc/:软件使用手册
/usr/share/man/:帮助文件
用vi打开/etc/fstav文件
第一字段:UUID(硬盘通用唯一识别码)
第二字段:挂载点
第三字段:文件系统名称
第四字段:挂载参数
第五字段:指定分区是否被dump备份(0:不备份;1:每天备份;2:不定期备份)
第六字段:指定分区是否被fsck检测(0代表不检测;其他大于0的数字代表检测的优先级,数字越小越优先)
功能:多条命令执行
说明:使用分号;或&&
例子:cd /temp/log/;rm -rf *
注意:如果temp/log目录不存在,并且恰巧当前目录是根目录/,则会清空整个根目录下的文件.
因为;可以执行多条命令,但是不会因为前一条命令失败,而导致后面的不会执行.
使用&&会确保前一条命令执行成功,才会执行后面一条.
例子:cd /temp/log/ && rm -rf *
功能:查看已经登录的用户
命令:w
例子:w
功能:查看系统中所有的进程
命令:
BSD操作系统格式:ps aux
linux标准命令格式:ps -le
例子:ps aux
功能:查看系统健康状态
命令:top
例子:top
功能:查看进程树
命令:pstree [-pu]
p:显示进程的pid
u:显示进程的所属用户
例子:pstree -p
功能:查看可用的进程信号
命令:kill -l
例子:kill -l
功能:操作进程的常用命令kill
命令:kill [选项] [进程的pid]
选项(信号):自行百度那些数字信号
例子:
重启进程:kill -1 223345
强制杀死进程: kill -9 223345
功能:操作进程的常用命令killall
命令:killall [-i] [-I] [进程名]
i:会询问是否要杀死进程
I:忽略进程名的大小写
例子:killall -i -I HTtpd
功能:杀死进程(例子:踢掉已经登录的用户)
命令:pkill [-t] [选项] [进程名]
t:终端号
选项(信号)
例子:pkill -t 9 pts/1(强制杀死从pts/1虚拟终端登录的进程,也就是踢出系统)
功能:把进程放入后台
命令:[命令行] &
备注:脚本的执行会随着ssh会话的退出而退出
例子:tar -zcf /b.tar.gz /etc &
功能:不挂断的运行进程
命令:nohup [命令行]
备注:永久运行,不会随着ssh会话的退出而退出
例子:nohup tar -zcf /b.tar.gz /etc
功能:把进程放入后台,并且不挂断的运行
命令:nohup [命令行] &
备注:永久运行,不会随着ssh会话的退出而退出
例子:nohup sh test.sh &
功能:查看后台的工作
命令:jobs [-l]
l:显示工作的pid
例子:jobs -l
注意:符号+代表最后一个放入后台的工作,符号-代表倒数第二个放入后台的工作
功能:将后台暂停的工作恢复到前台执行
命令:fg [工作号]
工作号:后台运行的工作的id号,不是进程的pid
例子:fg 1
功能:把后台暂停的工作恢复到后台执行
命令:bg [工作号]
例子:bg 2
注意:目标工作不能和前台有交互的(top命令这种在界面显示的就不行)
功能:监控系统资源
命令:vmstat [刷新延时] [刷新次数]
例子:vmstat 1 3
功能:查看开机时,内核的检测信息
命令:dmesg
例子:dmesg | grep CPU
功能:查看内存和交换分区swap的使用情况
命令:free [-b|-k|-m|-g]
选项[-b|-k|-m|-g]:以指定的单位来显示内存使用的大小
例子:free -m
功能:查看cpu信息
命令:cat /proc/cpuinfo
例子:cat /proc/cpuinfo
功能:查看cpu的id
命令:dmidecode -t 4 | grep ID
例子:dmidecode -t 4 | grep ID
功能:查看串口名称
命令:ls -l /dev/ttyS*
例子:ls -l /dev/ttyS*
功能:查看串口是否可用,可以对串口发送数据
命令:echo 数据 > 串口
例子:echo hjx2019 > /dev/ttyS0
功能:显示系统的启动时间和平均负载
命令:uptime
例子:uptime
额外:也就是top命令的第一行,w命令也可以查看到这个信息
功能:查看系统和内核的相关信息
命令:uname [-ars]
a:查看系统的所有信息
r:查看内核版本
s:查看内核名称
例子:uname -a
功能:判断当前系统的位数(查看是32位的还是64位)
命令:file /bin/ls
例子:file /bin/ls
功能:查看进程打开或使用的文件信息
命令:lsof [-cup]
c:只列出某个字符串开头的进程打开的文件
u:只列出某个用户的进程打开的文件
p:只列出某个pid的进程打开的文件
例子:lsof -u lj
功能:查看rsyslogd日志服务是否启动
例子:ps aux | grep rsyslogd
功能:查看rsyslogd日志服务的配置文件
例子:vi /etc/rsyslog.conf
功能:操作系统定时任务
命令:crontab [-elr]
e:编辑crontab定时任务
l:查询crontab定时任务
r:删除当前用户的所有crontab定时任务
例子:crontab -e(打开定时任务的配置文件)
编辑的内容:* * * * * 命令或程序
第一字段:第几分钟(0-59)
第二字段:第几小时(0-23)
第三字段:第几天(1-31)
第四字段:第几月(1-12)
第五字段:星期几(0-7,其中0和7都代表星期日)
第六字段:命令或程序
特殊符号:
*:任何时间
,:用符号,分隔的几个时间
-:连续的时间范围
*/n:每隔多久执行一次
第二步:写入需要的定时任务(*/1 * * * * /bin/date >> /b/crond1.txt)
第三步:启动定时任务(命令:systemctl start crond)
例子:
每天凌晨0点执行:0 0 * * * cd /www/wwwroot/netpump && php think year_report
功能:备份
命令:dump [-level] [-uvjw] [-f] [备份之后的文件名] [原文件]
level:备份级别,有0-9十个备份级别(0:完全备份;1:增量备份)
u:备份成功后,把备份时间记录在/etc/dumpdates文件中
v:显示备份过程中的详细信息
j:把备份文件压缩成.bz2格式
w:查看被dump的分区的备份等级和备份时间
例子:
完全备份根分区:dump -0uj -f /root/gen.bak.bz2 /
增量备份根分区:dump -1uj -f /root/gen.bak1.bz2 /
完全备份boot目录:dump -0j -f /root/boot.bak.bz2 /boot(备份文件和目录只能用完全备份0)
功能:操作被dump备份的文件
命令:restore [-Citr] [-f] [备份文件名]
C:比较备份数据和实际数据的变化
i:进入交互模式手工选择需要恢复的文件
t:查看备份文件中拥有哪些数据
r:还原数据
f:指定备份文件名
例子:
比较备份数据和实际数据的变化:restore -C -f /root/boot.bak.bz2
查看备份文件中拥有哪些数据:restore -t -f /root/boot.bak.bz2
还原数据:新建一个目录来存放还原后的文件,然后执行还原数据的命令(restore -r -f /root/boot.bak.bz2)
vi编辑器的使用
一.插入命令
a:在光标所在的字符后插入
A:在光标所在的行尾插入
i:在光标所在的字符前插入
I:在光标所在的行首插入
o:在光标所在的行下插入新行
O:在光标所再的行上插入新行
二.定位命令
0:移至行首
$:移至行尾
:set nu:设置行号
:set nonu:取消行号
gg:到第一行
G:到最后一行
:n:到第n行
三.删除命令
x:删除光标所在处的字符
nx:删除光标所在处后的n个字符
dd:剪切光标所在行
ndd:从当前行开始,剪切n行
D:删除光标所在处到行尾内容
dG:删除光标所在行到文件末尾内容
:n1,n2d:删除指定指定访问的行,n1到n2
四.复制粘贴命令
yy:复制当前行
nyy:从当前行开始,复制n行
p:粘贴在当前光标所在行的下面
P:粘贴在当前光标所在行的上面
五.替换和取消命令
r:替换光标所在处的字符
R:从光标所在处开始替换字符,按esc键结束
u:取消上一步操作
六.搜索和搜索替换命令
/string:搜索指定的字符串
:set ic:搜索时忽略大小写
n:搜索的指定字符串的下一个出现位置
:%s/old/new/g:全文替换指定的字符串
:n1,n2s/old/new/g:在指定的行范围内(n1-n2)替换指定的字符串
七.保存和退出命令
:w:保存修改
:w new_fileName:另存为新文件(新文件名为new_fileName)
:wq:保存修改并退出
:wq!:强制保存修改并退出(文件所有者和root用户才可以使用)
:q:不保存退出
:q!:强制不保存退出
八.常用的小技巧
:r ![命令]: 导入命令执行结果
:map [快捷键] [命令]: 定义快捷键(例子: :map [shift+p] 3x)
:n1,n2s/^/#/g: 连续行注释(例子: :2,5s/^/#/g)
:ab str1 str2: 替换显示(输入字符串str1会显示字符串str2)
正则表达式的使用
^:匹配行首
$:匹配行尾
*:前一个字符匹配任意次
.:匹配除了换行符以外的字符
[]:匹配括号中的任意一个字符
[^]:匹配括号中的以外的任意一个字符
\:转义符
\{n\}:前面的字符出现n次
\{n,\}:前面的字符至少出现n次
\{n,m\}:前面的字符至少出现n次,最多出现m次
例子:
匹配包含连续三个数字的字符串:grep "[0-9]\{3\}" a1.txt
匹配在字符g和字符d之间至少有一个o,最多有3个o:grep "go\{1,3\}d" a1.txt
功能:输出信息
命令:echo [-n] [-e] [特殊字符+信息]
n:不换行输出
e:支持反斜杠转义字符
特殊字符:
\a:发出警告声
\b:删除前一个字符
\c:最后不加上换行符号
\f:换行但光标仍旧停留在原来的位置;
\n:换行且光标移至行首
\r:光标移至行首,但不换行
\t:插入tab
\v:与\f相同
\\:插入\字符
\nnn:插入nnn(八进制)所代表的ASCII字符
例子:
不换行输出:echo -n "123"
使用制表符和换行:echo -e "111\t222\t333\n456"
防火墙操作:
安装firewall插件:yum install firewalld firewalld-config
配置文件:/etc/firewalld/
查看版本:firewall-cmd --version
查看帮助:firewall-cmd --help
查看区域信息:firewall-cmd --get-active-zones
查看指定接口所属区域信息:firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态:firewall-cmd --panic-off
查看是否拒绝:firewall-cmd --query-panic
查看防火墙状态:firewall-cmd --state
开启防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
设置开机启动:systemctl enable firewalld
停止并禁用开机启动:sytemctl disable firewalld
重启防火墙:firewall-cmd --reload
查看指定区域所有开启的端口号:firewall-cmd --zone=public --list-ports
参数说明:
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
–permanent 永久生效,没有此参数重启后失效
在指定区域开启端口(如80端口号)
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload
在指定区域开启某个范围的端口号(如18881~65534)
firewall-cmd --zone=public --add-port=18881:65534/tcp --permanent
重启防火墙
firewall-cmd --reload
常用的systemctl指令
systemctl enable *.service 开机运行服务
systemctl disable *.service 取消开机运行
systemctl start *.service 启动服务
systemctl stop *.service 停止服务
systemctl restart *.service 重启服务
systemctl reload *.service 重新加载服务配置文件
systemctl status *.service 查询服务运行状态
systemctl --failed 显示启动失败的服务