Linux基础知识

Xftp、Xshell下载:
https://www.netsarang.com/zh/free-for-home-school/

关机:
halt 立即关机
showdown -h now (立即关机)
showdown -h 1 (1分钟后关机)
init 0
重启:
reboot
init 6

Linux内置vi编辑器,vim为vi增强版
vi、vim三种模式:
(1).正常模式
(2).插入模式 按i
(3).命令行模式 : 或 /

vi(view)、vim命令:
拷贝粘贴:拷贝当前行(yy),拷贝当前行向下5行(5yy)  粘贴:p
删除:删除当前行(dd),删除当前行向下5行(5dd)
查找:/xxx ,按n定位到下一个关键字位置
设置行号: :set nu(显示行号)  :set nonu(不显示行号)
定位到首行、末尾::1定位到行首  :99999定位到末尾  或者 【G(末尾)、gg(首行)】
定位到某行: :50定位到第50行
退出编辑: :wq(保存退出)  :q(退出)  :q!(不保存强制退出)

用户管理:
新增用户:useradd 用户名 (会在/home下添加用户目录,创建一个用户且创建一个与用户名同名的组)
指定/修改密码:passwd 用户名
删除用户:userdel 用户名 (保留家目录)userdel -r 用户名 (删除用户及家目录)
查询用户信息:id 用户名
切换用户:su -用户名 (高权限用户到底权限用户不需要密码,指令exit/logout返回到原来用户)
查看当前登录用户:who/whoami

用户组:
新增组:groupadd 组名
删除组:groupdel 组名
增加用户时指定组:useradd -g 组名 用户名
修改用户的组:usermod -g 组名 用户名

找回root密码:略

Linux指令:
帮助指令man:man ls  (显示manual page)
帮助指令help:help cd (These shell commands are defined internally,内部定义的shell命令)
显示当前绝对路径:pwd
切换路径:跳转到某路径:cd /xxx 回到自己家目录:cd ~ 回到当前目录上一级:cd ..
创建目录:mkdir -p (parents 创建多级目录)
删除目录:rmdir xxx (删除空目录)  如果非空需要使用:rm -rf xxx
创建文件:touch test.txt
拷贝:cp -r /home/test.txt /opt/ (-r递归拷贝整个文件夹)
删除:rm -rf /home/test (-r递归删除整个文件夹 -f强制删除不提示)
移动或重命名:mv /tmp/cat.txt /tmp/pig.txt (移动到同一目录即重命名)
查看文件内容:cat -n 文件名 (-n显示行号),配合其他指令使用 例【cat -n /etc/profile | more】
more指令:基于VI编辑器的文本编辑器,按页显示文本文件的内容 more /etc/profile (space下一页,b上一页,enter往下滚动一行,q离开) 
less指令:和more指令类似但比more更强大,按需加载(不是一次将整个文件加载完才显示)适合查看大文件(关键字查询: /关键字)
echo指令:输出内容到控制台
显示文件:head -n /etc/profile (显示文件首n行) tail-n /etc/profile (显示文件尾n行) tail -f xxxfile (查看动态文件变化)
> 覆写: echo "hello" > /tmp/test.txt 
>> 追加:echo "hello" >> /tmp/test.txt
链接:硬链接:ln 源文件 目标文件, 软连接:ln -s 源文件 目标文件
显示历史指令:history 10 (显示最近10条指令) 
搜索历史指令:ctrl + r
显示当前时间:date
显示日历:cal 2021

查找:
按文件名:find /opt -name hello.txt
按拥有者:find /opt -user xiaoming
按文件大小:find / -size +200M (+大于、-小于,单位有K、M、G)
查找文件:locate hello.txt
locatefind 不同: find是去硬盘找,locate是查数据库,locate的速度比find 快,updatedb更新数据库

管道符号| :表示将前一个命令处理后的结果传递给后面命令处理
grep指令:过滤查找 常用选项:-n显示行号 -i忽略大小写
cat /opt/hello.txt | grep -n "yes"
cat /opt/hello.txt | grep -i "YES"

压缩和解压:
gzip /opt/hello.txt -> 压缩为hello.txt.gz
gunzip /opt/hello.txt.gz -> 解压缩为/opt/hello.txt

压缩文件:zip /tmp/hello.zip /opt/hello.txt
压缩目录:zip -r /tmp/home.zip /home/  (-r递归压缩)
解压:unzip -d /opt/tmp /tmp/home.zip

tar打包指令:
选项:
-c 打包为.tar文件
-z 压缩
-x 解包.tar文件
-v 显示详细信息
-f 指定压缩文件
打包压缩多个文件:tar -zcvf test.tar hello.txt world.txt
打包压缩目录:tar -zcvf /tmp/home.tar /home
解压文件到指定目录:tar -zxvf nginx-1.20.1.tar.gz -C /tmp/

Linux组:
每个<用户>必须属于一个组,不能独立于组外,每个<文件>有所有者、所在组、其他组的概念
当某个用户创建一个文件后,所有者是该创建者,这个文件的所在组就是该用户所在的组
修改文件的所有者:chown 用户名 文件名
修改文件所在的组:chgrp 组名 文件名

用户组:
新增组:groupadd 组名
删除组:groupdel 组名
增加用户时指定组:useradd -g 组名 用户名
修改用户的组:usermod -g 新组名 用户名

ls -l 前10位说明:
第0位确定文件类型(l,d,c,b,-)
l:link,是链接文件
d:directory,文件夹
c:character,字符设备文件,鼠标、键盘
b:block,块设备,如硬盘
-:普通文件
1-3位:该文件所有者对该文件的权限--User
4-6位:该文件所在组对该文件的权限--Group
7-9位:其他组对该文件的权限--Other
rwx权限详解:
rwx作用到文件:
r(read):可读取查看
w(write):可以修改,但是不一定能删除该文件,要删除该文件必须要有该文件所在目录的写权限才能删除
x(execute):可执行
rwx作用到目录:
r(read):可读取,ls查看目录内容
w(write):可修改,创建、重命名、删除目录
x(execute):可以进入该目录

定时任务:
crontab -e 编辑crontab定时任务
crontab -l 查询crontab任务
crontab -r 删除当前用户的所有crontab任务

5个占位符说明:
第一个*:一小时的第几分钟(0-59)
第二个*:一天的第几个小时(0-23)
第三个*:一月的第几天(1-31)
第四个*:一年的第几月(1-12)
第五个*:一周的星期几(0-7,0和7都代表星期日)

特殊符号说明:
* :代表任何时间
, :"0 8,12 * * *" 表示每天8点0分,12点0分执行
- :"0 5 * * 1-6"  表示周1到周6的5点0分执行
*/n :"*/10 * * * *" 表示每隔10分钟执行

定时任务案例:
45 22 * * * :在22点45分执行
0 17 * * 1  :每周1的17点0分执行
0 5 1,15 * *:每月1和15号的5点0分执行
40 4 * * 1-5:每周1~周5的4点40分执行
*/10 4 * * *:每天4点,每隔10分钟执行一次
0 0 1,15 * 1:【每月1号和15号,每周1】的0点0分都会执行命令,星期几和几号最好不要同时出现

at定时任务:一次性执行的定时任务,默认情况下at的守护进程atd每60秒检查作业队列,ps -ef|grep atd
atq:查看at定时队列
atrm 编号:atrm 4 //删除编号为4的任务
at时间定义:
1)能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
2)能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
3)能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
4)能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-03-1
5)能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes
6)能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间

磁盘分区机制:
硬盘分为IDE硬盘、SCSI硬盘,目前基本为SCSI硬盘(sda、sdb)
lsblk -f 查看磁盘分区挂载情况:
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda                                                      
├─sda1 xfs          186f98b8-d922-4890-b0e0-c36a74345c27 /boot
├─sda2 swap         8faf52ee-dcc0-45ac-92de-c64dbb717b08 [SWAP]
└─sda3 xfs          4a3ab271-b67a-403b-aeee-39c6156a3dbd /

增加一块硬盘步骤:
0.机器加入一块磁盘
1.分区
fdisk /dev/sdb 
m   print this menu (显示命令列表)
p   print the partition table (显示磁盘分区,同fdisk -l /dev/sdb)
n   add a new partition (新增分区)
d   delete a partition (删除分区)
w   write table to disk and exit (保存并退出)
2.格式化
mkfs -t ext4 /dev/sdb1 (ext4为分区类型)
3.挂载(重启后会失效)
mount /dev/sdb1 /newdisk
卸载:umount /dev/sdb1 或 umount /newdisk
4.设置自动挂载(会自动挂载)
vim /etc/fstab
UUID=d0d02e98-1a1f-4f4d-8ac2-75a86fa220ee /newdisk                ext4    defaults        0 0
查看挂载情况:
[nginx2@localhost ~]$ lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda                                                      
├─sda1 xfs          186f98b8-d922-4890-b0e0-c36a74345c27 /boot
├─sda2 swap         8faf52ee-dcc0-45ac-92de-c64dbb717b08 [SWAP]
└─sda3 xfs          4a3ab271-b67a-403b-aeee-39c6156a3dbd /
sdb                                                      
└─sdb1 ext4         d0d02e98-1a1f-4f4d-8ac2-75a86fa220ee /newdisk

磁盘情况查询:
df -h
du -hac --max-depth=1 /opt
-h 带计量单位
-a 列出项含文件
-c 增加汇总值
--max-depth=1 子目录深度

磁盘实用统计:
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.以树状显示目录结构
tree /opt

修改host:(重启生效)
vim /etc/hostname
设置主机名和hosts映射:
vim /etc/hosts

显示系统执行的进程:
To see every process on the system using standard syntax(使用标准语法查看系统上的每个进程)
命令:ps -ef | grep xxx
-e 显示所用进程 -f 全格式
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大表明进程是CPU密集型运算,执行优先级会降低,数值越小表明进程是I/O密集型,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数

To see every process on the system using BSD syntax(使用BSD语法查看系统上的每个进程)
命令:ps -aux | grep xxx
-a:显示当前终端的所有进程信息 -u:以用户的格式显示进程信息 -x:显示后台进程运行的参数
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位KB)
RSS:进程占用的物理内存大小(单位KB)
TTY:终端名称
STAT:进程状态,S-睡眠,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止
STARTED:进程的启动时间
TIME:使用CPU的总时间
COMMAND:启动进程所用的命令和参数

终止进程kill、killall
kill [选项] 进程号
killall 进程名称
-9:表示强迫进程立即停止
案例:踢掉某非法登录用户
ps -aux | grep sshd
kill -9 进程号

服务(service)本质就是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如(mysql、sshd),又称守护进程
mysql->3306->mysqld
xshell->22-> sshd
指令:service 服务名 [start|stop|restart|reload|status]
在centos7.0后服务使用systemctl指令管理

chkconfig指令:设置服务在各个运行级别下自启动/自关闭 (centos7.0后使用systemctl管理)
查看chkconfig --list [| grep xxx]
chkconfig --level 0/1/2/3/4/5/6 服务名 on/off
chkconfig重新设置服务自启动/自关闭需要reboot生效

服务的运行级别:(常用运行级别是3和5)
0:关机,默认运行级别不能设置为0否则不能正常启动
1:单用户,root权限,用于系统维护,禁止远程登录
2:多用户状态,不支持网络
3:多用户有网络状态,无界面√
4:系统未使用,保留×
5:多用户有网络状态,图形界面√
6:系统重启
切换运行级别:init 0/1/2/3/4/5/6
centos7.0后运行级别:
To view current default target:systemctl get-default
To set a default target:systemctl set-default (multi-user.target/graphical.target)
multi-user.target : analogous to runlevel 3
graphical.target : analogout to runlevel 5

服务管理:systemctl [start|stop|restart|status] 服务名
systemctl指令管理的服务在/usr/lib/systemd/system查看
查看自启动服务:systemctl list-unit-files [grep 服务名]
查看某服务是否开机自启动:systemctl is-enabled 服务名
设置自启动:systemctl enable 服务名
关闭自启动:systemctl disable 服务名
案例:查看防火墙状态,查看是否自启动,关闭防火墙、重启防火墙
查看防火墙状态:systemctl status firewalld
查看是否自启动:systemctl list-unit-files | grep firewalld
查看是否自启动:systemctl is-enabled firewalld
关闭防火墙:systemctl stop firewalld
重启防火墙:systemctl start firewalld
细节:关闭或者启用防火墙后立即生效,但只是临时生效,重启后失效,需要永久生效设置自启动/自关闭

打开/关闭端口:
查询端口是否开放:firewall-cmd --quert-port=端口/协议
打开端口:firewall-cmd --permanent --add-port=端口/协议
关闭端口:firewall-cmd --permanent --remove-port=端口/协议
重载生效:firewall-cmd --reload
案例:
1.启动防火墙,测试111端口
Linux bash:systemctl start firewalld
查询端口是否开放:firewall-cmd --query-port=111/tcp
wondows cmd:telnet 192.168.196.129 111
2.开放111端口,测试111端口
打开端口:firewall-cmd --permanent --add-port=111/tcp
重载生效:firewall-cmd --reload
wondows cmd:telnet 192.168.196.129 111

动态监控进程:
top与ps命令很相似,不同之处在于top执行一段时间可以更新正在运行的进程。ps -aux
top [选项]
-d 秒数 :指定top命令每隔几秒更新,默认3秒
-p PID :监控某个进程的状态
交换操作:
P:以CPU使用率排序,默认此项
M:以内存使用率排序
N:以PID排序
q:退出top(或使用ctrl+c)

查看网络情况:
netstat [选项]
-an:显示所有选项,拒绝显示别名
-p:显示建立相关链接的程序名
-l 仅列出有在 Listen (监听) 的服務状态
案例:查看sshd服务网络信息
netstat -anp | grep sshd

rpm包管理:(RedHat Package Manager)
查询安装的RPM:rpm -qa | grep xxx
例:查询是否安装firefox
rpm -qa | grep firefox
firefox-78.9.0-1.el8_3.x86_64
名称:firefox
版本号:78.9.0-1
使用操作系统:el8_3.x86_64
x86_64表示64位操作系统,i686、i386表示32位操作系统,noarch表示通用

查询软件包是否安装:rpm -q firefox
查询软件包安装信息:rpm -qi firefox
查询软件包有哪些文件:rpm -ql firefox
查询文件归属于哪个软件包:rpm -qf /etc/firefox

安装rpm:
rpm -ivh rpm包
i=install
v=verbose 提示
h=hash 进度条

卸载rpm包:
rpm -e firefox
如果其他软件依赖于你要卸载的软件包,卸载会产生错误信息
强制删除:rpm -e --nodeps 包名

yum:基于rpm包管理,能够从指定服务器自动下载RPM包并安装,并自动处理依赖关系
查询yum服务器是否有需要安装的软件:yum list | grep xxx
安装:yum install xxx
示例:使用yum安装firefox
rpm -e firefox
yum list | grep firefox
yum install firefox
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值