文章目录
- 登录注销
- 关机重启
- Vim编辑器快捷键
- 文件目录类
- 打包、解包、压缩和解压指令
- 输出重定向`>`和追加`>>`指令
- 时间日期类
- 搜索查找类
- 用户管理
- 文件所有者所在组
- 权限管理
- 变更权限
- crond任务时间调度
- crond相关指令:
- 特殊符号说明:
- at定时任务
- 磁盘分区
- 磁盘情况查询
- 磁盘工作实用指令
- Linux网络配置
- 设置主机名和HOST映射
- 监控网络状态
- 进程管理
- Service服务管理
- RPM和YUM
- 1、rpm
- 2、yum
登录注销
su - 用户名,logout 注销用户登录(运行级别3下有效)
关机重启
shutdown -h now 立刻关机
shutdown -h 1 1分钟后关机,默认一分钟
shutdown -r now 现在重启
shutdown -c 取消关机,取消重启
halt关机
reboot重启
sync同步内存数据
Vim编辑器快捷键
拷贝当前行 :yy
粘贴:p
删除当前行: dd,删除以下5行:5dd
查找某个单词:命令行下/关键词,回车,n查找下一个。
设置文件行号:命令行set nu
撤销:一般模式下,u
移动到20行:一般模式下,输入20,然后shift+g
移动到最末行最首行:一般模式下G, gg
文件目录类
ls :显示当前目录下的文件,-a 所有文件,-l 列表展示信息,-h 方便浏览
cat xxx:安全打开,只读
vi xxx:用vim编辑器打开文件
more: 分页打开
less: 打开大文件
head -n 11 xx 打开文件开头11行,默认10行
tail -n 11 xxx 打开文件末尾11行
tail -f xxx实时监控文件
history: 命令执行记录
history 10
最近执行的10条指令
!488
执行第488条指令
rm: 删除文件 -f 强制删除, -r逐层递归删除文件
cp: 复制文件或覆盖,-r递归复制整个文件夹 ,/cp强制覆盖
mv: 移动文件、重命名
touch:创建空文件
mkdir:创建文件夹
rmdir:删除文件夹
ln: 符号连接,软连接
ln -s /root/ myroot
awk -F "," '{print $1}' data.txt
cut -d "," -f 1 data.txt
打包、解包、压缩和解压指令
Linux 主要有3种压缩方式,zip,gzip,xz是压缩解压指令。
gzip:压缩速度最快,应用广泛
bzip2:压缩成的文件小
xz:最新的方式,提供最佳的压缩率
tar是打包指令:
-c,进行打包
-v,显示详细信息
-f,指定压缩或解压的文件包
-z,支持gzip压缩和解压,-j支持bzip压缩,-J支持xz压缩
-x,解包文件
-t,显示文件的内容
-k,保留原有文件不覆盖
-C,切换到指定目录
案例1:压缩多个文件
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
案例2:将/home文件夹压缩
tar -zcvf myhome.tar,gz /home/
案例3:将myhome.tar.gz解压到当前目录
tar -zxvf myhome.tar.gz
案例4:将myhome.tar.gz解压到/opt/tmp2下
mkdir /opt/tmp2
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
1、tar
打包:tar cvf xxx.tar xxx文件
解包:tar xvf xxx.tar
2、.gz
压缩:gzip xxx
解压:gunzip xxx.gz
3、.tar.gz 和 .tgz
压缩:tar zcvf xxx.tar.gz xxxx
解压:tar zxvf xxx.tar.gz
4、.tar.bz2
压缩:tar jcvf xxx.tar.bz2 xxx
解缩:tar jxvf xxx.tar.bz2
5、.zip
压缩:zip xxx.zip xxx
解压:unzip xxx.zip
例:
zip -r myhome.zip /home/把home文件夹及子文件压缩
unzip -d /opt/tmp myhome.zip 把myhome.zip解压到/opt/tmp
6、.rar
压缩:rar a xxx.rar xxx
解压:rar x xxx.rar
7、.bz2
压缩: bzip2 -z xxxx
解压1:bzip2 -d /xxx xxx.bz2
解压2:bunzip2 xxx.bz2
输出重定向>
和追加>>
指令
ls -l > info.txt
cat 文件1> 文件2
echo “xxx”>文件
echo $PATH $HOSTNAME
时间日期类
date: 打印当前时间
date "+%Y-%m-%D"
打印年月日
date set "+%Y-%m-%D %H:%M:%S"
cal :打印当前日历
cal 2023
打印2023年日历
搜索查找类
find :-name ;-user; -size
find /home -name hello.txt -user root找到/home目录下用户名为root的hello.txt文件
find / -size +200M 在根目录下找大于200M的文件
locate: 无需遍历整个系统,查询快
updatedb
locate hello.txt 定位hello.txt所在的目录
grep: 过滤查找
-v
: 反向查找
cat hello.txt | grep -n "hello"
打开hello.txt并查找hello所在行。
案例1:在/home目录下查找所有内容含cat的文件名
grep -r "cat" /home | cut -d ":" -f 1
案例2:请统计/home目录下所有文件个数及文件的总行数
find -r /home -name "*.*" | wc -l
find -r /home -name "*.*" |xargs wc -l
用户管理
添加用户:useradd xxx
删除用户:userdel xxx
修改用户所在组:usermod -g 新组名 user
修改用户登录目录:usermod -d 目录 user
查看用户是否存在:id user
查看当前用户:whoami
文件所有者所在组
添加/删除组:groupadd/groupdel
查看了文件的所有者:ls -ahl xxx
改变文件的所有者:chown 新用户 文件名/目录
改变文件所在组:chgrp 新组名 文件名/目录
改变文件目录所有者所在组:chown newowner:newgroup
加上参数-R将目录下所有文件都会改变
权限管理
-rw-r--r--. 1 root root 239 10月 24 10:13 hello.java
(1)
drwxr-xr-x. 2 root root 4096 10月 23 13:56 桌面
(2)
r:读 w:写 x:执行 [4,2,1] r+w+x=7
0~9位:
1)0位:文件类型,-文件,d目录,c字符设备(键盘鼠标),b块设备(硬盘)
2)1~3位:所有者权限
3)4~6:所在组权限
4)7~9:其他组权限
[rwx]作用于文件
r:只读cat; w:写修改但不能删除 ;x:可执行
[rwx]作用于目录
r: 查看目录内容ls,但对文件有独立的权限; w:可在目录内创建、删除文件 ; x:可进入目录cd
注(1)中数字1表示文件数或子目录数,第一个root为用户,第二个为用户组,239为文件大小单位字节,“10月 24 10:13”为最后修改日期。
变更权限
chmod修改文件目录的权限, u所有者,g所在组,o其他组,a所有人
(1)+ ,-, =
chmod u=rwx,g=rx,o=x 文件名/目录 :给用户rwx,所在组rx,其他组x
chmod o+x 文件名/目录 :给其他组执行权限
chmod a-x 文件名/目录 :所有人剥夺执行权限
(2)通过数字变更
r:4 w:2 x:1
rwx=7,rw:6,rx:5,r:4,wx:3,w:2,x:1 无权限:0
chmod u=rwx,g=rx,o=x 文件名/目录
相当于chmod 751 文件名/目录
crond任务时间调度
设置任务调度文件:/etc/crontab
设置个人调度任务:执行crontab -e指令,接着输入任务到调度文件。如:
*/1 * * * * ls -l /etc > /tmp/to.txt
每小时每分钟执行ls -l /etc > /tmp/to.txt
五个占位符参数:
第一个*:一小时中第几分钟,0~59
第二个*:一天中第几小时,0~23
第三个*:一个月中第几天,1~31
第四个*:一年中第几个月,1~12
第五个*:一周中星期几,0~7(0,7为星期日)
crond相关指令:
-r
终止任务调度(删除),-e
编辑任务,-l
列出任务
service crond restart
重启crond调度
特殊符号说明:
*
:任何时间,若第一个为*表示每分钟执行。
,
:逗号代表不连续的时间,0 8,12,16 * * *
表示每天8点12点16点0分执行。
-
:表示连续时间范围, 0 5 ** 1-6
周一到周六凌晨五点执行。
*/n
:表示每隔多久执行,*/10
表示每隔10分钟执行。
案例1:
每隔一分钟将当前时间和日期追加到/home/mycal中
1)vim my.sh写入date >> /home/mycal和cal >> /home/mycal
2) 给my.sh增加执行权限,chmod u+x my.sh
3) crontab -e写入任务*/1 * * * * /home/my.sh
案例2:
每天凌晨2点备份数据库mydb
1)crontab -e
2)0 2 * * * mysqldump -u root -p 123456 mydb > /home/db.bak
at定时任务
at命令是一次性定时任务,at的守护进程atd检查作业队列,以后台模式运行,每60秒检查一次,若时间与当前时间匹配则运行。使用at要保证atd在运行,使用以下命令查看进程:
ps -ef | grep atd
at [选项] [时间]
atq查询任务,atrm删除
Ctrl+D结束命令输入
at时间格式:
1)hh:mm(04:00)当天或第二天执行
2)midnight/noon/teatime
3)12小时制,如9am ,3pm
4)指定具体日期:month day或mm/dd/yy或dd.mm.yy,指定日期必须在时间后面04:00 2023-11-1
5)相对计时:now + count time-units
,now是当前时间,count是数量,tim-units是时间单位,minutes,hours,days,months,weeks。
now + 5 days
五天后
5pm + 2 days
两天后下午五点
6)today、tommorow
案例1:
每天下午5点,把时间输入到/root/data.log里
at 5pm tommorow
date > /root/data.log
案例2:
2天后五点执行/bin/ls /home
1)at 5pm + 2 days
2)/bin/ls /home
案例3:
删除5号at任务
atrm 5
磁盘分区
磁盘分区和文件系统之间通过挂载mount联系起来,分区构成整个文件系统。
查看设备挂载情况:lsblk -f
Linux硬盘分为IDE和SCSI类型,目前主要为SCSI。
对于IDE硬盘,驱动器标识符为hdx~
,hd表示IDE设备类型,x表示盘号(a主盘,b从属盘,c…),~
表示分区,前四个分区用1-4数字表示,5开始为逻辑分区。如hda2表示第一个IDE硬盘的第二个分区。
对于SCSI硬盘,标识为“sdx~”,sd为SCSI硬盘类型,其余和IDE表示类似。
案例:挂载一块硬盘
1.虚拟机添加硬盘
在虚拟机设置中在设备列表里添加一块硬盘,完成后重启才能识别。
2.分区
fdisk /dev/sdb
m 显示命令列表
p 显示磁盘分区,fdisk -l
n 新增分区
d 删除分区
w写入并退出
q 直接退出
3.格式化
格式化文件系统获得UUID:mkfs -t ext4 /dev/sdb1
4.挂载
将分区和文件目录联系起来:mount 设备名 文件目录
mount /dev/sdb1 /newdisk
umount 设备名或挂载目录(mountpoint)
umount /dev/sdb1
或umount /newdisk
但是重启后失效
5.设置自动挂载
实现永久挂载,修改/etc/fstab文件,添加设备,重启或执行mount -a立刻生效。
/dev/sdb1 /newdisk 0.0
磁盘情况查询
1)查看磁盘整体使用情况 :df -h
2)查询指定目录的磁盘占用情况
du -h
默认当前目录
-s 占用大小汇总
-h 带计量单位
-a 带上文件
–max-depth=1子目录深度
-c 列出明细,增加汇总值
案例1:查询/opt目录下一层子目录的磁盘使用情况
du -h --max-depth=1 /opt
磁盘工作实用指令
1)统计/opt文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
2)统计/opt文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
3)统计/opt文件夹下文件的个数,包括子文件夹下的文件
ls -lR /opt | grep "^-" | wc -l
4)统计/opt文件夹下目录的个数,包括子文件夹下
ls -lR /opt | grep "^d" | wc -l
5)树状显示目录结构
yum install tree
tree /opt
Linux网络配置
查看网络配置:ifconfig或ip addr
测试网络连通:ping ip地址
1)DHCP动态路由分配
自动分配,ip不会冲突,但是不固定。
2)静态分配IP(固定IP)
修改网卡配置文件,vi /etc/sysconfig/network-scripts/ifcfg-ens33
,将ip地址配置成静态的,添加固定ip如下。
DEVICE=ens33 (设备网卡名)
HWADDR=00:0c:2x:6x:0x:xx (MAC地址)
TYPE=ethernet (网络类型)
UUID=029ad-d12e-dw23-32da-1d2c (随机id)
ONBOOT= yes (系统启动时网络接口是否开启)
BOOTPROTO=static (ip配置方法)[none;static;dhcp;bootp]
IPADDR=192.168.157.129 (ip地址)
GATEWAY=192.168.157.2 (网关)
DNS1=192.168.157.2 (DNS解析器)
在虚拟机中找到虚拟网络编辑器,找到该网络如vmnet8,修改子网ip地址为192.168.157.0,修改NAT配置中网关地址,点击确定再点击应用。之后重启系统或者输入service network restart
生效。
设置主机名和HOST映射
查看主机名:hostname
修改主机名:vi /etc/hostname
,重启
设置HOST映射:
1)在windows的"C:\Windows\System32\drivers\etc\hosts"下添加ip与主机名的映射:192.168.157.129 CentOS7
ping CentOS7可ping通。
windows cmd窗口ipconfig /displaydns
列出本地dns缓存,ipconfig /flushdns
清除缓存。
2)linux在/etc/hosts文件修改
监控网络状态
netstat [options],选项说明:
-an,按一定顺序输出 ;-p,显示哪个进程在调用
-tuln,查看开放的端口
例如:查看sshd服务的信息
netstat -anp |grep sshd
ping ip,监测网络连接。
案例:统计连接到服务器的各个ip情况,并按连接数从大到小排
netstat -an | grep ESTABLISHED | awk -F " " '{print $5}' | cut -d ":" -f 1 | sort -nr |uniq -c
进程管理
1、查看进程信息
ps指令:
ps -A 显示当前所有进程信息
ps -a 显示所有终端机下执行的程序
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
ps -aux | grep sshd 查看也没有sshd服务
USER进程执行用户,PID进程号,%CPU进程占CPU百分比,%MEM进程占物理内存的百分比,VSZ进程占虚拟内存的大小,RSS进程占物理内存的大小KB,TTY终端名称,STAT进程状态(S睡眠,R正在运行,Z僵尸进程,D短期等待,T被跟踪或被停止,>高优先级),START进程开始执行时间,TIME占用CPU时间,COMMAND启动进程的命令或参数。
ps -ef 以全格式显示所以进程,不会截断,System V格式。
ps -ef | grep sshd
UID用户ID,PID进程号,PPID父进程PID,TTY终端设备号。
//查找进程状态信息
cat /proc/pid/status
//查找进程启动命令行
cat /proc/pid/cmdline
2、终止进程
kill [option] PID ,终止进程,option=-9表示强制终止。
killall 进程名 ,终止该进程及子进程。
案例1:踢掉某个非法登录用户tom
root 1143 1 0 16:23 ? 00:00:00 /usr/sbin/sshd -D
root 1741 1143 0 16:23 ? 00:00:00 sshd: root@pts/0
root 5031 1143 1 20:03 ? 00:00:00 sshd: tom [priv]
tom 5043 5031 0 20:03 ? 00:00:00 sshd: tom@pts/1
kill 5031
案例2:终止远程登录服务器sshd,合适时重启服务
kill 1143
/bin/systemctl start sshd.service
案例3:终止多个gedit
killall gedit
案例4:强制杀死终端
root 5277 5267 0 20:16 pts/1 00:00:00 bash
kill -9 5277
3、查看进程树
pstree ,-p 显示进程号,-u显示用户
4、top动态监控进程(性能监视器,任务管理器)
top: 实时显示进程信息
top -d 秒数,几秒后刷新
top -i,不显示闲置和僵尸进程
top -p PID,指定某进程ID监控进程
top交互操作说明,输入:
P,以CPU使用率排序,默认
N,以PID排序
M,以内存使用率排序
q,退出
u,接着输入用户名,回车即可查看某用户相关进程
k,接着输入进程号,回车即可终止某进程
案例1:监控用户tom的相关进程
top,输入u,接着输入tom
案例2:终止指定进程,踢掉tom
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2060 tom 20 0 160988 2372 1028 S 0.0 0.1 0:00.01 sshd
2064 tom 20 0 116876 3296 1676 S 0.0 0.2 0:00.04 bash
top,输入u回车,输入tom回车,输入k回车,输入2064回车。
Service服务管理
查看系统服务:
1)setup,系统服务。
2)service指令管理服务在/etc/init.d查看,ls -l /etc/init.d/
service指令:
service 服务名 [start|stop|restart|reload|status]
CentOS7以后,大多服务不使用service,而使用systemctl。
[使用service关闭network服务,一旦关闭,将无法连接SSH服务]
服务运行级别,在/etc/initab查看,systemctl get-default
查看当前运行级别,systemctl set-default T.target
设置默认级别。
chkconfig指令:
查看服务:chkconfig --list
设置服务在level级别开启:chkconfig --level [0/1/2/3/4/5/6] 服务名 on/off
如设置network在3级别打开或关闭:chkconfig --level 3 network on/off
,之后重启系统即可生效。
systemctl指令:
systemctl [start |stop |restart |status |enable |disable] 服务名
该指令管理的服务在/usr/lib/systemd/system查看。
systemctl list-unit-files,查看服务开机启动状态
systemctl enable 服务名 ,设置服务开机启动
systemctl disable 服务名,关闭服务自启动
systemctl is-enabled 服务名 ,查看某个服务是否自启动
案例1:查看当前防火墙状态,关闭和打开防火墙服务
systemctl list-unit-files | grep firewalld
或
systemctl is-enabled firewalld
或
systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld
【systemctl start/stop 服务,服务在系统重启后恢复原样】
案例2:防火墙打开和关闭指定端口111
查看端口:firewall-cmd --list-port
打开打开:firewall-cmd --permanent --add-port=端口/协议
关闭打开:firewall-cmd --permanent --remove-port=端口/协议
重载生效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --reload
RPM和YUM
1、rpm
rpm是linux常用的下载和打包安装工具,生成.rpm结尾的文件。
软件包名基本格式:firefox-68.10.0-1.el7.centos.x86_64,名称:firefox,版本:68.10.0,适用操作系统:el7.centos.x86_64,norach表示32位64位通用。
1)查询
查询已安装的rpm包列表:rpm -qa | grep xxx
查询所有rpm包:rpm -qa
查询软件包是否安装:rpm -q 软件包名
查询软件包信息:rpm -qi 软件包名
查询软件包中的安装文件:rpm -ql 软件包名
查询文件所属软件包:rpm -qf 文件全路径
例:rpm -qf /etc/passwd
2)安装
安装软件包:rpm -ivh 软件包全路径,-i安装,-h显示进度,-v显示安装信息
例:rpm -ivh /opt/firefox-68.10.0-1.el7.centos.x86_64
3)卸载
卸载安装包:rpm -e xx软件包名 [erase]
强制卸载:rpm -e --nodeps xxx
2、yum
yum是一个Shell前端软件包管理器,基于rpm,能够从服务器中下载rpm包并安装,可以自动处理依赖关系,并一次性安装所以依赖,但需要连接网络。
-y:代替手动输入yes,自动执行安装
查询服务器是否有可安装的xx软件:yum list | grep xxx
安装包:yum install xxx
删除软件:yum remove xxx
更新所以软件:yum update
更新一个软件:yum update xxx
清除缓存目录下的软件包:yum clean all
更新软件包缓存:yum makecache
搜寻软件包:yum search xxx
影响yum使用的主要文件:
基本设置: /etc/yum.conf
仓库软件源配置配置: /etc/yum.repo.d/*.repo
日志文件: /var/log/yum.log
*.repo的基本配置项
[base]:代表容器名称,名称可以随意取
name:描述容器含义
baseurl:后面接容器地址,是指定一个固定容器地址
enabled:是否启用此频道(1为启动,0为不启用)
gpgcheck:是否需要查阅RPM文件内数字证书
gpgkey:数字证书公钥文件所在位置,使用默认值
开启软件缓存 nano /etc/yum.conf
案例:使用yum安装firefox
rpm -e firefox
yum list | grep firefox
yum install firefox
如有谬误,敬请指正!