1. 求2个数之和
#! /bin/bash
first=0
second=0
read -p "Input the first number:" first
read -p "Input the second number:" second
result=$[$first+$second]  或者 $(($first+$second))
echo "result is:$result"
  1. 计算1-100的和
#! /bin/bash
SUM=0
I=0while [ $I -le 100 ];doSUM=$((SUM+I))I=$((I+1))
done
echo "1+2+3+...+100 = $SUM"
  1. 将一目录下所有的文件的扩展名改为bak
#! /bin/bash
for i in *.*;do              # *.* 表示要求 . 前面和后面都得有字母mv $i ${i%%.*}.bak
done${i%%.*}:删掉第一个 . 及其右边的字符串

划重点

Linux的shell 中 %% *的含义
testfile=/dir1/dir2/dir3/test.file.txt可以用${ }分别替换得到不同的值:${testfile#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/test.file.txt${testfile##*/}:删掉最后一个 / 及其左边的字符串:test.file.txt${testfile#*.}:删掉第一个 . 及其左边的字符串:file.txt${testfile##*.}:删掉最后一个 . 及其左边的字符串:txt${testfile%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3${testfile%%/*}:删掉第一个 / 及其右边的字符串:(空值)${testfile%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/test.file${testfile%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/test记忆方法为:# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配${testfile:0:5}:提取最左边的 5 个字节:/dir1
${testfile:5:5}:提取第 5 个字节右边的连续5个字节:/dir2也可以对变量值里的字符串作替换:
${testfile/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/test.file.txt
${testfile//dir/path}:将全部dir 替换为 path:/path1/path2/path3/test.file.txt
  1. 编译当前目录下的所有.c文件
#! /bin/bash
for file in *.c;do echo $file ;gcc -o $(basename $file .c) $file ; sleep 2;done
>compile 2>&1$(basename $file .c)  basename表示取 file名字,过滤后缀.c。输出“file”。  main.c ——> main
注意 file .c  有空格间隔
gcc -o app test.c将生成可执行程序app。  -o选项用来指定输出文件的文件名。
basename命令用法
为basename指定一个路径,basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来。
格式:
basename [pathname] [suffix]
basename [string] [suffix]
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。示例:
basename /usr/bin/sort              【输出 sort】
basename ./include/stdio.h .h       【输出 stdio,指定后缀为.h,删除第一个参数的文件名的后缀.h】
basename  -s  .h  include/stdio.h   【输出 stdio,-s 指定后缀.h,从而删除后缀只显示文件名】
basename -a any/str1 any/str2
结果:
str1
str2
注意点:
1、如果传递参数给basename,参数为空,basename会将参数左移
2、basename最多接受两个参数,如果设置的参数多于两个,会提示错误。
举例:
basename ab b 【输出a 因为这里把b当做后缀,删除字符串ab中的后缀】basename 是去除目录后剩下的名字
example:shell>temp=/home/temp/1.testshell>base=`basename $temp`shell>echo $base
结果为:1.test
dirname 是取目录
example:shell>temp=/home/temp/1.testshell>dir=`dirname $temp`shell>echo $dir
结果为:/home/temp#! /bin/bashfor file in *.bak;doecho $filebase=`basename $file .bak`echo $base
done结果:
1.bak
1
2.bak
2
  1. 打印root可以使用可执行文件数,处理结果: root’s bins: 2306
#! /bin/bash
echo "root's bins:$(find ./ -type f | xargs ls -l | sed '/-..x/p' | wc -l)"
更正确:
echo "root's bins:$(find ./ -user root | xargs ls -l | sed '/-..x/p' | wc -l)"Shell 常用工具 grep-find-xargs-sed-awk
https://blog.csdn.net/qq_39578545/article/details/104902718
  1. 打印当前sshd的端口和进程id,处理结果: 22 6689
#! /bin/bash
netstat -apn | grep sshd | sed -n 's/.*:::\([0-9]*\)\ .* \ \([0-9]*\)\/sshd/\1 \2/p'
解析 \1匹配第一个括号 对应输出22,\2匹配第二个括号 对应输出6689sshd Port&&pid: 22 6689

  1. 输出本机创建20000个目录所用的时间,处理结果

real 0m3.367s
user 0m0.066s
sys 0m1.925s

#! /bin/bash
time (
for i in {1..2000} ; domkdir /tmp/nnn$i
done
)
  1. 打印本机的交换分区大小,处理结果: Swap:1024M
#! /bin/bash
free -m | sed -n '/Swap/p' | awk '{print $2}'

找出运行nginx的id号

$ ps aux | sed -n '/nginx/p' | awk '{print $2}' | head -n2
  1. 文本分析,取出/etc/password中shell出现的次数
第一种方法结果:4 /bin/bash1 /bin/sync1 /sbin/halt31 /sbin/nologin1 /sbin/shutdown
第二种方法结果:/bin/sync      1/bin/bash      1/sbin/nologin  30/sbin/halt     1#! /bin/bash
cat /etc/passwd | awk -F: '{if ($7!="") print $7}' | sort | uniq -c
或
cat /etc/passwd | awk -F: '{if ($7!="") print $7}' | sort | uniq -c | awk '{print $2,$1}'-c 表示次数
  1. 文件整理,employee文件中记录了工号和姓名,(提示join)

employee.txt:
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
bonus文件中记录工号和工资
bonus.txt:
100 $5,000
200 $500
300 $3,000
400 $1,250
要求把两个文件合并并输出如下,处理结果:
400 ashok sharma $1,250
100 jason smith $5,000
200 john doe $500
300 sanjay gupta $3,000

join命令:用于将两个文件中,指定栏位内容相同的行连接起来。
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出#! /bin/bash
join employee.txt bonus.txt | sort -k 2-k 2 按照第二列进行排序,第二列是字母,按字母排序。 依第一个文件
  1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录
#! /bin/bash
echo "date:,`date`"      注意这里是反引号
echo "user:,`who i am`"
echo "directory:,`pwd`"

12. 编写shell脚本获取本机的网络地址

#! /bin/bashIP=`ifconfig ens33 | grep 'inet ' | awk -F ' ' '{print $2}'`
NETMASK=`ifconfig ens33 | grep 'inet ' | awk -F ' ' '{print $4}'`
echo "$IP/$NETMASK"
echo "$IP"-F' ' 指定分隔符为空格


13. 编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下

#! /bin/bash
for FileName in `ls -l | awk '$5>10240 {print $9}'`;domv $FileName /tmp
donels -al /tmp
echo "Done! "“ls -l”,默认显示的大小是文件的字节大小
ls -l --block-size=k --block-size=m
  1. 编写一个名为myfirstshell.sh的脚本,它包括以下内容。

a) 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的。
b) 问候用户。
c) 显示日期和时间。
d) 显示这个月的日历。
e) 显示您的机器名。
f) 显示当前这个操作系统的名称和版本。
g) 显示父目录中的所有文件的列表。
h) 显示root正在运行的所有进程。
i) 显示变量TERM、PATH和HOME的值。
j) 显示磁盘使用情况。
k) 用id命令打印出您的组ID。
m) 跟用户说“Good bye”

#! /bin/bash# by Binuser=`whoami`
case $user inroot)echo "hello root";;Bin)echo "hello Bin";;*)echo "hello $user,welcome"
esacecho "日期和时间:`date`"
echo "本月的日历:`cal`"
echo "本机的机器猫:`uname -n`"
echo "当前这个操作系统的名称和版本:`uname -s;uname -r`"
echo "父目录中的所有文件的列表:`ls ../`"
echo "root正在运行的所有程序:`ps -u root`"
echo "变量TERM的值:$TERM"
echo "变量PATH的值:$PATH"
echo "变量HOME的值:$HOME"
echo "磁盘的使用情况:`df`"
echo "用id命令打印出你的组ID:`id -g`"
echo "Good bye!"
  1. 文件移动拷贝,有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下
#!/bin/bash
touch m1.txt m2.txt m3.txt m4.txt
i=1 while [ $i -le 4 ]; do mkdir m$imv m$i.txt m$ii=$((i+1))
done
  1. root用户今天登陆了多长时间
#! /bin/shcat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒\n",run_days,run_hour,run_minute,run_second)}'
  1. 终端输入一个文件名,判断是否是设备文件
    b - 块设备文件。
    c - 字符设备文件。
#/bin/bashecho -e "The program will Judge a file is or not a device file.\n\n"
read -p "Input a filename:" filename
if [ -b $filename -o -c $filename ]; thenecho "$filename is a device file"
elseecho "$filename is not a device file"
fi
  1. 统计前几位访问频率前三的
#! /bin/bash# $1 为要测试的日志文件
read -p "Input :" test
awk '{print $1}' $test | sort | uniq -c | sort -k1nr | head -n3例如:要求分析apache访问日志,找出访问页面数量在前100位的IP数。日志大小在78M左右。以下是apache的访问日志节选
  1. 设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行
#!/bin/bash
# 需要root权限
echo "create /userdata/user"mkdir -p /userdata/userif [ $? -eq 0 ]; theni=1while [ $i -le 50 ]; domkdir -p /userdata/user/user$ichmod 754 /userdata/user/user$ilet i++done
elseecho "bye"
fi$? 就是返回上一个程序的返回值,0表成功,非0表失败
let表达式内变量不用加$
var=1
var=$var+1
let "var+=1" 或 let var+=1 这种写法运算符间不能有空格 
  1. 设计一个shell程序,添加一个新组为class,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30,并设置密码为对应的stdxx
#!/bin/bashgroupadd class
for i in {class01..class30}; doxx=`echo $i | sed 's/class//g'`useradd -g class -s /bin/bash -d /home/std$xx -m std$xxecho -e "std$xx@123456" | passwd std$xxecho -e "user std$xx password is std$xx@123456" >> /root/newuser.txt
done-s是指定用户登入后所使用的shell。默认值为/bin/bash。如果不想让用户登录系统可以用 -s /sbin/nologin.此用户就不可以登录系统。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-m:自动建立用户的登入目录。
  1. 编写shell程序,实现自动删除30个账号的功能。账号名为std01至std30
#!/bin/bashfor i in {9901..9930}; doxx=`echo $i | sed 's/99//g'`userdel -r std$xx
done-r代表把用户相对应的目录一并删除
  1. 用户清理,清除本机除了当前登陆用户以外的所有用户
#!/bin/bash
a=`echo $0 | sed 's/..\(...\).*/\1/'`for i in `w|awk -v b=$a 'NR>2{if($NF !~ b) print $2}'`
do echo $ifuser -k /dev/$i
done$0 Shell本身的文件名
w 用于显示登录的用户及他们当前运行的进程
-v var=$v 把v值赋值给var,如果有多个变量要赋值,那么就写多个-v,每个变量赋值对应一个-v
NR      当前行的行号,该变量是只读的,R代表record
NF      当前行所拥有的列数,该变量是只读的,F代表field
  1. 设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名,为如下形式yymmdd_etc,yy为年,mm为月,dd为日。
#!/bin/bashfilename=`date +%y%m%d`_etc.tar.gz
#cd /etc/
tar -zcvf $filename *
mv $filename /root/bak/
  1. 对于一个用户日志文件,每行记录了一个用户查询串,长度为1-255字节,共几千万行,请排出查询最多的前100条。 日志可以自己构造。 (提示:awk sort uniq head)
#! /bin/bash# show top 10file=$1
awk '{print $1}' testdata.txt | sort | uniq -c | sort -k1nr | head -n10
  1. 编写自己的ubuntu环境安装脚本

  2. 编写服务器守护进程管理脚本

  3. 查看TCP连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
  1. 查找请求数请20个IP(常用于查找攻来源)
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
  1. 用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
  1. 查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
  1. 查找较多time_wait连接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort |uniq -c | sort -nr | more
  1. 根据端口列进程
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1
  1. 获得访问前10位的ip地址
cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10
cat access.log|awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}'
  1. 访问次数最多的文件或页面,取前20
cat access.log|awk '{print $11}'|sort|uniq -c|sort -nr|head -20
  1. 列出传输最大的几个exe文件(分析下载站的时候常用)
cat access.log |awk '($7~/.exe/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -20
  1. 列出输出大于200000byte(约200kb)的exe文件以及对应文件发生次数
cat access.log |awk '($10 > 200000 && $7~/.exe/){print $7}'|sort -n|uniq -c|sort -nr|head -100
  1. 如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的页面
cat access.log |awk '($7~/.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100
  1. 列出最耗时的页面(超过60秒的)的以及对应页面发生次数
cat access.log |awk '($NF > 60 && $7~/.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
  1. 列出传输时间超过 30 秒的文件
cat access.log |awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20
  1. 统计网站流量(G)
cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'
  1. 统计404的连接
awk '($9 ~/404/)' access.log | awk '{print $9,$7}' | sort
  1. 统计http status
cat access.log |awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}'
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn
  1. 蜘蛛分析,查看是哪些蜘蛛在抓取内容
/usr/sbin/tcpdump -i eth0 -l -s 0 -w - dst port 80 | strings | grep -i user-agent | grep -i -E 'bot|crawler|slurp|spider'
  1. 创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux
# groupadd linux
# groupadd -g 3003 distro
# useradd -u 2002 -g distro -G linux mandriva
  1. 创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh
# useradd -c "Fedora Community" -s /bin/tcsh fedora
  1. 修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;
# usermod -u 4004 -g linux -G distro,fedora mandriva
  1. 给fedora加密码,并设定其密码最短使用期限为2天,最长为50天
# passwd fedora
# chage -m 2 -M 50 fedora
  1. 调试命令
strace -p pid

❤ 49. 写一个脚本

1、创建一个组newgroup, id号为4000;
2、创建一个用户mageedu1, id号为3001,附加组为newgroup;
3、创建目录/tmp/hellodirxyz
4、复制/etc/fstab至上面的目录中
5、改变目录及内部文件的属主和属组为mageedu1;
6、让目录及内部文件的其它用户没有任何权限;#!/bin/bash
# Description:
# Version:
# Datetime:
# Author:myGroup="newgroup1"
myUser="mageedu2"
myDir="/tmp/hellodirxyz1"
myID=3002groupadd -g 4001 $myGroup
useradd -u $myID -G $myGroup $myUser
mkdir $myDir
cp /etc/fstab $myDir
chown -R $myUser:$myUser $myDir
chmod -R o= $myDirunset myGroup myUser myID myDir
  1. 统计/bin、/usr/bin、/sbin和/usr/sbin等各目录中的文件个数
# ls /bin | wc -l
  1. 显示当前系统上所有用户的shell,要求,每种shell只显示一次
# cut -d: -f7 /etc/passwd | sort -u
  1. 取出/etc/passwd文件的第7行
# head -7 /etc/passwd | tail -1
  1. 显示第3题中取出的第7行的用户名
# head -7 /etc/passwd | tail -1 | cut -d: -f1
# head -7 /etc/passwd | tail -1 | cut -d: -f1 | tr 'a-z' 'A-Z'
  1. 统计/etc目录下以P或p开头的文件个数
# ls -d /etc/[Pp]* | wc -l
  1. 写一个脚本,用for循环实现显示/etc/init.d/functions、/etc/rc.d/rc.sysinit和/etc/fstab各有多少行
for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; dowc -l $fileName
done#!/bin/bash
for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; dolineCount=`wc -l $fileName | cut -d' ' -f1`echo "$fileName: $lineCount lines."
done#!/bin/bash
for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; doecho "$fileName: `wc -l $fileName | cut -d' ' -f1` lines."
done
  1. 写一个脚本,将上一题中三个文件的复制到/tmp目录中;用for循环实现,分别将每个文件的最近一次的修改时间改为2020年3月18号12点40分
for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; docp $fileName /tmpbaseName=`basename $fileName`touch -m -t 201109151327 /tmp/$baseName
done
  1. 写一个脚本, 显示/etc/passwd中第3、7和11个用户的用户名和ID号
for lineNo in 3 7 11; douserInfo=`head -n $lineNo /etc/passwd | tail -1 | cut -d: -f1,3`echo -e "User: `echo $userInfo | cut -d: -f1`\nUid: `echo $userInfo |cut -d: -f2`"
done
  1. 显示/proc/meminfo文件中以大小写s开头的行
# grep "^[sS]" /proc/meminfo
# grep -i "^s" /proc/meminfo
  1. 取出默认shell为非bash的用户
# grep -v "bash$" /etc/passwd | cut -d: -f1
  1. 取出默认shell为bash的且其ID号最大的用户
# grep "bash$" /etc/passwd | sort -n -t: -k3 | tail -1 | cut -d: -f1
  1. 显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行
# grep "^#[[:space:]]\{1,\}[^[:space:]]\{1,\}" /etc/rc.d/rc.sysinit
  1. 显示/boot/grub/grub.conf中以至少一个空白字符开头的行
# grep "^[[:space:]]\{1,\}[^[:space:]]\{1,\}" /boot/grub/grub.conf
  1. 找出/etc/passwd文件中一位数或两位数
# grep --color=auto "\<[0-9]\{1,2\}\>" /etc/passwd
  1. 找出ifconfig命令结果中的1到255之间的整数
# ifconfig | grep -E --color=auto "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
  1. 查看当前系统上root用户的所有信息
# grep "^root\>" /etc/passwd
  1. 添加用户bash和testbash、basher,而后找出当前系统上其用户名和默认shell相同的用户
# grep --color=auto "^\([[:alnum:]]\{1,\}\)\>.*\1$" /etc/passwd
  1. 找出netstat -tan命令执行的结果中以“LISTEN”或“ESTABLISHED”结尾的行
netstat -tan | grep ('\<.*LISTEN.*\>' || '\<.*ESTABLISHED.*\>')
  1. 取出当前系统上所有用户的shell,要求:每种shell只显示一次,且按升序显示
 # cut -d: -f7 /etc/passwd | sort -u
  1. 排名前三热搜

Shell 练习题(一)相关推荐

  1. Linux中srch出现bash,Shell练习题(3)

    (1)查找字母数小于6的单词 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. #! ...

  2. Shell 练习题(三)

    Shell 练习题(三) 1.软链接和硬链接有什么区别 2.判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下 3.对文件test.txt找出行尾结束为小数点的行,并统计行数 4.写一个 ...

  3. Shell练习题(五)

    Shell练习题(五) 1.统计/var/log下的文件个数 2.for循环 3.批量添加用户 4.shell 脚本里的特殊字符 `$(( )).$( ).``与${ }` 5.查找出uid大于100 ...

  4. shell 练习题01:列出使用最多的命令是哪些并且将这些命令输入到chy1.txt中

    需求:列出使用最多的命令是哪些并且将这些命令输入到chy1.txt中 思路:我们的命令都是存在了历史文件/root/.bash_history 这个文件里面,这里需要将用到的命令进行排序 [root@ ...

  5. shell题库选择题_linux操作题及答案 shell练习题

    1 . 用 Shell 编程,判断一文件是不是只读文件,如果是将其拷贝 到 /dev 目录下. 2 .设计一个 shell 程序,添加一个新组为 keji ,然后添加属于这个 组的 30 个用户,用户 ...

  6. shell 练习题02 一个文件里将内容三行显示为一行

    要求: 一个文件里将内容三行显示为一行 思路:是将第二行的内容,第三行的内容依次附加到第一行中,这样三行的内容就能变为一行,如果不够三行自动融为一行,具体如下 [root@chy shell]# ca ...

  7. Hbase shell练习题

    第一大题:namespace的shell操作 1.创建一个命名空间myns,同时设置属性author为自己,time为2020-05-11 create_namespace 'myns', {'aut ...

  8. shell练习题(牛客网15道题)

    文章目录 1.统计文件的行数 2.打印文件的最后5行 3.输出7的倍数 4.输出第5行的内容 5.打印空行的行号 6.去掉空行 7.打印字母数小于8的单词 8.统计所有进程占用内存大小的和 9.统计每 ...

  9. Shell 练习题(二)

    变量 根据变量的生效范围等标准划分下面变量类型: 局部变量:生效范围为当前shell进程:对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效 环境(全局)变量:生效范 ...

最新文章

  1. 51nod 1368:黑白棋 二分图最大匹配
  2. 贝叶斯推断及其互联网应用(二):过滤垃圾邮件
  3. 【Mysql 学习路线图】
  4. Python 基于Python生成短8位唯一id解决方案
  5. Elasticsearch的PHP的API使用(一)
  6. 20155220吴思其 实验2 Windows口令破解
  7. jquery中怎么删除ul中的整个li包括节点
  8. 分布式ID(数据库多主模式,这些知识点你会吗
  9. 算法图解-----十种常用算法
  10. S32K144 S32K148 UDS诊断 BOOTLOADER开发 ISO14229 15765 软件定 基于UDS协议的CAN总线Bootloader设计 具体价格以咨询为主 UDS 诊断
  11. 【Unity3D插件】Alembic插件分享《abc动画文件导入Unity》
  12. 报错error C3872: '0x3000': this character is not allowed in an identifier
  13. android7.0 root教程,小米4S(全网通 安卓7.0)一键ROOT详解教程,看教程ROOT
  14. Freemarker生成word:导出多张图片list、同时导出文字+图片的list
  15. 【Fusion】Conic Modeling
  16. 车载网络技术详解 —— 车载网络系统基础(✨您绝不可错过的呕心力作✨)
  17. JAVA基础03-Object类,常用类,基本的数据结构, Collection常用体系,泛型-泛型通配符
  18. 【EDA Tools】VCS Verdi 联合仿真总结
  19. NodeJS_06_Mysql_Promise_json-server_http-server
  20. 键入1-5输出对应的礼拜天

热门文章

  1. 来了解一下香港公司的离岸豁免-跨境知道
  2. 黑莓z10 android,重生还是毁灭——黑莓Z10使用评测
  3. 基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)
  4. 配置电信网通双线双IP
  5. 作为非技术背景的创始人,你希望找到一位什么样的CTO?
  6. 阿里云HPC助力新制造 | 上汽仿真计算云SSCC 1
  7. 面试官:你期望薪资是多少?能多让你拿几千工资的回答你一定要看
  8. 无法连接到 LAPTOP-O283RBCD。,在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。(已解决)
  9. 解决Anaconda3国内资源下载缓慢、下载不了
  10. sublime左右切换窗口快捷键