• Linux02-常规使用和命令


    一、Linux介绍

    Linux 是一种自由和开放源码的类 UNIX 操作系统。

    Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。

    Linux 遵循 GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用 Linux 的所有底层源代码,也可以自由地修改和再发布。
    由于 Linux 是自由软件,任何人都可以创建一个符合自己需求的 Linux 发行版。

    目前主流的 Linux 版本有:

    • Debian(及其派生版本Ubuntu、Linux Mint)
    • Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)
    • openSUSE
    • 等等

    本文基于CentOS为大家介绍 Linux 系统的使用。

    安装CentOS参考我的上一篇博文:Linux01-虚拟机安装(VMware15+CentOS7)

    二、Linux目录介绍

    Linux系统目录和Windows系统目录是有区别的。
    使用命令ls可查看:

    [root@localhost ~]# ls /
    bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
    boot  etc  lib   media  opt  root  sbin  sys  usr
    
    • 1
    • 2
    • 3
    • /bin
      bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

    • /dev
      dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

    • /home
      普通用户的主目录,在 Linux 中,每个用户都有一个自己的家目录,存储在home目录中,一般该目录名是以用户的账号命名的。

    • /lib64 和 /lib
      在centos中,lib64文件夹用于存放64位系统标准程序设计库。
      lib文件夹用于存放标准程序实际库,也叫动态链接共享库,作用类似windows中的“.dll”文件。

    • /mnt
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

    • /proc
      proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    • /run
      是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

    • /srv
      该目录存放一些服务启动之后需要提取的数据。

    • /tmp
      tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

    • /var
      var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    • /boot
      这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /etc
      etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /media
      linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

    • /opt
      opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /root
      该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin
      s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

    • /sys
      这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
      sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
      该文件系统是内核设备树的一个直观反映。
      当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    • /usr
      usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

      • /usr/bin:
        系统用户使用的应用程序。
      • /usr/sbin:
        超级用户使用的比较高级的管理程序和系统守护程序。
      • /usr/src:
        内核源代码默认的放置目录。

    三、基础命令

    前提:

    1. Linux命令区分大小写
    2. 语法:命令 [选项1] [选项2]... [参数1] [参数2] ...

    基础命令:

    1.uname -r :查看内核版本,例如:2.6.32-431.el6.x86_64              
    	Linux系统 = 内核 + 外围软件(收费)
    	2:主版本号
    	6:次版本号
    	32:修订版本号
    	431.el6.x86_64:红帽公司修订号
    	
    2.cat /etc/redhat-release : 查看系统版本
    
    3.hostname :查看主机名
    
    4.ifconfig:查看所有网卡信息
      ifconfig 网卡名 :查看指定网卡信息
    
    5.ifconfigcd  网卡名 ip : 设置临时ip(重启就没了)
    
    6.clear :清屏
    
    7.重启:shutdown -h now 
      关机:reboot
    
    8.date :查看系统时间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    四、文件和目录命令

    1.pwd:查看当前的所在目录
    
    2.ls:查看当前工作目录的内容(简略,只有名字)
         1. ls -l:查看详情,等同于:ll命令
         2. ls -lh [/目录]:查看详情(包含大小)
         3. ls -a : 查看所有文件(包含隐藏文件) 
            ls -A :同上,去掉 ... 的结果
         4. ls -l -d [/目录]: 显示目录的属性,也可以使用:ls -ldh
         5. ls -R [/目录]:递归显示目录下的所有文件和目录
    	     
    3.du:查看文件大小
    	du -sh /tmp/1.txt
    
    4.cd:用于改变当前工作目录 
        1. cd  或者 cd ~        都是回到当前用户的家目录
        2. cd /路径             切换到指定目录
        3. cd .                 当前目录
        4. cd ..                返回上一级 ,例:cd ../..  返回父级的父级目录 
        5. cd -                 切换到 上一次 的目录
    
    		
    5.创建文件夹
    	mkdir 文件夹名
    	mkdir -p /文件夹名/文件夹名  (创建多级目录)
    	
    6.创建文件 / 修改文件时间
    	touch 文件名
    	--如果文件名不存在就创建文件,如果存在就修改时间	
    
    7.复制文件
    		不改名复制文件: cp 源文件 目标目录 
    		改名复制文件:   cp 源文件 目标目录/文件名(改名后的文件名)
    	
    8.复制文件夹以及内容
    	cp -r 源文件夹 目标目录
    	cp -r 源文件夹1 源文件夹2 源文件1 目标目录    --将 “源文件夹1 源文件夹2 源文件1” 复制到 “目标目录”下
    
    	cp /home/wwb/* /usr/123     --复制wwb下的全部文件 到 123
    	
    9.删除文件
    	rm [-f] 文件名   f:不提示(确定要删吗?),直接删
    		
    10.删除文件夹(以及内容)
    	rm -rf 文件夹名      
    	  
    11.移动
    	文件夹:mv 源目录 目标目录/
    	文件:  mv 源文件 目标目录
    	文件改名:mv 源文件 目标目录/改名的文件
    	
    12.通配符:
    	*   匹配任意多个字符           例:ls -l /tmp/* 
    	?   匹配任意单个字符           例:ls -l /tmp/f?.txt
    	[]  匹配连续多个字符中的一个   例:ls -l /tmp/f[0-9].txt      [A-Z] [a-z]
    	{}  匹配不连续多组字符         例:ls -l /tmp/f{1,12,a}.txt
    
    13.查看文件的内容
    	cat [-n] 文件名 : 显示内容,n:并显示行号,适合查看小文件
    	more 文件名     : 分屏显示,适合查看大文件,空格翻屏
    	less 文件名     :  更好用,上下键滚动
    			   ?关键字:向前查找,/关键字:向后查找,按 q 退出
    	head -n 2 文件名: 查看头几行 
    	tail -n 3 文件名: 查看尾几行   * 不指定行号,默认10行
    
    14.管道  |
    	命令1 | 命令2 : 将命令1的输出结果,作为命令2的输入去执行(命令2就不需要参数了)
    	
    15.统计 wc
    	wc -l 文件名 : 统计文件有多少行
    	wc -l /etc/passwd : 统计当前系统有多少个用户
    
    
    16.输出重定向 >
    	eg: ls -l /root > /tmp/1.txt   --将命令执行的结果,写入到文件中。(文件不存在创建后写入,存在清空再写入)
    	    ls -l /root >> /tmp/1.txt  --追加写入
    	特殊用法:
    		# > /tmp/abc.txt   --清空文件abc.txt
    		
    17.过滤:
    	grep [选项] 关键字 目标文件 :输出包含指定字符的行
    	      选项:  -i 忽略大小写
    	             -v 取反(返回不满足条件的行)
    		         --color 为关键字加颜色
    	      关键字:  ^a   -- 以a开头
    	               a$   -- 以a结尾
    			       ^$   -- 匹配空行
    			       -E   -- 匹配多个条件(或者关系)
    	案例: 
    		grep root /etc/passwd     --查找passwd中包含关键字root的行
    	    grep -v root /etc/passwd  --查找passwd中不包含关键字root的行
    	    grep -v '^#' /etc/passwd | grep -v '^$'     --查看去掉 注释 和 空行 后的内容(利用管道)
    	    grep -vE '^#|^$' /etc/passwd                --同上(利用-E)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92

    五、vim

    vim 文本编辑器

    1.命令模式:只能查看,不能编辑(默认的模式)
    	vim /目录/文件   --文件存在就打开,不存在就创建并打开
    	--光标行内跳转: ^ --行首   $ --行尾
    	--光标行间跳转: 1G --头    G --尾    nG --到第n行
    	--翻页:pgup ,pgdn
    	--复制:yy  --复制当前光标所在行
    		   nyy --复制当前光标往下n行
    	--粘贴: p   --光标所在处插入
    	--删除:x   --删除光标所在的字符
    		   d^  --删除光标到行首
    		   d$  --删除光标到行尾
    		   dd  --删除光标所在行
    		   ndd --删除光标往下的n行
    		   
    2.输入模式:可以编辑修改
    	进入命令模式后,输入 i,o 就进入输入模式
    	i:在当前光标处插入字符
    	o:在当前行下添加一行空行
    	--编辑完成后,返回命令模式: esc 键
    	
    3.末行模式:保存退出
    	进入命令模式后,输入 如下
    		:  --保存并退出
    		:w  --保存
    		:q  --退出
    		:wq  --保存并退出
    		:x   --保存并退出
    		:##! --强制执行,例: :q! 强制退出
    		:w /目录/文件  --另存为到指定的文件中
    		:r /目录/文件  --将指定的文件内容读进来
    		:!命令         --可以不退出编辑器就能执行命令
    	--字符串的查找
    		/ww   --向下查找字符串“ww”
    		?ww   --向上查找字符串“ww”
    		n/N   --跳至下一个/上一个找到的字符串
    	--字符串查找替换
    		:s/old/new    --替换光标坐在行第一个old为new
    		:s/old/new/g  --替换光标坐在所有的old为new
    		:n,m s/old/new    --替换n-m行的第一个old为new
    		:n,m s/old/new/g  --替换n-m行的所有的old为new
    		:%s/old/new       --替换整个文档每一行的第一个old为new
    		:%s/old/new/gc    --替换整个文档的old为new,c的作用是替换前提示
    	--撤销
    		u/U    --撤销最近一次编辑/撤销当前行的编辑
    	    ctrl+r --反撤销(取消前一次的操作)
    	
    	--显示/取消行号   :set nu/nonu   
    	--高亮显示        :syntax on/off  默认开启
    	--查询结果高亮    :set hls/onhls  默认开启
    	--自动缩进        :set autoindent/on autoindent
    	--编辑完成后,返回命令模式: esc 键
    
    4.如果想永久打开行号,命令行下输入:
    	# vim ~/.vimrc
    	  i
    	  set nu
    	  :wq	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    六、网络设置

    1.查看ip
    	ifconfig 网卡名  
    	ifconfig 网卡名 ip地址    --设置临时ip(重启失效)
    2.永久配置ip
    	#vim /etc/sysconfig/network-scripts/网卡名
    	DEVICE=eth0               #设备名
    	HWADDR=00:0C:29:88:97:B6  #mac地址
    	TYPE=Ethernet             #以太网类型
    	UUID=c45ea00a-d9b2-4606-a735-dc3b5a 7a99d3  #唯一标示
    	ONBOOT=no                 #当前文件是否可以使用,no--系统启动的时候不加载,yes--加载
    	NM_CONTROLLED=yes         
    	BOOTPROTO=dhcp            #获取ip地址的方式,dhcp--自动获取,none/static--都表示手动配置
    	IPADDR=           #ip 
    	NETMASK=          #子网掩码
    	GATEWAY=          #默认网关
    	DNS1=             #dns  --dns还可以在 /etc/resolv.conf 中设置
    	DNS2=
    	
    3.关闭防火墙
    	1.临时命令
    		# iptables -L    //查看防火墙
    		# iptables -F    //关闭防火墙
    	2.永久关闭防火墙
    		# chkconfig iptables off     //让防火墙服务不随系统的启动而启动
    		# /etc/init.d/iptables save  //将当前防火墙状态保存
    		# service iptables save      //保存防火墙设置的另一种方式,效果同上
    	3.关闭 selinux 
    		# vim /etc/sysconfig/selinux
    		将文件中的
    			SELINUX=enforcing  改为  SELINUX=disabled
    		更改后重启生效。
    
    		--临时更改:setenforce 0
    4.网络参数查看
    	1.netstat -anptu               //查看网络链接
    	2.netstat -ln | grep :端口      //查看指定端口是否被开启
    	3.netstat -tulnp | grep 服务名  //查看指定服务所监听的端口
    	4.nslookup                     //域名解析
    	5.vim /etc/sysconfig/network   //查看当前主机名
    	    HOSTNAME=xxxxx             //如果想改,更改HOSTNAME即可(reboot生效)
    	6.hostname 主机名              //临时修改主机名的方法
    	7.vim /etc/hosts              //主机映射文件:记录主机名和ip的映射关系
    	    windows中的文件位置是:C:\Windows\System32\drivers\etc\hosts
    	8.常见端口
    		 服务       协议    端口
     		web服务     tcp      80
    		telnet服务  tcp      23
    		ssh         tcp      22
    		ftp         tcp      20/21
    		smtp        tcp      25
    		pop4        tcp      110
    		imap        tcp      143
    		dns         tcp/udp  53
    	   # vim /etc/services    记录服务与端口的信息的文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    七、压缩和解压缩

    1.操作单个文件   --对现有文件直接操作,操作后,原文件被更改
    	1.gzip 
    	    压缩:
    	        gzip /目录/1.txt    --压缩后在原目录下生成 1.txt.gz 的文件
    	    解压:
    			gzip -d /目录/1.txt.gz
    
    	2.bzip2
    		用法一样,压缩效率更高,压得更小
    
    2.目录打包  --打包不是压缩  
    	 tar -c           --打包
    	     -x           --解包
    	     -f           --必须要
    	     -C           --指定解包位置
    	     -v           --输出信息
    	     -z           --调用gzip压缩
    	     -j           --调用bzip2压缩
    
    	例:
    	   打包:tar -cvf /tmp/111.tar /tmp/111     --将111打包为111.tar
    	   解包:tar -xvf /tmp/111.tar -C /opt/     --将111.tar解压到opt下
    	打包并压缩:
    		tar -zcvf /tmp/111.tar.gz /tmp/111
    	解包并解压:
    		tar -zxvf /tmp/111.tar -C /opt/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    八、环境变量

    1.查看PATH
    	echo $PATH        --查看变量值:echo 变量名
    	
    2.修改PATH
    	PATH=$PATH:/路径/         --临时修改
    	vim /root/.bash_profile   --永久更改
    	  ...
    	source /root/.bash_profile --立即生效
    
    3.which 根据PATH的路径去查找
    	例如: which shutdown  返回:/sbin/shutdown
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    九、SSH

    Linux远程访问 - SSH

    前提:telnet 远程访问 是明文的
          SSH 远程访问 是加密的(Linux默认安装了SSH,直接用)
    1.Linux中访问另一台Linux
    	ssh root@176.202.0.152   
    	   或者:ssh -l root 176.202.0.152 
    	        ssh -p 8431 root@176.202.0.152  --端口不是默认的22时使用
    	# 提示是否保存会话:y/n
    	# 等待一会儿
    	# 输入密码,即可连接成功
    	# exit   退出
    
    	修改ssh默认端口: 
    		vim /etc/ssh/sshd_config
    	  	...
    	  	Port 8431  (默认22)
    	    重启服务:service sshd restart
    	    
    2.远程拷贝:scp
    	拷贝文件:
    	   上传:scp /源目录/源文件 root@ip:/目标目录/          --默认22端口
    	   下载:scp root@ip:/目标目录/目标文件 /本地目录/
    	   * 如果端口改了:
    		scp /源目录/源文件 root@ip:/目标目录/         
    		scp -P 8321 root@ip:/目标目录/目标文件 /本地目录/
    	
    	拷贝目录:
    		上传:scp -r /本地目录 root@ip:/目标目录/
    		下载:scp -r root@ip:/目标目录 /本地目录/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    十、权限

    1.用户分类
    		1.超级管理员 root           uid = 0          root的家目录:/root
    		2.普通用户                  uid >= 500       普通用户的家目录:/home/XXX
    		3.系统用户--不是人为创建的    uid 1~499
    		
    2.不同文件保存账户不同信息
    	1.保存账户基本信息的文件
    	   /etc/passwd   --每个用户记录一行,用:分割为7段
    	2.保存账户密码信息的文件
    	   /etc/shadow   --每个用户记录一行,用:分割为9段
    	   1.创建用户:
    		useradd [选项]
    			  -u  指定uid
    			  -d  指定家目录
    			  -s  指定使用的shell
    			  -e  指定过期时间
    			  -g  指定主组(只有一个),没有指定时,默认新建一个跟用户名一样的组
    			  -G  指定附加组(可以多个)
    		例:useradd 用户名                   --创建用户
    		    useradd -d /opt/stu01/ 用户名    --创建用户并指定家目录
    	   2.为指定账户设置密码    密码文件:/etc/passwd
    		passwd [选项]
    		passwd             --为当前用户更改密码
    		passwd 账户名      --设置指定用户的密码
    		passwd -d 账户名   --清空密码,无密码直接登录
    		passwd -S 账户名   --查看是否被锁定
    		passwd -l 账户名   --锁定,用户无法登陆
    		passwd -u 账户名   --解锁
    		passwd --stdin 账户名  --通过管道设置密码,和管道 | 联合使用
    				          例:echo "123" | #passwd --stdin 账户名 
    	   3.更改现有用户属性
    		usermod -u [账户名] -g [] -d [家目录] -s [指定使用的shell]     
    	   4.删除用户
    		 userdel -r 用户名     -r:连同主目录一些删除 [可选]
    		 
    3.组别
    	1./etc/group     组的账户文件
    	2./etc/gshadow   组的密码文件
    	3.创建组
    		groupadd 组名
    	4.删除组
    		groupdel 组名
    		
    4.命令别名
    	vim ~/.bashrc
    	... 
    	alias myls='ls -lh'    --执行myls等价于 ls -lh
    
    5.权限(3个)-- 用户,用户组,其他人
    	可读取:-read   4
    	可写入:-write  2
    	可执行:-excute 1
    	
    	归属关系:
    		--所有者: -user
    		--所属组: -group
    		--其他用户:-other
    		--所有用户:-all
    	查看权限:ls -l 
    ---------------------------------------------
    更改权限:
    方式1: 数字方式
    	chmod  数字 文件或目录             *文件时 -R,递归设置
    
    	数字:user      group     other
    	      r w x     r - x     r - x
    	      4 2 1     4 0 1     4 0 1
    		  7         5         5
    	例子:
    		sudo chmod -R 777 文件夹
    方式2:
    	u:用户,g:组,o:其他人
    	+:增加权限
    	-:减小权限
    	=:设置成指定的权限
    	例子:
    	sudo chmod u+rwx,g=r,o-rwx  文件名    #该文件用户可读写执行,组只读,其他人什么也不能做 
    
    
    -----------------------------
    更改文件夹所属用户和组:
    	chown -R 用户:组 文件或目录       *文件夹用 -R
    	chown -R 用户 文件         --只更改文件所属用户
    		
    更改文件所属组:
    	chgrp 组名 文件
    
    
    切换用户:su 用户名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
  • 相关阅读:
    FPGA设计时序约束七、设置时钟不确定约束
    vue element 搜索框根据后台的接口实现模糊查询 + 分页特殊处理+重置表格
    阿里云OSS简单应用
    JS基础——cookie常见的属性介绍
    找出数组中出现偶数次的两个数字
    P1972 [SDOI2009] HH的项链
    C++之容器类有趣的实验(二百四十一)
    【已解决】PPT不能转换成PDF文档怎么办?
    3如何搭建组件库的样式工程之button-scss
    微信小程序:tabbar、事件绑定、数据绑定、模块化、模板语法、尺寸单位
  • 原文地址:https://blog.csdn.net/weixin_45691611/article/details/126693405