不那么认真的linux复习
这是个不那么认真的linux总结,可能有一些错误
1、linux=kernel(内核)+shell(外壳)+fs(文件系统)+pro/uti/tol(应用程序)
2、ls(列出文件)
-a(列出文件包括.开头的的隐藏文件)
-l(列出文件详细信息,包括创建时间,大小等等)内容如下:文件属性(10个字符) 文件数 拥有者 所属group 文件大小 建档日期 文件名-rwx--x--x 2 wd wd 808083 Nov 7 22:41 躺平-R(列出文件包括其子子孙孙)
-r(字母逆序列出文件)
-h human为“人”的意思,这个命令意思就是显示地尽可能人性化一些。具体体现在文件或目录的大小(直接显示为某某KB或某某MB)
3、cat(对文件操作)
-n (列出文件内容,并且由1开始排序,给文件的每行都加上行号)number
-b(列出文件内容,但是空行不参与排序)blank
-s(两个空行合并为1个)space
-E(回车符被替换为$)
-T(Tab符被替换为^)
-A(-ET的效果)cat>newFileName(创建一个文件,并输入内容,ctrl+d结束输入)
4、基本命令
ls 展示当前目录的文件列表
pwd 展示当前的工作目录
cat 展示文本文件的内容
info、man、help【xx --help】 查找相关命令的帮助文档或解析信息,从左到右信息逐渐简略
5、linux的终极形态
所有东西都是文件,要不就是进程
6、文件命名
1、不超过256个字母
2、区分大小写
3、组成为:大小写字母、数字、.(点)、_(短横杠)
4、隐藏文件由.开头
7、文件类型
- 常规文件
d 目录
l 链接
8、地址
/ 根目录 包含所有文件
~ 是用户的主目录
root用户的主目录是/root
普通用户的主目录是“/home/普通用户名”
在root用户下,~等同于/root2; 在普通用户下,~ 等同于 /home/当前的普通用户名。
如果我们建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。root是管理员账号,root文件夹是管理员的主目录
9、tab键的妙用
点一次可以使路径完整
点两次可以看到所有的路径可能
10、touch 创建文件
创建单个文件 touch aa.txt
创建多个文件 touch aa1 aa2 bb1 bb2 cc1 cc2touch {aa,bb,cc}{1,2}
11、mkdir 创建目录
-p 可以连带着父亲目录也创建
12、其他命令
cp 复制
mv 移动
rm 删除 -r表示递归地处理文件,即处理该目录及其所有子目录下符合条件的文件;-f则是无提示强制删除。普通的rm是无法删除目录的。
rmdir 删除目录
13、vim编辑器
vi 编辑或新建一个编辑文件
vim 与上面一样但是功能更多
view 以只读模式开启vim
cat 阅读文本内容
14、各种模式
命令模式->插入模式 i【从当前字符前面开始】、a【从当前字符开始】、A【从当前行末尾开始】、L【从末尾行行首开始】、o【在当前行另起一行开始】、O【在当前行前面 另起一行开始】
插入->命令 Esc
命令->底行 :(冒号)
底行->命令 命令完成之后自动切换命令模式
hjkl 左上下右
w 右一格 b左一格(一个字符串一个字符串跳)
^行首 $行尾底行模式
:w 保存
:q 退出
:!强制
:wq!强制保存退出
:x =:wq
ZZ=:wq
:n 将光标定位到第n行
:$ 移动光标到最后一行
:set nu(number) 打开行编号
:set nonu 关闭行编号
其他:
dd 删除当前行
vim的复制黏黏:
1、选择文本
v+光标移动 (按字符选择)高亮选中所要的文本,然后进行各种操作(比如,d表示删除)。
v+选中的内容+c 更改选中的文字
2、复制:y(ank)
y 用v命令选中文本后,用y进行复制 yy 复制当前行,然后用p进行粘贴。
5yy 复制从当前行开始的5行
y_ 等同于yy
Y 等同于yy
yw 复制当前单词
y$ 从当前位置复制到行尾
y0从当前位置复制到行首
y^ 从当前位置复制到第一个非空白字符
3、粘贴:p(aste)
p(小写) 在光标位置之后粘贴
P(大写) 在光标位置之前粘贴
4、剪切 v + 方向键(hjkl)选中内容 + d 剪切 + p粘贴
15、wc 统计 行数(line)/字数(word)/字节数(character)
可以拆开得到
统计行数:wc -l
字数:wc -w
字节数:wc -c
ps:一个字符串是一个字
16、head tail
展示头n行/末尾n行
17、>
功能: cmd > file 把cmd得到的结果写入file中
注意:>> 是追加内容, > 是覆盖原有内容
18、管道 |
功能:cmd1 | cmd2 另cmd1的输出/结果作为cmd2的输入
eg:ls / | wc -w 列出根目录的所有文件再统计它的字数
19、groups 用户排列在其中
功能:可以通过设置组的级别为用户设置权限
20、文件/etc/group
内容形式为:组名:密码:组id:账号1:账号2....
21、group命令
groupadd name1 创建一个组名为name1的组
groupadd -g GID1 name1 指定组名和组id
groupdel name2 删除name2的组
groupmod 修改 -g 修改id -n 修改名字
groups name3 展示name3属于哪个组
22、文件/etc/passwd 存用户信息的文件
内容形式为:用户名:密码:用户uid:组gid:命令:路径:内核shell
eg: wu: mima : 1000 :1000 :wu :/home/wu: /bin/bashps:/etc/passwd 任何人可读/etc/shadow 只有root可读,存用户密码的文件root用户的uid为0
uid是独一无二的
系统账户的uid<1000gid 组id
newgrp 命令可以换组shell 程序 用户登录的时候会被执行,可用的shells在/etc/shells
用户信息和密码放在不同文件的原因是什么?
/etc/passwd文件对所有用户都是可读的,而/etc/shadow只有root可见,这种设置为了安全考虑,避免被破解密码
23、用户名/密码规则
少于8个字符
区分大小写
必须全部小写
可以有数字
不能有特殊字符
24、user命令
useradd参数:-c 创建账户评价-m创建home目录-s user's shell的路径-g 指定默认组-d 指定home目录
userdeluserdel -r 《username》 把home目录也删掉
usermod-c 评论 -g组 -s shell -d home目录passwd 《username》 为《username》设置密码
25、文件权限
有三种 :readding/writing/executing r/w/x 只读/可写/可执行
ls -l 《filename》可以查看文件的权限
26、linux怎么上网
1、输入ifconfig 检查网络接口可以看到ens(网卡)、lo(本地网络),virbr0(虚拟网卡,这个东西需要删掉)
2、输入ifconfig virbr0 down 关掉网卡
3、输入systemctl disable libvirtd.service 关闭虚拟网卡的服务(关闭名为libvirtd.service的服务)
4、再次输入ifconfig 查看虚拟网卡还在不在
5、去到网络配置的文件 /etc/sysconfig/network-scripts/ifcfg-ens#(网卡的配置文件,这里网卡名称为ens20。 /etc/sysconfig/network-scripts/ifcfg-ens20)
6、su 切换超级用户模式
7、进入文件修改 BOOTPROTO=dhcp #获取IP地址的方式为DHCP自动分配ONBOOT=no 改为 ONBOOT=yes
8、保存文件
9、systemctl restart network.service 重新启动网络
现在就可以ping通了,可以上网了
27、sort 按照文件名字排序文件列表
默认:空行排在最前面,空格排其次,数字在字母前面(比如 1 34 5 A a B hh)
参数:-k《n》 指定列排序,这里指定第n列-n 数字排序 2 11 13 要是默认的字母排序则是 11 13 2 这样排序(此时字母在数字前面)-r 反转的字母排序-f 忽略大小写(大写排小写前面)-u 重复的删掉
使用:cat file.txt | sort -f
28、tr 替换字符
eg:cat file | tr ‘a-z’ ‘A-Z’ 把file中的小写替换为大写
参数:-d 删除 删除指令字符
29、grep 过滤->正则表达式立大功
-i 大小写敏感
-v 显示没有匹配到的
正则表达式基础:
a? a可以出现一次,也可以不出现
a* a可以出现很多次,也可以不出现
a+ a要出现一次及以上
a{6} 指定a出现6次
a{2,6}a出现2次到6次之间
a{2,}a出现2次以上
(a|b) a与b都匹配
[A-Za-z0-9]匹配的内容只能取自【里面的内容】
\d 数字字符 (相当于[0-9])
\D 非数字字符
\w 单词字符(字符+数字+下换线)
\s tab+空白+换行
30、进程和线程
进程是指程序正在执行,而线程是指进程的一个段。
进程不是轻量级的,而线程是轻量级的。
一个进程需要更多的时间来终止,而线程需要更少的时间来终止。
Process需要更多的时间创建,而Thread需要更少的时间创建。
进程大多是隔离的,而线程共享内存。
进程不共享数据,线程之间共享数据。ps 查看进程状态
参数-e 所有进程-f 显示进程的完整格式 format-x 显示当前用户在所有终端下的进程。-u 《username》 展示《username》的进程-p 《pid》 展示《pid》的信息----pid是进程id,ppid是父进程id-ef 展示所有进程且是完整格式的-eH 展示进程树查看进程的其他方式pstree 以树的形式展示进程列表=ps -eHtop 显示最活跃(资源消耗)的进程参数-d n 每n秒刷新一次快捷键P 按照%CPU排序(CPU占用) M 按照%MEM排序 (memory occupation 内存占用)后台和前台进程常规命令在前台执行任何时候只有一个前台进程后台启动命令 command & 关闭前台进程 Ctrl-c 暂停前台进程(放到后台) Ctrl-z 在后台列出所有进程 jobs把第n个工作放在前台 fg n
31、at (在指定的时间执行一次命令)
shift+ctrl+d 停止task
参数-l 展示task列表-d # 删除task#-c # 显示task#
请设定当前时间1分钟后清除家目录下Test目录及其下所有文件和文件夹的任务,此任务仅进行一次
[lei@localhost ~]$ at 17:31
at> rm -r Test
ps:at环境输入命令结束需要ctrl+shift+d
32、cron、crontab 自动化
cron -基于时间的作业调度服务,用于重复作业。
crontab -创建、读取、更新和删除作业计划的程序。参数《file》 从《file》中安装新的crontab-l 展示所有的cron工作-e 编辑cron工作-r 删去所有的cron工作格式* * * * * command| | | | || | | | +-- Day of the Week (0-6)| | | +---- Month of the Year (1-12)| | +------ Day of the Month (1-31)| +-------- Hour (0-23)+---------- Minute (0-59)比如# Run every Monday at 07:00.0 7 * * 1 reboot| | | | || | | | +-- Day of the Week (0-6)| | | +---- Month of the Year (1-12)| | +------ Day of the Month (1-31)| +-------- Hour (0-23)+---------- Minute (0-59)eg# Run every 30 minutes.0,30 * * * * /opt/acme/bin/half-hour-check# Run for the first 5 minutes of the hour0-4 * * * * /opt/acme/bin/first-five-mins使用cron来调度和自动化任务。ps:systemctl enable crond(对应的服务) ——启动未激活的服务
设置一个每周1、3、5凌晨2:00的重启任务,并简述过程
[lei@localhost ~]$ cat my_cron 0 2 * * 1,3,5 reboot(重启)
[lei@localhost ~]$ crontab my_cron
my_cron用vim编写
33、包管理系统rpm(手动)、yum(自动)【下载包用的】
RPM (RPM Package Manager)是功能强大的包管理系统。
RPM也指RPM命令和. RPM文件格式。
RPM包由文件归档和元数据组成,包括依赖关系和安装位置等信息yum install package_name安装所有依赖包
yum install -y package_name自动安装,不提问
remove package_name完全删除一个包及其所有依赖项
yum update package_name 将其更新到最新的稳定版本
yum list name 名称完全匹配
yum search name 搜索与名称相关的包
34、SSH 远程登录
SSH,或Secure Shell,是一种远程管理协议,允许用户通过Internet控制和修改其远程服务器。
该服务是作为未加密的Telnet的安全替代品而创建的,它使用加密技术来确保与远程服务器之间的所有通信都以加密方式进行。ssh sever_ip(远程访问某个ip)
ssh user_name@sever_ip 以user_name的名称连接server_ip
35、shell编程
#!/bin/bash “#!” 是一个约定的标记,它告诉系统用什么解释器来执行这个脚本,即使用哪一种Shell。#!/bin/sh是指此脚本使用/bin/sh来解释执行。
36、变量
变量名格式:不超过256个字节区分大小写能用字母、数字、“_”,首字母不能是数字
变量的使用:$variableName or${VariableName}
环境变量—存储系统信息
env命令查看所有环境变量
输出形式:p=$(pwd) echo ${p} 或者 p=`pwd` echo $p系统环境变量path
查看path echo $path
path的内容是由一堆目录组成的,目录之间用:隔开,且有顺序之分。
我们执行一个指令的时候,比如ls,我们可以在任何目录下执行,而不会找不到可执行文件,这是因为系统环境变量path的帮助。我们执行ls,系统会去每个path的目录下面搜索文件名为ls的可执行文件,如果有多个ls的可执行文件,那么先被搜寻到的先被执行。如果我们把ls由/bin/ls移动到/root/ls【mv
/bin/ls
/root】,这时候就不可以直接执行ls指令了,需要使用ls的绝对或相对地址。若想直接执行ls,那么就将/root加入path当中即可,【path="path":/root】不过这样是临时的,下次再登录的时候path":/root】不过这样是临时的,下次再登录的时候path":/root】不过这样是临时的,下次再登录的时候path的值就会变为默认的样子了。
只读变量
定义只读变量readonly Var='hello world'
删除变量内容
unset variableName
37、字符串
单引号和双引号——'‘和"“,”"里面可以放变量,但是’'里面全部都是字符串 ${#string_name} 计算字符串长度
${string_name: m :n} 截取部分字符串 eg:“abcde”:1:3=>bcd
38、Alias 别名——为一些记不住的命令起别名,让命令容易记住
起一个新别名 alias NAME='COMMAND'
移除别名 unalias NAME
列出别名列表 alias
39、计算——加减乘除
$(( 20 + 5 ))
x=5 echo $(( x-- ))
ps:注意,数字、括号之间一定要有空格
40、-e和-d 与 条件表达式
–e 文件是否存在
–d是否为目录
others:
-s 文件是否存在且不为空
-f 文件是否存在且为常规文件
-r 文件是否可读
-w 文件是否可写
-x 文件是否可执行
用法:
[ -e date_log ] && echo ‘Y’ || echo ‘N’ Y
test -e date_log && echo ‘Y’ || echo ‘N’ Y
编写一个脚本test_rw.sh,执行时由命令行提示用户输入一个路径,检测该路径是否即可读又可写,输出检测结果(True or False)。
#!/bin/bash
read -p "please input a path: " path
if [ -r $path -a -w $path ]
thenecho True
elseecho False
fi
41、字符串操作
-z String 判断字符串是否为空
-n String 判断字符串是否不为空
string1=string2 判断string1和string2是否相等 string1!=string2 判断string是否不相等
42、表达式操作
arg1 –eq arg2 是否相等
arg1 –ne arg2 是否不相等
arg1 –lt arg2 是否小于
arg1 –le arg2 是否小于或等于
arg1 –gt arg2 是否大于
arg1 –ge arg2 是否大于或等于
eg:
[ 5 -gt 2 ] && echo Y || echo N [里面记得加空格在前面和后面]
Y
43、逻辑操作
not or and
44、if 表达式——shell编程
if [ condition-is-true ]
thencommands
elif [ condition-is-true ]
thencommands
elsecommands
fi
45、shell——输入 read
格式:read -p “Prompt” var1 var2 varN
eg:read -p "Enter your name : " name
参数
-p PROMPT从终端读取输入时,在输入前打印提示信息
-s
静默模式,输入字符不显示到屏幕,例如 login 时输入密码
-t TIMEOUT
后面跟秒数,定义输入字符的等待时间eg:read -t 3 -p "Enter your name : " nameread -s -p "Enter Password : " my_password
46、shell——case
eg:
#!/bin/bash
echo 'input a number between 1~4:'
read aNum
case $aNum in 1) echo 'your input is 1' ;; 2) echo 'your input is 2' ;; 3) echo ' your input is 3' ;; 4) echo ' your input is 4' ;; *) echo 'your input is not in 1~4' ;;
esac
47、shell——array数组
格式:
array_name=(value1 value2 ... valuen)array_name=(value1 value2 ... valuen)创建特定长度的数组array_name[index]=value数组下标不一定是连续的
输出数组的某个数 ${array_name[index]}
输出数组的前面n个字节 $array_name[n]
eg:my_array=(hello world)echo $my_array[5]hello[5]
输入数组所有元素
${array_name[*]}
${array_name[@]}输出数组总长度
${#array_name[@]}
${#array_name[*]}
建立一个数组,数组的每个元素都要是合法的文件名。利用该数组在家目录下创建一组文件,每个文件的名字对应数组的一个元素。(通过命令行实现,不写脚本)
[lei@localhost ~]$ my_arr=(aa bb c1.sh)
[lei@localhost ~]$ touch ${my_arr[*]}
48、shell——loop,循环
eg1:
for car in bmw ford toyota nissan
do
echo "Value of car is: $car"
done
eg2:
#!/bin/bash
echo "请输出当前目录下的各文件名称"
for f in $(ls)
do
echo $f
done
双层循环
#!/bin/bash
# A shell script to print each number five times.
for (( i = 1; i <= 5; i++ )) ### 外层循环 ###
do
for (( j = 1 ; j <= 5; j++ )) ### 内衬循环 ###
do
echo "$i "
done
echo "" ####输出新的一行 ###
done
while循环
#!/bin/bash
# set n to 1
n=1
#n小于或等于5
while [ $n -le 5 ]
do
echo "Welcome $n times."
n=$(( n+1 ))
done
或
#!/bin/bash
n=1
while (( $n <= 5 ))
do
echo "Welcome $n times."
n=$(( n+1 ))
done
until循环(初始n=0,while是当n<2时继续循环 0,1 until是直到n>=2才退出 0,1)
#!/bin/bash
i=1
until [ $i -gt 6 ]
do
echo "Welcome $i times."
i=$(( i+1 ))
done
49、shell——执行sh文件时可以输入参数
sh script.sh par1 par2 par3
别名:
$0 “script.sh” 文件名称$1 "par1“ 第一个参数
$2 "par2“ 第二个参数
$3 "par3“ 第三个参数
$n 第n个参数
$# 参数数量
$* 所有的参数
$@ 所有的参数
编写一个脚本creat_dirs.sh,执行时传入2个或以上的参数,每个参数作为命名主体。此脚本用来生成一组目录,其命名规则为:主体_序列号_总文件数
例:参数为 Fna Fnb Fnc,则生成3个目录,其文件名分别为Fna_1_3 Fnb_2_3 Fnc_3_3
#!/bin/bashi=1
for name in $*#$*是所有的参数,也可以是$@
dostr=$name'_'$i'_'$#echo $strmkdir $str((i++))
done
编写一个脚本get_smallest.sh,执行时参数为多个整数,运行后显示其中最小的一个。
[lei@localhost ~]$ sh get_smallest.sh 1 -2 4 15
the smallest argument is: -2
[lei@localhost ~]$ cat get_smallest.sh
#! /bin/bash
smallest=$1
for item in $@
doif [ $item -lt $smallest ]thensmallest=$itemfi
done
echo "the smallest argument is: $smallest"
50、$*和$@的区别
"$*“可以把所有元素集合成一个字符串,而”$@"是单个字符串
(1)
for item in $* doecho $item done 输出: aa bb cc
(2)
for item in "$*"
doecho $item
done输出:
aa bb cc
(3)
for item in "$@"
doecho $item
done输出:
aa
bb
cc
(4)
#!/bin/bash
my_arr=(hello kitty)
my_arr[5]='Linux class'
for var in "${my_arr[*]}"
do
echo $var
done
echo '--------------'
for var in "${my_arr[@]}"
do
echo $var
done
echo '--------------'
for var in ${my_arr[*]}
do
echo $var
done输出:
hello kitty Linux class
--------------
hello
kitty
Linux class
--------------
hello
kitty
Linux
class
--------------
hello
kitty
Linux
class
51、磁盘 block devices
包括硬盘(hard disk)和光盘
lsblk命令显示所有的磁盘
fdisk -l | grep disk列出所有的硬盘
/dev/为次磁盘目录
磁盘分区(partition)
三大分区MBR——主要(最多4个),扩展(最多1个),逻辑(可以有很多,包含在扩展中),主要+扩展不能超过4个。
命名:磁盘名称+数字(primary 1-4 ,extended 1-4 ,logical 5-)
展示磁盘分区 fdisk -l 【PhysicalPath】(物理地址,在硬盘上的文件的位置,如D:\html\a.html)
扇区,硬盘中最小的可访问单元 创建分区:fdisk 【PhysicalPath】
其中的命令
m 帮助
p 打印分区表n 添加新分区
d 删除分区
q 退出且不保存
w 将表写入磁盘并退出
最后一个扇区使用默认意味着将所有剩余空间分配给该分区。
格式化分区man fs查看文件系统信息mkfs.【fsname】 【PartitionPath 】格式化分区
52、帮助手册(manual)
man
eg:man ls /man vim
参数: -k 【str】模糊搜索str
类似:
whatis
whatis str相当于man -k str,但是结果更少
help 很方便,但是不如man强大
53、文件的创建和权限
文件的主人默认是创建者,可以用命令chown修改
eg:chown newuser filechown newuser:newgroup file
chmod(改权限)
文件的三种权限:r - read w - write x - execute
脚本script.sh至少可以通过哪两种方式被执行,并写出具体命令
其一,可用sh script.sh直接执行
其二,可用chmod +x
script.sh添加执行权限,之后用./script.sh执行(注意,这个+是真实存在的)
相关文章:

不那么认真的linux复习
这是个不那么认真的linux总结,可能有一些错误 1、linuxkernel(内核)shell(外壳)fs(文件系统)pro/uti/tol(应用程序) 2、ls(列出文件) -a…...

Redis系列文章总纲
跟着老万学Redis 前言 从事开发工作这么久,很多核心技术其实都还只是局限在满足日常开发工作中的基础使用,并没有完整的总结研究。今年的目标之一是完成几个技术栈的系列博客,系统的总结一下知识体系,目前计划是从Redis开始。 Re…...

更新丨三大模块升级,助力高效交付商业项目!
功能更新!本文将介绍最新升级的步进漫游、行业方案、VR漫游三个模块,让您更快更好的了解系统能力,为您带来更加便捷、高效的使用体验。步进漫游 离线导出步进式漫游系统,是基于全景图自动生成三维建模的解决方案,实现大…...

C++回顾(二)——const和引用
2.1 C中的const 2.1.1 C与C中const的比较 (1)C语言中的const C语言中 const修饰的变量是一个 常变量,本质还是变量,有自己的地址空间。 (2)C中的const 1、C中 const 变量声明的是一个真正的常量ÿ…...

MXNet中使用双向循环神经网络BiRNN对文本进行情感分类<改进版>
在上一节的情感分类当中,有些评论是负面的,但预测的结果是正面的,比如,"this movie was shit"这部电影是狗屎,很明显就是对这部电影极不友好的评价,属于负类评价,给出的却是positive。…...

DNS 域名解析
介绍域名 网域名称(英语:Domain Name,简称:Domain),简称域名、网域。 域名是互联网上某一台计算机或计算机组的名称。 域名可以说是一个 IP 地址的代称,目的是为了便于记忆。例如,…...

Spring MVC 源码- ViewResolver 组件
ViewResolver 组件ViewResolver 组件,视图解析器,根据视图名和国际化,获得最终的视图 View 对象回顾先来回顾一下在 DispatcherServlet 中处理请求的过程中哪里使用到 ViewResolver 组件,可以回到《一个请求响应的旅行过程》中的 …...

【Hello Linux】初识冯诺伊曼体系
作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍冯诺伊曼体系 冯诺伊曼体系 冯诺伊曼体系结构的合理性 我们在Linux的第一篇博客中讲解了第一台计算机的发明是为了解决导弹的…...

mysql索引,主从多个核心主题去探索问题。
网上收集不错的优化方案 事务 mvcc 详讲 详讲 索引 索引概念 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据 库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数 据…...

前端一面必会面试题(边面边更)
哪些情况会导致内存泄漏 以下四种情况会造成内存的泄漏: 意外的全局变量: 由于使用未声明的变量,而意外的创建了一个全局变量,而使这个变量一直留在内存中无法被回收。被遗忘的计时器或回调函数: 设置了 setInterval…...

【Hello Linux】初识操作系统
作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍下操作系统的概念 操作系统 操作系统是什么? 操作系统是管理软硬件资源的软件 为什么要设计操作系统 为什么要设…...

完美的vue3动态渲染菜单路由全程
前言: 首先,我们需要知道,动态路由菜单并非一开始就写好的,而是用户登录之后获取的路由菜单再进行渲染,从而可以起到资源节约何最大程度的保护系统的安全性。 需要配合后端,如果后端的值不匹配࿰…...

2023年CDGA考试模拟题库(301-400)
2023年CDGA考试模拟题库(301-400) 300.无附加价值的信息通常也不会被删除,因为:[1分] A.它不应该被移除,所有数据都是有价值的 B.我们可能在以后的某个阶段需更这些信息 C.规程中不明确是否应该保留 D.数据是一种资产它很可能在未来被认为是有价值的 E.规程中不明确哪些是…...

Linux-常见命令
🚜关注博主:翻斗花园代码手牛爷爷 🚙Gitee仓库:牛爷爷爱写代码 目录🚒xshell热键🚗Linux基本命令🚗ls指令🚕pwd指令🚖cd指令🚌touch指令🚍mkdir指…...

2.25测试对象分类
一.按照测试对象划分1.界面测试又称UI测试,按照界面的需求(一般是ui设计稿)和界面的设计规则,对我们软件界面所展示的全部内容进行测试和检查.对于非软件来说:颜色,大小,材质,整体是否美观对于软件来说:输入框,按钮,文字,图片...的尺寸,颜色,形状,整体适配,清晰度等等,2.可靠性…...

【Zabbix实战之部署篇】Zabbix客户端的安装部署方法
【Zabbix实战之部署篇】Zabbix客户端的安装部署方法 一、Zabbix-agent2介绍1.Zabbix-agent2简介2.Zabbix-agent2优点3.主动模式和被动模式二、环境规划1.Zabbix服务器部署链接2.IP规划三、配置客户端系统环境1.关闭selinux2.放行端口或关闭防火墙四、安装zabbix-agent21.下载za…...

【CSS】CSS 层叠样式表 ② ( CSS 引入方式 - 内嵌样式 )
文章目录一、CSS 引入方式 - 内嵌样式1、内嵌样式语法2、内嵌样式示例3、内嵌样式完整代码示例4、内嵌样式运行效果一、CSS 引入方式 - 内嵌样式 1、内嵌样式语法 CSS 内嵌样式 , 一般将 CSS 样式写在 HTML 的 head 标签中 ; CSS 内嵌样式 语法如下 : <head><style …...

MySQL事务与索引
MySQL事务与索引 一、事务 1、事务简介 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务用来管理 insert,update,delete 语句 事务特性…...

【编程入门】应用市场(php版)
背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 《N种编程语言做个记事本》 目标 为编程初学者打造入门学习项目,使…...

文化:你所在的团队,有多少人敢讲真话?
你好,我是叶芊。 今天我们要讨论的话题是文化,说“文化”这个词你可能会觉得很虚,那我们换个词——“做事风格”,这就和你们团队平时的协作习惯密切相关了。 做事风格,往小了讲,会影响团队成员对开会的认知…...

Linux | 项目自动化构建工具 - make/Makefile
make / Makefile一、前言二、make/Makefile背景介绍1、Makefile是干什么的?2、make又是什么?三、demo实现【见见猪跑🐖】三、依赖关系与依赖方法1、概念理清2、感性理解【父与子】3、深层理解【程序的翻译环境 栈的原理】四、多学一招&#…...

Spring源码该如何阅读?十年架构师带来的Spring源码解析千万不要错过!
写在前面最近学习了一句话,感觉自己的世界瞬间明朗,不再那么紧张焦虑恐慌,同样推荐给大家,希望我们都终有所得。“如果一个人不是发自内心地想要做一件事情,那么,他是无法改变自己的人生的。” 同样这句话用…...

sonarqube 外部扫描器 go vet golangci-lint 无法导入问题
首先,请看[外部分析报告]各种语言的报告生成 go vet 2> govet-report.out#没有golangci-lint,我从网上找到了 golangci-lint run --out-format checkstyle ./... > golangci-lint-report.xml值得注意的是,貌似不支持目录,仅…...

Tesseract-OCR 控制台怎么使用
Tesseract-OCR 控制台是一个命令行工具,可以在 Windows、Linux、macOS 等操作系统中使用。下面是使用 Tesseract-OCR 控制台进行文字识别的基本步骤:安装 Tesseract-OCR:可以到 Tesseract-OCR 的官方网站(https://github.com/tess…...

九龙证券|美股创年内最大周跌幅!美联储官员密集发声!波音重挫近5%
当地时刻2月24日,美股三大指数收盘明显跌落。道指跌1.02%,标普500指数跌1.05%,纳指跌1.69%。 大型科技股普跌,微软、亚马逊跌超2%。波音大跌4.8%,居道指跌幅榜首位,公司因机身部件有问题再次暂停向用户交付…...

C++014-C++字符串
文章目录C014-C字符串字符串目标char[]和stringchar[]char*string字符常量与字符串常量字符串的输入题目描述 字符串输出题目描述在线练习:总结C014-C字符串 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 字符串 目标 1、了解字符串…...

Android 架构 MVC MVP MVVM,这一波你应该了然于心
MVC,MVP和MVVM是软件比较常用的三种软件架构,这三种架构的目的都是分离,避免将过多的逻辑全部堆积在一个类中。在Android中,Activity中既有UI的相关处理逻辑,又有数据获取逻辑,从而导致Activity逻辑复杂不单…...

物联网在医疗保健领域的5大创新应用
如今,物联网的发展越来越迅速,我们无法低估物联网在当今世界的重要性。大多数人每天都会使用到物联网设备。例如,当你使用智能手表来跟踪你的锻炼时,你就间接地使用了物联网的功能。由于物联网为世界带来了很多有效的帮助…...

【一天一门编程语言】Haskell 语言程序设计极简教程
Haskell 语言程序设计极简教程 一、什么是 Haskell Haskell 是一种纯函数式编程语言,它把程序设计抽象化到一个更高的层次,简化程序开发工作量,能够更快更容易地完成任务。 它是一种函数式编程语言,它采用函数式编程方法&#…...

getStaticPaths函数 以及 fallback参数
getStaticPaths是Next.js的一个静态生成API,它用于在构建时确定哪些页面需要被预渲染。它需要返回一个包含params属性的对象数组,其中每个对象都代表一个路径参数集合,可以被预渲染为一个静态页面。如果所有参数都已知,它们将被硬…...