Linux基础知识与常见命令

作者:卖兔子的萝北
分类:学习笔记

  根目录:
bin: 可执行文件
dev:硬件设备文件
etc: 系统配置文件
boot:开机启动文件
usr/bin:可执行文件
/var/log: 日志文件
/usr/share/doc: 程序文档
/usr/share/man: man手册
Linux扩展:
执行命令:Linux在执行命令时先去查询是不是别名,然后再去查看是不是内部命令,最后才去PATH路径中查询命令
在/root/.vimrc配置文件中set tabstop=4 是设置tab键为4个空格
linux内核的版本规定第二位为偶数是稳定版,奇数是测试版
运行级别:运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式运行级别4:系统未使用,保留运行级别5:X11控制台,登陆后进入图形GUI模式运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
/tmp目录一般用来存储临时文件。
/etc/init.d是/etc/rc.d/init.d的一个连接文件,linux中服务的启动脚本存放在/etc/rc.d/init.d下
df –h以易读的形式显示目录的容量。

IP地址

作用:用来标识一个节点的网络地址(点分十进制)
32个二进制数A类:1-127  网+主+主+主B类:128-191 网+网+主+主C类:192-223 网+网+网+主

Linux

 常见版本:Red Hat Enterprise Linux 5/6/7/8Suse Linux Enterprise 12Debian Linux 7.8Ubuntu Linux 14.10/15.04

Linux 系统命令:

uname -r :查看内核版本lscpu:查看cpu信息
examples:例子,man帮助

Linux常见命令

关机: poweroff,init 0,shutdown -h now(root使用),run level 0,halt
重启: reboot,shutdown -r now,run level 6 ,init 6bash-completion #tab键安装包
pwd:查看当前所在位置hostname:重命名 hostname 名字ifconfig:查看网卡信息head:查看文件头几行 head -ntail:查看末尾几行   tail -ngrep:grep ^    grep *   grep 直接加信息   grep ^$ 过滤空行grep -v 取反       可与管道连用cat:cat -n显示行数which:查看命令相对应的程序alias:别名 alias a='ls'   #单引号unalias: 取消别名 unalias amkdir:mkdir -p 递归创建目录cp:cp -r  复制目录  \cp 当次取消cp别名cp -p 复制文件时保持该文件的权限
快捷方式: lnln  -s   /opt/A.txt    /opt/B.txt   #软连接  有-sln    /opt/A.txt    /opt/C.txt   #硬链接 没有-sls:ls -a 查看全部文件 //不怎么用ls -A 查看隐藏文件 (大写A)ls -l 长格式显示信息ls -d 查看目录信息ls -h 查看大小find: find  目录/文件  -[选项]
查找 可以是目录、文件 多个查找条件可通过管道一起使用,来达到精确查找的目的
-i:忽略大小写查询
-- 按类型查找(f,d,l) -d  查找目录            find /etc/  -type d -l  查找快捷方式      find /etc/  -type l -f  查找文件            find /etc/  -type f
--按名称查找 find /etc/passwd -name  "名称注意用双引号" 例子:find /etc/passwd  -name "zhangsan"
--按照大小查找find  /目录  -size +(-) 1024(b/k/M/G)    //大小尽量别用1,会有bug不显示例子:find /etc/ -size +10M
--按照所属用户查找
find /目录路径 -user 用户
find / -user zhangsan
--按照修改时间查找
find /目录路径 -mtime +-天数   //+表示多少天以外 -表示多少天以内
find /etc/ -mtime -10      //查找10天以内创建的所有文件--exec 查找的后面可加其他操作
find 范围 条件 -exec 附加操作命令  {} \;  // {}是查找后所匹配的内容,\;是该
命令固定的结束格式
例子:find - f /var/www/html -exec cp {} /test/var \;
//把/var/www/html目录下的文件复制到/test/var 下面vim:  3种模式:命令模式,末行模式,输入模式x :删除当前光标的字符
复制:yy 或 数字+yy
粘贴:p     //小写
光标跳转:gg到文件第行 G最后一行 数字+G 跳转到指定行首
删除:dd  数字+dd  d^删除至行首  D删除至行尾
查找: /查找内容
撤销:u
取消撤销:Ctrl+r
整行行内替换::s/查找内容/替换内容/g
区域内替换: :% s/查找内内容/替换内容/g
指定行替换::n,m s/查找内内容/替换内容/g
显示行号:set nu
读入其他文件内容: :r /文件路径history: history -c            #清空历史记录
date: 查看日期 可多个命令连用
date +%Y   #查看年
date +%m   #查看月  小写
date +%d   #查看日   小写
date +%H   #查看小时
date +%M   #查看分钟
date +%S   #查看秒钟
date +%F   #查看年月日
date +%R   #查看时分
#例子:date +%F+%R  查看年月日时分du: du -sh #查看文件大小
#例子:du -sh /    查看根目录的大小计划任务:crontab
crontab -e #进入编写周期任务模式,默认用户root
crontab -e  -u 用户 :指定用户
*  *   *  *  *  执行的命令
分 时 日 月 周
例子:
*/5 * * * * /bin/echo "hi harry" >>/crontab.txt#每5分钟向根下ceontab.txt 追加一个"hi harry"
1 1 * * * /bin/echo "hi harry" >>/crontab.txt #每天1:1向根下ceontab.txt 追加一个"hi harry"passwd:修改密码
交互式修改密码   passwd birunlin1
非交互式修改密码echo '123' | passwd --stdin birunlin1 //只用root用户才可以使用非交互式修改密码

yum与rpm

yum仓库[随意]name='随意'baseurl=file:///mnt/cdrom/enabled=1    #是否启用此仓库gpgcheck=0   #0不检查红帽认证yum基本命令: yum remove  httpd           #卸载httpd服务yum list httpd            #在yum仓库里查询这个软件(是否安装)精准查找yum search  关键词         #粗略查找yum info httpd                 #查看关于httpd的描述yum provides /etc/passwd   #查看哪些软件可以提供passwd文件(目录/程序)rpm软件包的基本命令:rpm -e  httpd  #卸载软件rpm -q   httpd  #查询httpd(软件名)是否安装 必须是软件全名rpm -qa         #当前系统中所有已安装软件包  (建议后面接less命令)rpm -qi  httpd  #查看软件包的详情信息rpm -ql #查看指定软件安装清单rpm -qf  /usr/bin/vim #    查看是哪个包产生了vim程序 (软件删除了也可以查询)rmp -qpl /mnt/cdrom/vsftpd-3... 查询指定安装包的安装清单 (未安装的软件)rpm -qpi       /mnt/cdrom/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm     #查看指定软件的详情信息  rpm -i      #安装软件包文件rpm -iv     #安装软件包文件 显示详情信息rpm -ih      #安装软件包文件 以#显示安装进度rpm -ivh --force   #强制安装该软件(覆盖安装)rpm --test  #测试安装软件rpm -e      #卸载软件
yum与rpm相对应的命令:卸载: yum remove httpd       rpm -e httpd    查询是否已安装这个软件: yum list httpd    rpm -q httpd查看关于软件的描述: yum info httpd    rpm -qi httpd

zip与tar (压缩 解压)

zip: #归档工具 创建压缩包#zip -r 归档文件名  被归档文件路径#例子:zip -r passwd.zip /etc/passwd
unzip:释放归档 解压缩unzip 已归档的文件包 -d 解压缩的目录#例子:unzip passwd.zip -d /etc
tar:   -c(小写的c)创建压缩包    -f 指压缩包名称(放在最后)  -tf 再不解压缩的情况下显示压缩包里面的压缩文件    #例: tar -tf /test/ceshi.tar.gz 压缩命令: tar -zcf   压缩包     目标文件 目标文件  -J  xz 格式            例:tar -zcf   /test/ceshi.tar.gz  /etc/passwd  /var/www/html  -z  gz 格式           例: tar -jcf   /test/ceshi.tar.bz2 /etc/passwd  /var/www/html -j  bzip2 格式       例: tar -Jcf    /test/ceshi.tar.xz  /etc/passwd  /var/www/html 解压命令:tar -xf 压缩包路径 -C(大写的C) 目录路径#例:tar -xf /test/ceshi.tar.gz  -C /test2/tar -xf /test/ceshi.tar.bz2 -C /test2/tar -xf /test/ceshi.tar.xz  -C /test2/

用户与用户权限常见命令(属主、属组)

用户部分常见命令:用户账户:1.登录操作系统 2.资源访问控制(不同用户,不同权限)UID:用户id    GID:组id组账户分类:基本组,附加组(从属组)基本组:由系统创建,与用户同名附加组:由管理员创建,由管理员 管理 组成员id 已存在用户  //查看用户的详情信息# id birunlin1# uid=12345(birunlin1) gid=1236(xiaoming1) 组=1236(xiaoming1),1125(stugrp)useradd -选项  用户名   (useradd的选项只能在创建用户是使用)useradd zhangsan 直接添加用户useradd -u -d  -G -s useradd -u 指定用户uid 用户名    #例子:useradd -u 1234(1001-60000) zhangsan useradd -d 指定用户家目录 用户名 #例子:useradd -d /var/preserve/ xiaoming2useradd -G 指定用户附加组  用户#例子:useradd -G stugrp(自定义的组) xiaoming3useradd -s 指定用户解释器  (/sbin/nologin  该解释器用户无法登陆)#例子:useradd -s /sbin/nologin  xiaoming4usermod -选项 用户名  (更在已存在用户的信息)usermod -l 想要改的名  已存在用户#例子:usermod -l   birunlin1 xiaoming1usermod -u 想要改的uid 已存在用户#例子:usermod -u  12345 birunlin1usermod -s 解释器 已存在用户#例子: usermod -s /sbin/nologin birunlin1 usermod -d 指定家目录 已存在用户 (不会自己主动创建家目录,需要手动创建不存在的目录)#例子: usermod -d /root birunlin1usermod -G 已存在的附加组 已存在的用户#例子:usermod -G stugrp birunlin1
userdel:删除   userdel 用户      //仅删除用户userdel -r 用户  //用户及所有用户的信息一并删除,包括家目录
/etc/passwdroot:x:0:0:root:/root:/bin/bash用户名:密码占位符:UID:基本的GID:用户描述信息:家目录:解释器   /etc/shadow,保存密码字串/有效期等信息nsd01:$6$.....Da4Vo.:18512:0:99999:7:::用户名:密码加密字符串:上一次修改密码的时间上一次修改密码的时间:从1970-1-1到达上一次修改密码时间,经历的天数字段1:用户帐号的名称字段2:加密后的密码字符串字段3:上次修改密码的时间 字段4:密码的最短有效天数,默认0字段5:密码的最长有效天数,默认99999字段6:密码过期前的警告天数,默认7字段7:密码过期后多少天禁用此用户账号字段8:帐号失效时间,默认值为空字段9:保留字段(未使用)
/etc/group,保存组帐号的基本信息    root:x:0:birunlin1用户名:密码占位符:组的id(gid):本组成员列表
/etc/gshadow    组长 组成员tarena:!:gelin01:gelin02,gelin01组名   密码占位符 组长  组成员grep tarena /etc/gshadow  //查看组成员信息groupdel命令格式:groupdel   组名删除的目标组不能是用户的基本组
groupadd  stugrp  //添加stugqp组
groupdel  stugrp  //删除stugqp组gpasswd命令管理组成员  -a -d -M -A    补充:gpasswd -0 用户名  #强制用户第一次登录修改密码gpasswd [选项] 用户  组grep stugrp /etc/group //查看stugrp基本信息groupadd  stugrp  //创建附加组-a  添加组成员  每次只能添加一个例子:gpasswd -a natasha stugrp-d  删除组成员  每次只能删除一个例子:gpasswd  -d  kenji  stugrp-M  定义组成员用户列表  可定义多个例子:gpasswd -M  kaka,kenji   stugrpgpasswd   -M  ''   stugrp      #定义组成员列表为空  类似全部删除
/etc/gshadow,保存组帐号的管理信息–每个组记录一行,以:分割为4个字段   gpasswd  -A  natasha   stugrp   #定义组管理员为natasha
groupdel  stugrp //删除组  不能删除用户的基本组用户家目录的配置文件          /etc/skel/   这个目录下面有什么创建新用户是都会直接到新用户的家目录下面.bash_profile:每次登录时执行,定义初始化变量     仅限于当前用户使用.bashrc:每次开启新的终端时执行,定义永久的别名  仅限于当前用户使用
全局配置文件        /etc/profile  //定义初始变量    所有用户都生效  /etc/bashrc      //自定义别名       所有用户都生效基本权限与归属读取权限 r : cat、head、tail、less、grep  查看目录内容写入权限 w :vim保存退出、>、>>   可以新建、删除、改名目录的内容,对目录本身没有修改权限执行权限 x :shell脚本,Python脚本   可以切换到该目录下(切换目录至于x权限有关)
归属关系所有者:属主 拥有此文件/目录的用户,-user用u表示所属组:属组 拥有此文件/目录的组,-group用g表示其他用户: 除属主,属组外的其他用户 -other 用o表示r4w2x1  默认目录权限755,文件644 取决于umask的设置,777减去文件里面的值为目录的默认权限,再减去一个执行的权限为文件权限(默认文件没有执行权限)
chmod 命令:修改文件目录权限chmod [ugoa] [+-][rwx] 文件(目录) chmod -R [ugoa]=[rwx] 需要递归的目录chmod u+r(w,x) /testchmod u=r(w,x) /testchmod u=rwx,g=rx,o=--- /testchmod -R 0=--- /test/ceshi/aaa/bbb 递归设置权限Linux对用户权限的判断: acl > 属主>属组>其他用户chown:修改属主属组权限chown 属主 文件(目录)chown 属主:属组 文件(目录)chown :属组  文件(目录)chown -R 属主(属组) 目录附加权限 : 粘滞建 Sticky Bit权限   t权限 (适用目录)占用其他人(other)位的x位,显示t/T,取决他人是否有x键适用目录 防止他人滥用写入权限,有写入权限时也无法删除、修改其他文件名chmod o+t /home/pubdrwxr-xr-t. 2 root root 6 9月   9 03:22 /home/pub/SGID 权限  占用属组的x位 (适用目录)显示为s/S,取决属组是否有写入权限在一个目录有SGID权限时,新建的文档会自动继承次目录属组的身份chmod g+s /home/pubdrwxr-sr-x. 2 root root 6 9月   9 03:22 /home/pub/
ACl权限能够对个别用户个别组设置独立权限setfacl [选项] u:用户名:权限 文件[选项] g:属组:权限 文件    选项: -m 添加一条ACL策略-x 清除制定的ACL策略-b 清除所有已设置的ACL策略-R 递归设置ACL策略setfacl -m u:birunlin:rwx /etc/passwdsetfacl -m g:xiaoming:rwx /getfacl /目录(文件)  查看当前目录(文件)已设置的ACL策略    将某个用户拉黑(制作黑名单)setfacl -m u:zhangsan:--- /home/pub-R 递归设置ACL策略setfacl -Rm u:zhangsan:rx /aaa/bbb只会递归已经设置好的目录,以后在创建的不会继承SUID权限:占用属主的x位,显示为s/S,取决于属主是否有x权限仅对可执行程序有意义,其他用户使用带有SUID的程序是,具有此执行的默认属主chmod u+s /usr/bin/mkdir

磁盘分区

 磁盘分区-格式化磁盘-挂载点挂载            partprobe  刷新磁盘分区
磁盘分区: lsblk:查看当前系统所能识别的所有硬盘分区模式:MBR与GPT,不能出现在同一磁盘上MBR/msdos分区模式:最大容量2.2TB分区类型:主分区、拓展分区、逻辑分区最多只能有4个主分区,拓展分区至多有一个,逻辑分区不限一般情况下:3个主分区+1拓展分区+n个逻辑分区拓展分区不能存储,不能格式化fdisk 硬盘设备   m 帮助p 查看现有分区表n 新建分区d 删除分区q 放弃并推出w 保存并退出例子:lsblk  fdisk /dev/sdb主   n 回车 回车 回车 +10G 主      n 回车 回车 回车 +10G 主      n 回车 回车 回车 +10G 拓展  n 回车 回车 回车 回车逻辑  n 回车 +15G    n 回车 +15Gw
 [root@localhost ~]# lsblk NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda               8:0    0   20G  0 disk ├─sda1            8:1    0    1G  0 part /boot└─sda2            8:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]sdb               8:16   0   60G  0 disk ├─sdb1            8:17   0   10G  0 part ├─sdb2            8:18   0   10G  0 part ├─sdb3            8:19   0   10G  0 part ├─sdb4            8:20   0    1K  0 part ├─sdb5            8:21   0   10G  0 part └─sdb6            8:22   0   20G  0 part sdc               8:32   0   60G  0 disk sr0              11:0    1  8.8G  0 rom  GPT分区模式:全局唯一表示分区表      突破固定大小64字节的分区表限制最多可支持128个主分区,最大支持18EB磁盘1EB=1024PB=1024*1024TB parted 常用GPT分区模式指令 例子:[root@localhost ~]# lsblksdc               8:32   0   60G  0 disk[root@localhost ~]# parted /dev/sdc        #parted的使用方式  parted  /硬盘的绝对路径(parted) mktable gpt                      #设置GPT分区模式(parted) p                            #查看硬盘信息Model: VMware, VMware Virtual S (scsi)Disk /dev/sdc: 64.4GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags: Number  Start  End  Size  File system  Name      标志(parted) unit GB                      #设置按照GB显大小  (parted) mkpart                         #划分新的分区分区名称?  []? hhsdc1                 #分区名称随便改文件系统类型?  [ext2]?                 #文件类型可以直接回车 后面格式化时可自行修改起始点? 0                            #起始点默认为0  (可用%表示)结束点? 10G                            #结束点减去起始点为硬盘大小  (可用%表示)忽略/Ignore/放弃/Cancel? i               #第一次设置硬盘时会弹出警告,直接按i忽略就行parted) mkpart                            分区名称?  []? sdc2文件系统类型[ext2]?起始点? 10G结束点? 30G(parted) p (parted) p    Model: VMware, VMware Virtual S (scsi)Disk /dev/sdc: 64.4GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags: Number  Start   End     Size    File system  Name    标志1      0.00GB  10.0GB  10.0GB               hhsdc12      10.0GB  30.0GB  20.0GB               sdc2(parted) q                              #退出lsblk                                    #查看当前系统所能识别的所有硬盘sdc               8:32   0   60G  0 disk ├─sdc1            8:33   0  9.3G  0 part └─sdc2            8:34   0 18.6G  0 part

分区的格式化:

ext4(RHEL6)优势  :存放文件多,小
xfs (RHEL7)优势: 文件数量少,大
格式化:赋予空间文件系统的过程(赋予硬盘一个存放数据的规则)
文件系统:空间存放数据的规则mkfs.xfs -f /dev/sdb1  #强制格式化为.xfs
windows默认文件系统:NTFS FAT
Linux默认文件系统:ext4(RHEL6) xfs(RHEL7) FATmkfs.ext4 /dev/sdb1        #格式化为ext4格式
mkfs.xfs  /dev/sdb2     #格式化为xfs格式
blkid  /dev/sdb1        #查看分区文件系统类型
/dev/sdb1: UUID="92b591df-4b5f-49ae-98fb-9148eb6319bc" TYPE="ext4"
blkid  /dev/sdb2        #查看分区文件系统类型
/dev/sdb2: UUID="680f2eb1-c3ce-42b0-ba00-f71208932d54" TYPE="xfs"

分区的挂载使用:
df -h 查看当前虚拟机已挂在的文件

和挂载yum一样 ,建个目录为挂载点
mount /dev/sdb1 /mysdb1
df -h 查看正在使用挂载的设备
文件系统   容量 已用  可用   已用% 挂载点
/dev/sdb2  10G   33M   10G    1%   /mysdb2开机自动挂载
vim /etc/fstab
/dev/sdb1    /mypart1   ext4   defaults   0  0
/dev/sdb2   /mypart2   xfs   defaults   0  0
mount -a #检测开机自动挂载是否正确

制作交换空间的第一种方式(磁盘)

利用分区制作交换空间free -m                #交换空间的信息swapon              #交换空间的成员信息mkswap /dev/sdc1  #格式化交换系统blkid /dev/sdc1     #查看文件系统的类型swapon /dev/sdc1  #启用交换分区swapon               #交换成员的空间信息free -m           #交换空间的信息                    vim /etc/fstab      #设置开机自动挂载/dev/sdc1    swap     swap    defaults   0   0swapoff /dev/sdc1    #停止使用交换空间swapon             #交换空间的成员信息swapon -a         #检测交换分区书写swapon
制作交换空间的第二种方式(直接使用空间)
利用文件所占用的空间,制作交换空间  dd:主要就是占用空间用的命令dd if=源设备 of=目标设备 bs=块大小 count=块数ls /dev/zero  #永远都在产生数据的设备dd if=/dev/zero of=/opt/swap.txt bs=1M count=2048du -sh /opt/swap    2.0G    /opt/swap.txtmkswap /opt/swap.txt   #格式化交换文件系统,格式化后文件类型表位swapblkid /opt/swap.txt     #查看文件系统类型/opt/swap.txt: UUID="75e8c3d7-6fd3-4640-bace-958a409ad424" TYPE="swap" swapon /opt/swap.txt  #启用交换分区swapon: /opt/swap.txt:不安全的权限 0644,建议使用 0600。swapon         #查看交换空间的成员信息free -m     #查看交换空间信息vim /etc/fstab     #设置开机自动启动交换分区/opt/swap.txt    swap     swap    defaults   0   0swapoff /opt/swap.txt #停止使用交换空间swaponswapon -a  #检测交换分区书写(交换分区专用)

逻辑卷 (虚拟磁盘技术)

物理卷(pv)-卷组(vg)-逻辑卷(lv)-逻辑卷创建挂载点(使用)
基本概念:组成成员:未挂载 未格式化的磁盘分区(磁盘)(可以是多个)作用:1.可以整合分散空间  2.支持空间在线扩大(不影响数据存储)制作过程:多个物理卷(PV)(硬盘)组成卷组(VG),再从卷组中换分出逻辑卷(LV)  //准备硬盘(硬盘分区也可以)-制作卷组-制作逻辑卷pvs      #显示系统所有的物理卷信息LVM:管理工具集功能    物理卷管理  卷组管理  逻辑卷管理Scan 扫描      pvscan    vgscan     lvscanCreate 创建    pvcreate  vgcreate   lvcreateDisplay 显示  pvdisplay vgdisplay  lvdisplayRemove 删除    pvremove  vgremove   lvremoveExtend 扩展         /      vgextend   lvextend制作卷组: 格式: vgcreate 卷组名 设备路径# Successfully:成功lsblk /dev/sdb[1-2] (/sdb{1-2})NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsdb1   8:17   0  9.3G  0 part sdb2   8:18   0 18.6G  0 part sdb3   8:19   0 18.6G  0 part vgcreate myvg /dev/sdb1 /dev/sdb2 #把sdb1,sdb2制作成名为myvg的卷组vgs #查看卷组VG     #PV #LV #SN Attr   VSize   VFree centos   1   2   0 wz--n- <19.00g     0  #系统自带myvg     2   0   0 wz--n-  27.93g 27.93g #刚刚制作的卷组制作逻辑卷:格式:lvcreate -L 逻辑卷大小 -n 逻辑卷名字 基于卷组lvcreate -L 15G -n mylv myvg #制作一个15G大小,逻辑卷名字mylv,基于卷组myvglvs 查看逻辑卷信息mylv myvg   -wi-a-----  15.00g
逻辑卷的使用:ls -l /dev/myvg/mylv  #查看逻辑卷的信息lrwxrwxrwx. 1 root root 7 9月  12 02:52 /dev/myvg/mylv -> ../dm-2  #/dm-2是Linux系统所识别的逻辑卷名字mkfs.xfs /dev/myvg/mylv #格式化逻辑卷为xfs类型blkid /dev/myvg/mylv #查看逻辑卷类型 也可以这样blkid /dev/dm-2mkdir /mylv  #创建逻辑卷的挂载点vim /etc/fstab #设置开机自动挂载/dev/myvg/mylv /mylv xfs defaults 0 0mount -a #检查自动挂载df -h #查看已挂载设备文件系统                 容量  已用  可用 已用% 挂载点/dev/mapper/myvg-mylv     15G   33M   15G    1% /mylvlsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT└─sdb2            8:18   0 18.6G  0 part └─myvg-mylv   253:2    0   15G  0 lvm  /mylv
逻辑卷的扩展: 卷组有足够空间直接扩展逻辑卷大小,然后刷新一下逻辑卷1.扩展空间大小  lvextend -L 想要扩展到的大小 逻辑卷lvextend -L 27G /dev/myvg/mylvlvs mylv myvg   -wi-ao----  27.00g  #显示逻辑卷以扩展df -h | tail -1文件系统                 容量  已用  可用 已用% 挂载点/dev/mapper/myvg-mylv     15G   33M   15G    1% /mylv #显示还是原来的大小,因为要刷新空间系统(赋予规则)2.扩展文件系统resize2fs:刷新ext4文件系统xfs_growfs:刷新xfs文件系统 xfs_growfs /dev/myvg/mylv #刷新逻辑卷lvs mylv myvg   -wi-ao----  27.00g df -h | tail -1文件系统                 容量  已用  可用 已用% 挂载点/dev/mapper/myvg-mylv     27G   33M   27G    1% /mylv #逻辑卷已经成功挂载并扩展为27G大小 实验完成
逻辑卷的扩展:卷组无足够空间先扩展卷组大小,在扩展逻辑卷大小,刷新逻辑卷1.扩展卷组空间vgextend 想要扩展的卷组  赋予空间的硬盘vgextend myvg /dev/sdb3  #把sdb3的空间给myvg卷组Physical volume "/dev/sdb3" successfully created.vgs  VG     #PV #LV #SN Attr   VSize   VFree myvg    3   1   0 wz--n- <46.56g <19.56g2.扩展逻辑卷空间大小lvextend -L 逻辑卷想要扩展到多大 逻辑卷路径lvextend -L 46G /dev/myvg/mylv #把mylv扩展到46G大小lvsmylv myvg   -wi-ao----  46.00g df -h | tail -1 /dev/mapper/myvg-mylv     27G   33M   27G    1% /mylv #需要扩展文件系统才能把使用空间提升至46G3.扩展文件系统 (具体解释上面有)xfs_growfs /dev/myvg/mylv文件系统                 容量  已用  可用 已用% 挂载点/dev/mapper/myvg-mylv     46G   33M   46G    1% /mylv #试验完成逻辑卷的知识点补充:     1.逻辑卷的大小也可以缩减,可能会丢失数据 没什么用2. vgdisplay  myvg     #查看卷组详细信息PE Size      4.00 MiB #大小只能是4的倍数 可修改(面试) (1) lvcreate -L 250M -n test myvg #创建一个250M的逻辑卷lvstest myvg   -wi-a----- 252.00m #大小为252M,只能是4的倍数vgchange -s 1M myvg #修改PE的大小  lvcreate -L 250M -n test myvg #再次创建一个250M的逻辑卷lvs test2 myvg   -wi-a----- 250.00m  #大小为250M(2) lvcreate -l 50 -n test3 myvg # 按照个数创建一个逻辑卷(小写l表示按照PE个数创建逻辑卷)lvstest3 myvg   -wi-a-----  50.00m  #50个1M 所以大小为50M 3.删除逻辑卷(1)删除正在使用的逻辑卷umount /mylv/   #先取消挂载逻辑卷lvremove /dev/myvg/test3 #删除逻辑卷vim /etc/fstab  #取消自动挂载lvs (2)删除卷组,基于次卷组出案件的所有逻辑卷全部删除lvremove /dev/myvg/test2 #卸载逻辑卷 lvremove /dev/myvg/testlvremove /dev/myvg/mylv vgsmyvg     3   0   0 wz--n- <46.56g <46.56gvgremove myvg # 卸载卷组vgs  #自己的卷组已经没有了VG     #PV #LV #SN Attr   VSize   VFree  centos   1   2   0 wz--n- <19.00g      0 myvg     3   0   0 wz--n- <46.56g <46.56g

进程管理

 程序:静态 没有运行的代码 只占用硬盘空间进程:动态 正在运行的代码 占用CPU与内存的资源进程唯一表示:PID父进程与子进程: 树形结构  systemd是所有进程的父进程,也叫上帝进程查看进程:  最小化安装的虚拟机要先安装 yum -y install psmisc格式: pstree [选项] [PID 或用户名]-a 显示完整命令行-p 列出对应PID编号 pstree 查看正在运行的进程信息pstree birunlin 按照用户名查询进程bash───vimpstree -p  birunlin #显示进程的PIDbash(6838)───vim(6874) pstree -a  lisi   #显示完成的命令bash└─vim a.txt ps aux 列出正在运行的进程(显示的信息非常详细)用户  进程ID  %CPU  %内存  虚拟内存  固定内存  终端  状态  起始时间  CPU时间  程序指令ps -elf 列出正在运行的所有进程(可以显示父进程PID)
进程动态排名 top  : top [-d 刷新秒数] [-U 用户名]输入top进入时  P 按照CPU进行排序M 按照内存进行排序
检索进程 pgrep [选项] 查询条件-l 输出进程名,而不仅仅是PID-U 检索制定用户的进程-X 精确匹配完整的进程名pgrep  -l   aaapgrep  -l   ccc
进程的前后台调度Ctrl+z 组合键 挂起 暂停当前的进程并转入后台jobs   #查看后台进程的信息fg     将后台任务恢复到前台运行bg     激活后台被挂机的任务firefox &  #进程正在运行的状态放入后台   [1]+  已停止    firefox   jobs  -l      #显示后台进程信息,显示PID  bg 1      #将后台编号为1 的进程恢复运行    fg 1    #将后台编号为1的进程恢复到前台    •干掉进程的不同方法–Ctrl+c 组合键,中断当前命令程序-kill 进程  #直接杀死进程–kill  [-9]  PID... 、kill  [-9]  %后台任务编号–killall  [-9]  进程名...    #杀死所有进程–pkill   [-9]  查找条件,包含就可以    -killall  -9   -u   birunlin #强制踢出一个用户-xkill #会出现一个鼠标,点哪个杀哪个例子:yum -y   install   xorg-x11-apps[root@localhost ~]# xeyes^Z                                    #按ctrl  +z  暂停放入后台[1]+  已停止               xeyes[root@localhost ~]# jobs         #查看后台进程的信息[1]+  已停止               xeyes[root@localhost ~]# bg 1      #将后台编号为1 的进程恢复运行[1]+ xeyes &[root@localhost ~]# jobs[1]+  运行中               xeyes &[root@localhost ~]# fg 1      #将后台编号为1的进程恢复到前台xeyes^C        #按ctrl  +c 结束进程

RAID 磁盘整列

  •廉价冗余磁盘阵列–通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘–阵列的价值:提升I/O效率、硬件级别的数据冗余–不同RAID级别的功能、特性各不相同提高可靠性(相对来说很可靠,人品不爆炸就没问题。最稳妥的方法还是备份数据)
•RAID 0,条带模式–同一个文档分散存放在不同磁盘  –并行写入以提高效率,没有容错功能–至少需要两块磁盘
•RAID 1,镜像模式–一个文档复制成多份,分别写入不同磁盘–多份拷贝提高可靠性,效率无提升,有容错功能–至少需要两块磁盘
•RAID5,高性价比模式 (企业)–相当于RAID0和RAID1的折中方案–需要至少一块磁盘的容量来存放校验数据–至少需要三块磁盘
•RAID6,高性价比/可靠模式 (银行)–相当于扩展的RAID5阵列,提供2份独立校验方案–需要至少两块磁盘的容量来存放校验数据–至少需要四块磁盘
•RAID 0+1/RAID 1+0–整合RAID 0、RAID 1的优势–并行存取提高效率、镜像写入提高可靠性–至少需要四块磁盘     对比项   RAID 0    RAID 1  RAID 10 RAID 5  RAID 6磁盘数     ≧ 2       ≧ 2 ≧ 4 ≧ 3 ≧ 4存储利用率    100%    ≦ 50%   ≦ 50%   n-1/n   n-2/n校验盘      无     无       无       1       2容错性      无     有       有       有       有IO性能     高     低       中       较高  较高

九、VDO

  yum  -y  install  vdo  kmod-kvdo    #所需软件包重复数据删除–输入的数据会判断是不是冗余数据–判断为重复数据的部分不会被写入,然后对源数据进行更新,直接指向原始已经存储的数据块即可•压缩–对每个单独的数据块进行处理        vdo基本操作:参考man vdo 全文查找/example       vdo  create  --name=VDO卷名称  --device=设备路径 --      vdoLogicalSize=逻辑大小–vdo  list–vdo  status  -n  VDO卷名称–vdo  remove  -n  VDO卷名称      –vdostatus  [--human-readable] [/dev/mapper/VDO卷名称]
•VDO卷的格式化加速(跳过去重分析):–mkfs.xfs  –K   /dev/mapper/VDO卷名称–mkfs.ext4  -E  nodiscard  /dev/mapper/VDO卷名称
前提制作VDO需要2G以上的内存
例子: vdo create --name=vdo0 --device=/dev/sdc --vdoLogicalSize=200Gmkfs.xfs -K /dev/mapper/vdo0 mkdir /nsd01mount /dev/mapper/vdo0 /nsd01df -hvdostats --hum /dev/mapper/vdo0 #查看vdo设备详细信息     vim /etc/fstab /dev/mapper/vdo0  /nsd01  xfs  defaults,_netdev 0 0

网卡配置

 逻辑:修改网卡命名规则-删除错误网卡名-添加新的网卡名-配置网卡ip地址route -n #查看路由表(查看网关信息)
修改网卡命名规则:ifconfig | head -2ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.81.12  netmask 255.255.255.0  broadcast 192.168.81.255vim /etc/default/grub  #内核引导文件GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"            #在后面添加 ...quiet net.ifnames=0 biosdevname=0  固定格式(企业化) 修改后不会立即生效grub2-mkconfig -o (哦) /boot/grub2/grub.cfg   #该命令会使网卡命名规则立即生效,需要重启Generating grub configuration file ... #屏幕返回值 ifconfig | head -2    #重启后网卡名称变为eth0  会自动有一个ip,但是还是需要其他ip配置eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.81.128  netmask 255.255.255.0  broadcast 192.168.81.255 #此ip无效nmcli命令网卡命名,删除错误网卡名nmcli connection showNAME        UUID                                  TYPE      DEVICE(设备)virbr0      878e26c0-2301-47e7-8a6d-5e68bd83b783  bridge    virbr0  #绿色,已生效有线连接 1  855815b6-acd7-37d3-b6fc-0d6a5b5ac3c9  ethernet  eth0   #绿色,已生效ens33       ce9e9c23-7700-4a59-94cd-e4d8e3d87e3a  ethernet  --        #白色,已失效nmcli connection delete ens33 #删除网卡,前面的网卡命名后该名字已失效成功删除连接 'ens33'(ce9e9c23-7700-4a59-94cd-e4d8e3d87e3a)。nmcli connection delete 有线连接\ 1  #删除原有命名,一会自行命名新的网卡名成功删除连接 '有线连接 1'(855815b6-acd7-37d3-b6fc-0d6a5b5ac3c9)。ifconfig | head -2 #删除后自动生成的ip会一并删除eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500ether 00:0c:29:27:52:b8  txqueuelen 1000  (Ethernet)nmcli命令网卡命名,添加网卡名nmcli connection add type ethernet ifname eth0  con-name eth0添加 类型   ifconfig显示的名字 nmcli所能识别的名字连接“eth0”(6a72a966-c469-4550-9510-9c16b64f27f7) 已成功添加。ifconfig | head -2 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 #重新命名成功inet 192.168.81.128  netmask 255.255.255.0  broadcast 192.168.81.255nmcli connection show NAME    UUID                                  TYPE      DEVICE eth0    6a72a966-c469-4550-9510-9c16b64f27f7  ethernet  eth0   virbr0  878e26c0-2301-47e7-8a6d-5e68bd83b783  bridge    virbr0 nmcli:配置ip地址   [配置文件]# vim /etc/sysconfig/network-scripts/ifcfg-eth0nmcli connection modify eth0 ipv4.method auto配置方式      dhcp自动获取  #一般不用 都是manual自行修改ipv4.addresses 192.168.4.7/24 #配置ip地址ipv4.gateway 192.168.4.254    #配置网关,本次不会生效,因为没有connection.autoconnect yes    #每次开机都会生效nmcli connection up eth0 #激活网卡,立即生效例子:nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 ipv4.gateway 192.168.4.254 connection.autoconnect yesnmcli connection up eth0

源码编译安装

RPM: rpm -ivh  yum install
源码包: 主要优点:1.获得软件最新版,及时修复bug      2.软件功能可以按照需求选择/定制,有更多软件可供选择3.源码包适用于各种平台
源码编译安装步骤:1.安装开发工具 gcc,make 2.解压tar包 3.运行configure脚本配置 4.make进行编译,产生可执行的程序 5.make install安装例子:安装tools.tar.gz
1.安装开发工具 yum -y install gcc make
2.解压tar包    tar  -xf  /root/tools.tar.gz  -C   /usr/local/ (这个路径比较专业)   tar -xf   /usr/local/tools/inotify-tools-3.13.tar.gz   -C /usr/local/
3.运行configure脚本配置(1.检查系统是否安装gcc 2.可以指定安装位置)cd   /usr/local/inotify-tools-3.13/  #必须cd到配置文件程序的目录./configure --prefix=/opt/myrpm    #指定安装位置
4.make进行编译,产生可以执行的程序 cd    /usr/local/inotify-tools-3.13/make
步骤五:make   install进行安装cd    /usr/local/inotify-tools-3.13/make install[root@localhost ~]# ls /opt/myrpm/bin  include  lib  share #成功

远程管理

(openssh包)
软件包的安装: rpm  -qa    |   grep   opensshopenssh-7.4p1-16.el7.x86_64openssh-server-7.4p1-16.el7.x86_64openssh-clients-7.4p1-16.el7.x86_64  远程登录ssh>   /etc/resolv.conf   #清空dnsssh    root@192.168.4.207………necting (yes/no)? root@192.168.4.207's password:cat /root/.ssh/known_hosts  #记录曾经远程管理的机器实现ssh远程管理无密码验证虚拟机A:1.生成公钥(锁)与私钥(钥匙)进行验证ssh-keygen      #一路回车…….save the key (/root/.ssh/id_rsa):    #保存位置……..assphrase):     #设置密码为空…….. again:     #设置密码为空ls /root/.ssh/id_rsa(私钥)    id_rsa.pub(公钥)     known_hosts2.把公钥(锁)传送给虚拟机Bssh-copy-id   root@192.168.4.207 #传送公钥(锁)ssh   root@192.168.4.207   #测试无密码虚拟机:Bls    /root/.ssh/authorized_keys(别的机器传递过来的公钥)    known_hosts
安全复制工具 scp=ssh+cp–scp  [-r]  用户名@服务器:路径      本地路径    #有目录加r,没有不用加–scp  [-r]  本地路径    用户名@服务器:路径     #有目录加r,没有不用加  虚拟机A:scp   /etc/passwd       root@192.168.4.207:/rootscp  -r  /home      root@192.168.4.207:/root/scp   root@192.168.4.207:/etc/passwd       /mnt/虚拟机B:ls   /root

网络工具

1.ip命令           ip address show #查看ip地址ip address add 192.168.8.1/24 dev eth0 #给eth0再添加一个ip地址ip address show inet 192.168.4.7/24 brd 192.168.4.255 scope global noprefixroute eth0inet 192.168.8.1/24 scope global eth0
2.ping ping -c 2 192.168.8.1 #ping 两次

自定义yum

YUM组成: 1.众多软件包 2.仓库数据文件例子:tar -xf tools.tar.gz -C /  #把提前准备的tar包解压到/下ls /tools/otherboxes-1.1.1-4.el7.x86_64.rpmcmatrix-1.2a-1.i386.rpmntfs-3g-2014.2.15-6.el6.x86_64.rpmoneko-1.2-19.fc24.x86_64.rpmsl-5.02-1.el7.x86_64.rpmcreaterepo    /tools/other/  #生成自定义的yum仓库vim /etc/yum.repos.d/2.repo[myrepo]name=2baseurl=file:///tools/otherenabled=1gpgcheck=0清理缓存并查看源标识                     源名称                       状态centos7                    birunlin                     9,911myrepo                     2                                5repolist: 9,916

日志管理

•系统和程序的"日记本"–记录系统、程序运行中发生的各种事件–通过查看日志,了解及排除故障–信息安全控制的“依据”
•由系统服务rsyslog统一记录/管理–日志消息采用文本格式–主要记录事件发生的时间、主机、进程、内容
•常见的日志文件日志文件    主要用途/var/log/messages   记录内核消息、各种服务的公共消息/var/log/dmesg  记录系统启动过程的各种消息/var/log/cron  记录与cron计划任务相关的消息/var/log/maillog    记录邮件收发相关的消息/var/log/secure  记录与访问限制相关的安全消息        •通用分析工具–tail、tailf、less、grep等文本浏览/检索命令–awk、sed等格式化过滤工具tailf:实时跟踪文件内容

防火墙策略管理

作用:隔离,严格过滤入站请求,放行出站
硬件防火墙:保护网络中的所有主机
软件防火墙:本机系统服务:firewalld管理工具:firewall-cmd、firewall-config
根据所在网络场所区分,预设保护规则集public:仅允许ssh、dhcp、ping服务trusted:允许任何访问block:阻塞任何来访请求,给客户端回应drop:丢弃任何来访请求,不给客户端回应
防火墙判定规则:1.首先防火墙查看访问请求中来源ip地址,然后查看所有区域中哪个区域该源ip地址规则,则进入该区域2.进入默认区域(默认情况下public)
修改默认区域:firewall-cmd --get-default-zone #查看默认区域public  #仅允许ssh、dhcp、ping服务firewall-cmd --set-default-zone=trusted #修改默认区域为trusted,可以访问http、ftp....successfirewall-cmd --get-default-zone #再次查看默认区域trusted
在区域中添加允许协议:firewall-cmd --set-default-zone=public #再次修改默认区域successfirewall-cmd --zone=public --list-all #查看区域规则services: ssh dhcpv6-client firewall-cmd --zone=public --add-、,了service=httpsuccess #给public添加http协议firewall-cmd --zone=public --add-service=ftpsuccess #给public添加ftp协议给public添加制定的协议后其他用户可以访问
在区域中添加允许协议(永久配置)添加永久协议前先把临时协议删除(避免冲突)firewall-cmd --zone=public --remove-service=ftpsuccess   #firewall-cmd --zone=public --remove-service=httpsuccessfirewall-cmd --permanent --zone=public --add-service=ftpsuccess  #添加永久ftp协议firewall-cmd --permanent --zone=public --add-service=http #添加永久http协议successfirewall-cmd --zone=public --list-all #查看协议services: ssh dhcpv6-client #现在并没有显示已经添加的永久协议firewall-cmd --reload  #加载防火墙永久策略successfirewall-cmd --zone=public --list-all #再次查看显示已经添加的永久协议services: ssh dhcpv6-client http ftp
单独拒绝192.168.4.207的所有访问firewall-cmd --zone=block --add-source=192.168.4.207  #阻塞任何请求,并给客户端回应successfirewall-cmd --zone=block --list-all #查看block的防火墙策略sources: 192.168.4.207 #禁止这个ip的所有请求

服务的管理

上帝进程:systemd
Linux系统和服务管理器是内核引导之后加载的第一个初始化进程(PID=1)负责掌控整个Linux的运行/服务资源组合
一个更高效的系统&服务管理器开机服务并行启动,各系统服务间的精确依赖配置目录:/etc/systemd/system/服务目录:/lib/systemd/system/主要管理工具:systemctl对服务的管理:显示Failed  失败systemctl -t service -all #列出所有的服务systemctl  restart  服务名       #重起服务systemctl  start   服务名       #开启服务 systemctl  stop   服务名         #停止服务systemctl  status  服务名      #查看服务当前的状态systemctl  enable  服务名       #设置服务开机自启动systemctl  disable  服务名       #设置服务禁止开机自启动systemctl  is-enabled  服务名    #查看服务是否开机自启

Linux基础命令与知识点相关推荐

  1. 百战RHCE(第一战:Linux基础命令1)

    哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章! 首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 <百战RHCE>文章,是基 ...

  2. 查看linux文件工具,Linux基础命令-文本文件查看工具

    文本文件查看工具 cat concatenate 文本文件查看工具 cat /etc/fstab cat [OPTION]... [FILE]... -n:给显示的文本行编行 -E:显示行结束符 ta ...

  3. linux基础命令行操作【1】

    目录 1.基本命令 2.文件相关知识 3.文本相关操作 4.文件解压.压缩.打包命令 1.基本命令 Ctrl+A/t+Fn+F6:管理Linux(Fn+数字) Linux:输入密码是不显示 Alt+F ...

  4. 2021-10-16python笔记(Linux内核简介与Linux基础命令)

    前面的博文已经教会了大家如何下载和安装Linux操作系统,并且使用Xshell软件远程连接Linux服务器,这节课我们要进入真正的Linux基础学习中. 知识点概括: 1.Linux的心脏-Linux ...

  5. linux怎么取消文件隐藏命令,Linux基础命令:显示隐藏的文件

    Linux基础命令:显示隐藏的文件 来源:互联网 作者:佚名 时间:2013-04-10 13:32 系统中一些文件,和Windows中的系统文件一样,这些文件一般是不显示出来的,那么我们可以使用-a ...

  6. Linux 基础命令上

    Linux 基础命令上 磁盘分区: /dev/hda5 dev 是硬件设备文件所在的目录 hd 表示IDE设备 sd 表示SCSI设备 a 硬盘的顺序号,以a.b.c...表示 5 分区的顺序号,以1 ...

  7. linux下kill指令默认信号,Linux基础命令之kill命令

    相信大家在使用Linux的过程中都会遇到过某个程序出错导致系统锁死的情况,按照常规的思维我们会通过重启来重新启动系统.然而事实上在Linux中并不需要进行重启就能够完成出错程序的关闭操作.在Linux ...

  8. linux修改密码最短生存时间,Linux基础命令---修改用户密码

    passwd 更改用户密码,超级用户可以修改所有用户密码,普通用户只能修改自己的密码.这个任务是通过调用LinuxPAM和LibuserAPI来完成的.本质上,它使用LinuxPAM将自己初始化为一个 ...

  9. Linux 基础命令讲解--加密解密

    Linux 基础命令讲解--加密解密 加密文件: 1.MD5 echo -n "string" | openssl md5   #加密字符串 openssl md5 -in tes ...

最新文章

  1. C++_泛型编程与标准库(八)
  2. java url使用rest风格_Restful风格的URL请求
  3. 为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?
  4. 机房漏电产生的危害及安全隐患解决方案
  5. Integer.valueOf(String) 方法之惑
  6. 电气毕业生在国家电网都干啥工作?
  7. 安卓模拟器不能上网时可尝试更改成谷歌DNS
  8. c++语言怎么从internet上某个时间服务器获取时间信息,在VC++中实现同步Internet时间...
  9. unity ui框架_[教程汇总+持续更新]Unity从入门到入坟——收藏这一篇就够了
  10. 桌面壁纸的deepin或者uos水印如何去除
  11. 投屏软件_duet for Mac(Mac投屏软件)
  12. 音乐家们的开源工具箱
  13. 线性代数——对向量的线性组合中的“线性”的理解
  14. java 反射 set方法_java 反射调用set方法
  15. Javascript里EQ、NE、GT、LT、GE、LE含义
  16. 数据保护新愿景:欧盟GDPR十个误解与争议
  17. Mac 查找应用安装路径
  18. 用cmd命令行的形式清除需要管理员权限的流氓软件
  19. 世界读书日:带你走近Go语言编程思维
  20. 科赫曲线 MATLAB

热门文章

  1. ibm 服务器 总显示f1,联想ThinkPad笔记本中F1/F4键盘指示灯一直常亮着如何解决
  2. Python下载MP4视频
  3. python添加文字水印中间旋转45度,Python添加pdf水印
  4. (二)海思3519av100开发:开发板环境搭建
  5. 7-28 天梯赛的善良 (PTA C语言)最简
  6. windows 7不能安装谷歌浏览器怎么办?
  7. 健身网站php,基于WEB的健身网站的设计与实现
  8. docker容器内pip install 显示 warning
  9. IDEA鼠标悬停显示注释
  10. 微信小程序--JavaScript实现指定数字的精度输出