幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

40个简单又有效的LinuxShell脚本示例

  历史上,shell一直是类Unix系统的本地命令行解释器。它已被证明是Unix的主要功能之一,并发展成为一个全新的主题。Linux提供了各种功能强大的shell,包括Bash、Zsh、Tcsh和Ksh。这些外壳最令人惊讶的特性之一是其可编程性。创建简单而有效的Linuxshell脚本来处理日常工作非常容易。
  1。HelloWorld
  程序员经常通过学习helloworld程序来学习新语言。这是一个简单的程序,将字符串HelloWorld打印到标准输出中。然后,使用vim或nano等编辑器创建helloworld。sh文件,并将以下行复制到其中。
  !binbash
  echoHelloWorld
  保存并退出文件。接下来,您需要使用以下命令使该文件可执行。
  chmodaxhelloworld。sh
  可以使用以下两个命令中的任何一个来运行此命令。
  bashhelloworld。sh
  。helloworld。sh
  它将打印出传递给脚本内部回显的字符串。
  2。使用echo打印
  echo命令用于在bash中打印信息。它类似于C函数printf,并提供了许多常见选项,包括转义序列和重定向。将以下行复制到名为echo。sh的文件中,并使其可执行,如上所述。
  !binbash
  echoPrintingtext
  echonPrintingtextwithoutnewline
  echoeRemovingspecialcharacters
  运行脚本以查看其功能。e选项用于告诉echo传递给它的字符串包含特殊字符,需要扩展功能。
  3。使用注释
  注释对文档很有用,是高质量代码库的要求。将注释放在处理关键逻辑的代码中是一种常见的做法。要注释掉一行,只需在其前面使用(hash)字符。例如,请查看下面的bash脚本示例。
  !binbash
  Addingtwovalues
  ((sum2535))
  Printtheresult
  echosum
  此脚本将输出数字60。首先,在某些行之前使用检查注释的使用方式。不过,第一行是一个例外。它被称为shebang,让系统知道在运行这个脚本时要使用哪个解释器。
  4。多行注释
  许多人使用多行注释来记录他们的shell脚本。在下一个名为comment。sh的脚本中检查这是如何完成的。
  !binbash
  :
  Thisscriptcalculates
  thesquareof5。
  ((area55))
  echoarea
  注意多行注释是如何放置在内部的:和字符。
  5。While循环
  while循环构造用于多次运行某些指令。查看以下名为while。sh的脚本,以更好地理解此概念。
  !binbash
  i0
  while〔ile2〕
  do
  echoNumber:i
  ((i))
  done
  因此,while循环采用以下形式。
  while〔condition〕
  do
  commands1
  commandsn
  done
  方括号周围的空格是必填的。
  6。For循环
  for循环是另一种广泛使用的bashshell构造,它允许用户高效地迭代代码。下面演示了一个简单的示例。
  !binbash
  for((counter1;counter10;counter))
  do
  echoncounter
  done
  printf
  7。接收用户输入
  !binbash
  echonEnterSomething:
  readsomething
  echoYouEntered:something
  8。If语句
  ifCONDITION
  then
  STATEMENTS
  fi
  只有当条件为真时,才会执行这些语句。fi关键字用于标记if语句的结尾。下面显示了一个快速示例。
  !binbash
  echonEnteranumber:
  readnum
  if〔〔numgt10〕〕
  then
  echoNumberisgreaterthan10。
  fi
  如果通过输入提供的数字大于10,上述程序将仅显示输出。gt表示大于;类似地lt表示小于le表示小于等于;且ge表示大于等于。此外,还需要〔〔〕〕。
  9。使用IfElse进行更多控制
  将else构造与if结合起来,可以更好地控制脚本的逻辑。下面显示了一个简单的示例。
  !binbash
  readn
  if〔nlt10〕;
  then
  echoItisaonedigitnumber
  else
  echoItisatwodigitnumber
  fi
  其他部分需要放在if的动作部分之后和fi之前。
  10。使用AND运算符
  AND运算符允许我们的程序检查是否同时满足多个条件。由AND运算符分隔的所有部分必须为true。否则,包含AND的语句将返回false。查看下面的bash脚本示例,以更好地了解AND的工作原理。
  !binbash
  echonEnterNumber:
  readnum
  if〔〔(numlt10)(num2eq0)〕〕;then
  echoEvenNumber
  else
  echoOddNumber
  fi
  AND运算符由符号表示。
  11。使用OR运算符
  OR运算符是另一个关键的构造,它允许我们在脚本中实现复杂、健壮的编程逻辑。与AND相反,当OR运算符的任一操作数为真时,由OR运算符组成的语句返回真。仅当由OR分隔的每个操作数为假时,它才返回假。
  !binbash
  echonEnteranynumber:
  readn
  if〔〔(neq15neq45)〕〕
  then
  echoYouwon
  else
  echoYoulost!
  fi
  这个简单的示例演示了OR运算符如何在Linuxshell脚本中工作。只有当用户输入数字15或45时,它才会宣布用户为获胜者。符号表示OR运算符。
  12。使用Elif
  elif语句代表elseif,并为实现链逻辑提供了一种方便的方法。通过评估以下示例,了解elif的工作原理。
  !binbash
  echonEnteranumber:
  readnum
  if〔〔numgt10〕〕
  then
  echoNumberisgreaterthan10。
  elif〔〔numeq10〕〕
  then
  echoNumberisequalto10。
  else
  echoNumberislessthan10。
  fi
  上面的程序是不言自明的,所以我们不会逐行剖析它。相反,更改脚本中的变量名称和值等部分,以检查它们如何一起工作。
  13。case条件
  。switch构造是Linuxbash脚本提供的另一个强大功能。它可以用于需要嵌套条件的地方,但不希望使用复杂的ifelseelif链。看看下一个例子。
  !binbash
  echonEnteranumber:
  readnum
  casenumin
  100)
  echoHundred!!;;
  200)
  echoDoubleHundred!!;;
  )
  echoNeither100nor200;;
  esac
  条件写在case和esac关键字之间。)用于匹配除100和200以外的所有输入。
  14。命令行参数
  在许多情况下,直接从命令shell获取参数是有益的。下面的示例演示了如何在bash中执行此操作。
  !binbash
  echoTotalarguments:
  echoFirstArgument1
  echoSecondArgument2
  运行此脚本时,在其名称后添加两个附加参数。我将其命名为test。sh,调用过程概述如下。
  。test。shHeyHowdy
  因此,1、用于访问第一个参数;2、用于访问第二个参数,依此类推。最后,3、用于获取参数总数。
  15。使用名称获取参数
  下面的示例显示了如何获取带有名称的命令行参数。
  !binbash
  forargin
  do
  index(echoargcutf1d)
  val(echoargcutf2d)
  caseindexin
  X)xval;;
  Y)yval;;
  )
  esac
  done
  ((resultxy))
  echoXYresult
  将此脚本命名为test。sh,并按如下所示调用它。
  。test。shX44Y100
  它应该返回XY144。这里的参数存储在中,脚本使用Linuxcut命令获取它们。
  16。连接字符串
  字符串处理对于广泛的现代bash脚本来说非常重要。值得庆幸的是,它在bash中更加舒适,并允许以更精确、简洁的方式实现这一点。请参见下面的示例,了解bash字符串连接。
  !binbash
  string1Ubuntu
  string2Pit
  stringstring1string2
  echostringisagreatresourceforLinuxbeginners。
  17。字符串截取
  与许多编程语言不同,bash不提供任何用于剪切字符串部分的内置函数。然而,下面的示例演示了如何使用参数展开来实现这一点。
  !binbash
  StrLearnBashCommandsfromUbuntuPit
  subStr{Str:0:20}
  echosubStr
  该脚本应打印出学习Bash命令作为其输出。参数展开形式为{VARNAME:S:L}。这里,S表示起始位置,L表示长度。
  18。使用cut做截取
  可以在脚本中使用Linuxcut命令来截取字符串的一部分,也就是子字符串。下一个示例显示了如何做到这一点。
  !binbash
  StrLearnBashCommandsfromUbuntuPit
  subStr{Str:0:20}
  subStr(echoStrcutdf13)
  echosubStr
  19。添加两个值
  在Linuxshell脚本中执行算术运算非常容易。下面的示例演示了如何从用户接收两个数字作为输入并将它们相加。
  !binbash
  echonEnterfirstnumber:
  readx
  echonEntersecondnumber:
  ready
  ((sumxy))
  echoTheresultofadditionsum
  如您所见,在bash中添加数字相当简单。
  20。添加多个值
  您可以使用循环获取多个用户输入并将其添加到脚本中。以下示例显示了这一点。
  !binbash
  sum0
  for((counter1;counter5;counter))
  do
  echonEnterYourNumber:
  readn
  ((sumn))
  echoncounter
  done
  printf
  echoResultis:sum
  但是,省略(())将导致字符串串联而不是相加。所以,在你的程序中检查类似的情况。
  21。Bash中的函数
  与任何编程方言一样,函数在Linuxshell脚本中扮演着重要角色。它们允许管理员创建自定义代码块以供频繁使用。下面的演示将概述函数如何在Linuxbash脚本中工作。
  !binbash
  functionAdd()
  {
  echonEnteraNumber:
  readx
  echonEnteranotherNumber:
  ready
  echoAdiitionis:((xy))
  }
  Add
  这里我们像以前一样添加了两个数字。但在这里,我们使用了一个名为Add的函数来完成这项工作。因此,每当您需要再次添加时,只需调用此函数,而不必再次编写该部分。
  22。具有返回值的函数
  最神奇的功能之一是允许数据从一个函数传递到另一个函数。它在各种场景中都很有用。查看下一个示例。
  !binbash
  functionGreet(){
  strHelloname,whatbringsyoutoUbuntuPit。com?
  echostr
  }
  echowhatsyourname?
  readname
  val(Greet)
  echoeval
  这里,输出包含从Greet()函数接收的数据。
  23。从Bash脚本创建目录
  使用shell脚本运行系统命令的能力使开发人员的工作效率大大提高。下面的简单示例将向您展示如何在shell脚本中创建目录。
  !binbash
  echonEnterdirectoryname
  readnewdir
  cmdmkdirnewdir
  evalcmd
  该脚本只需调用标准shell命令mkdir,并在仔细查看时将目录名传递给它。这个程序应该在文件系统中创建一个目录。您还可以传递命令以在backticks()内部执行,如下所示。
  mkdirnewdir
  24。确认存在后创建目录
  如果当前工作目录中已包含同名文件夹,则上述程序将无法运行。例如,下面的程序将检查是否存在名为dir的文件夹,如果找不到,则只创建一个。
  !binbash
  echonEnterdirectoryname
  readdir
  if〔ddir〕
  then
  echoDirectoryexists
  else
  mkdirdir
  echoDirectorycreated
  fi
  使用eval编写此程序以提高bash脚本编写技能。
  25。读取文件
  Bash脚本允许用户非常有效地读取文件。下面的示例将展示如何使用shell脚本读取文件。首先,创建一个名为editors。txt的文件,其中包含以下内容。
  1。Vim
  2。Emacs
  3。ed
  4。nano
  5。Code
  此脚本将输出上述5行中的每一行。
  !binbash
  fileeditors。txt
  whilereadline;do
  echoline
  donefile
  26。删除文件
  以下程序将演示如何在Linuxshell脚本中删除文件。程序将首先要求用户提供文件名作为输入,如果文件名存在,则将其删除。Linuxrm命令在此处执行删除操作。
  !binbash
  echonEnterfilename
  readname
  rminame
  让我们输入editors。txt作为文件名,并在要求确认时按y。它应该删除该文件。
  27。附加到文件
  下面的shell脚本示例将向您展示如何使用bash脚本将数据附加到文件系统上的文件。它向早期的editors。txt文件添加了一行。
  !binbash
  echoBeforeappendingthefile
  cateditors。txt
  echo6。NotePadeditors。txt
  echoAfterappendingthefile
  cateditors。txt
  现在您应该注意到,我们直接从Linuxbash脚本使用日常终端命令。
  28。测试文件存在
  下一个shell脚本示例显示如何检查bash程序中文件的存在。
  !binbash
  filename1
  if〔ffilename〕;then
  echoFileexists
  else
  echoFiledoesnotexist
  fi
  我们直接从命令行传递文件名作为参数。
  29。从Shell脚本发送邮件
  从bash脚本发送电子邮件非常简单。下面的简单示例将演示一种从bash应用程序执行此操作的方法。
  !binbash
  recipientadminexample。com
  subjectGreetings
  messageWelcometoUbuntuPit
  mailssubjectrecipientmessage
  它将向收件人发送包含给定主题和消息的电子邮件。
  30。解析日期和时间
  下一个bash脚本示例将向您展示如何使用脚本处理日期和时间。同样,Linuxdate命令用于获取必要的信息,我们的程序执行解析。
  !binbash
  yeardateY
  monthdatem
  daydated
  hourdateH
  minutedateM
  seconddateS
  echodate
  echoCurrentDateis:daymonthyear
  echoCurrentTimeis:hour:minute:second
  运行此程序以了解其工作原理。此外,尝试从终端运行date命令。
  31。sleep命令
  sleep命令允许shell脚本在指令之间暂停。它在许多场景中都很有用,例如执行系统级作业。下一个示例显示了shell脚本中的sleep命令。
  !binbash
  echoHowlongtowait?
  readtime
  sleeptime
  echoWaitedfortimeseconds!
  该程序暂停最后一条指令的执行,直到time秒,在本例中,用户提供了这一点。
  32。wait命令
  wait命令用于暂停Linuxbash脚本中的系统进程。查看下面的示例,详细了解这在bash中的工作方式。
  !binbash
  echoTestingwaitcommand
  sleep5
  pid!
  killpid
  waitpid
  echopidwasterminated。
  33。显示上次更新的文件
  有时,您可能需要为某些操作查找最后更新的文件。下面的简单程序向我们展示了如何在bash中使用awk命令执行此操作。它将列出当前工作目录中最近更新或创建的文件。!binbash
  lslrtgrepawkEND{printNF}
  为了简单起见,我们将避免在本示例中描述awk的功能。相反,您可以简单地复制此代码来完成任务。
  34。添加批处理扩展
  下面的示例将对目录中的所有文件应用自定义扩展名。创建一个新目录,并将一些文件放在其中以供演示。我的文件夹共有五个文件,每个文件名为test,后跟(04)。我已将此脚本编程为在文件末尾添加(。UP)。您可以添加所需的任何扩展名。
  !binbash
  dir1
  forfileinls1
  do
  mvfilefile。UP
  done
  首先,不要从任何常规目录尝试此脚本;相反,请从测试目录运行此命令。此外,您需要提供文件的目录名作为命令行参数。对当前工作目录使用句点(。)。
  35。打印文件或目录的数量
  下面的Linuxbash脚本查找给定目录中存在的文件或文件夹的数量。它使用Linuxfind命令来执行此操作。首先,需要传递目录名以从命令行搜索文件。
  !binbash
  if〔d〕;then
  echoFilesfound:(findtypefwcl)
  echoFoldersfound:(findtypedwcl)
  else
  echo〔ERROR〕Pleaseretrywithanotherfolder。
  exit1
  fi
  如果指定的目录不可用或存在权限问题,程序将要求用户重试。
  36。清理日志文件
  下一个简单的示例演示了在现实生活中使用shell脚本的简便方法。该程序只需删除varlog目录中的所有日志文件。您可以更改保存此目录的变量以清理其他日志。
  !binbash
  LOGDIRvarlog
  cdLOGDIR
  catdevnullmessages
  catdevnullwtmp
  echoLogscleanedup。
  请记住以root身份运行此Linuxshell脚本。
  37。使用Bash备份脚本
  Shell脚本提供了一种强大的方法来备份文件和目录。以下示例将备份过去24小时内修改的每个文件或目录。该程序使用find命令执行此操作。
  !binbash
  BACKUPFILEbackup(datemdY)
  archive{1:BACKUPFILE}
  find。mtime1typefprint0xargs0tarrvfarchive。tar
  echoDirectoryPWDbackedupinarchivefilearchive。tar。gz。
  exit0
  备份过程成功后,它将打印文件和目录的名称。
  38。检查你是否是root用户
  下面的示例演示了通过Linuxbash脚本快速确定用户是否为root用户的方法
  !binbash
  ROOTUID0
  if〔UIDeqROOTUID〕
  then
  echoYouareroot。
  else
  echoYouarenotroot
  fi
  exit0
  此脚本的输出取决于运行它的用户。它将根据UID匹配根用户。
  39。从文件中删除重复行
  文件处理需要相当长的时间,并在许多方面阻碍了管理员的工作效率。例如,在文件中搜索重复项可能会成为一项艰巨的任务。幸运的是,您可以使用一个简短的shell脚本来完成此操作。
  !binsh
  echonEnterFilename
  readfilename
  if〔ffilename〕;then
  sortfilenameuniqteesorted。txt
  else
  echoNofilenameinpwd。。。tryagain
  fi
  exit0
  上面的脚本逐行遍历文件并删除所有重复的行。然后,它将新内容放入新文件,并保持原始文件的完整性。
  40。系统维护
  我经常使用一个小的Linuxshell脚本来升级我的系统,而不是手动升级。下面的简单shell脚本将向您展示如何做到这一点。
  !binbash
  echoe(datedmYT)Startingwork
  aptgetupdate
  aptgetyupgrade
  aptgetyautoremove
  aptgetautoclean
  echoe(dateT)ScriptTerminated
  该脚本还处理不再需要的旧包。您需要使用sudo运行此脚本,否则它将无法正常工作。

皮衣怎么保养nbsp防潮防霉更要防水人人都很喜欢穿皮衣,不单单是因为它能保暖,更重要的是它能给人自信,它能让穿着者变得更有气质,让女性变得更加帅气。不过它的保养非常重要,要不然来年就不能穿了。皮衣一直都是一……和服怎么穿nbsp教你正确穿戴这种服装和服是一种日本的服装,穿在身上看上去象是中国古代的服装。这种服装代表着日本的文化和历史。对于我们中国人对于它的穿法比较陌生,我们可以了解一下它的穿法。和服一看就知道是一件……头痛是如何引起的?头痛是临床常见的症状,通常分为偏头痛、前额头痛、颠顶头痛、枕后头痛四种类型。发病年龄常见于青年、中年和老年人。近几年临床发现少年头痛的发病率呈上升趋势。中医学对头痛的认识……K3次列车中华第一列车看过囧妈的朋友都知道,我国有一条直通莫斯科的国际列车,因为它是新中国成立后第一条通往国际的列车,所以也被称为中华第一车每周三K3从北京出发,总共要历时127小时50分钟,……a字裙的裁剪方法大放送nbsp选对合适短裙让你轻松成女神对于女生来说,光是裙子这一样单品就有着无数的选择,而其中A字裙因为自己独特的优势和美感深受众多女性网友的喜爱,今天小编就来为大家揭秘A字裙的裁剪方法。一直以来,裙子对于女……新雪纺衫街拍nbsp教你夏日巧搭雪纺做个美女就要好好的打扮一番,没有丑女人只有懒女人了,雪纺衫是个潮款很多女性的,像仙女一样,但是怎么搭配呢,今天我们就来学习下雪纺衫搭配街拍吧。这两天气温在升高,很多美女都……春晚三次联排张小斐韩剧女主,贾玲绿豹纹圆乎乎,邓超似老大爷随着春节的悄然临近,央视春晚的节目单也成了大家争相猜测议论的事情。1月25日的央视春晚第三次联排,不少明星纷纷到场,星味儿扑面而来。好多人更是把联排的上下班当成了秀……潮人如何练出修长身材nbsp4种造型给你参考潮人如何练出修长身材,4种时尚造型给你参考。每天坚持锻炼的女生,为的就是能够拥有好身材,然而通过着装上的搭配,能够轻易营造出独特的美,修饰出好看造型,每天穿得好看会增添好心情。……衬衫女长袖韩版淑女风nbsp干练修身显瘦穿法春节过后回归职场,穿得干练修身的才是王道!衬衫女长袖韩版淑女风,显瘦穿法值得学习。通勤装中少不了衬衫的搭配,搭配笔直的西裤,又或者搭配学院风的半身裙,打造出利索一些的造型。当你……小清新街拍旅行着装nbsp舒适地穿出个人气质小清新街拍旅行着装,舒适地穿出个人气质。冬日旅游如何穿衣搭配才好看?笔直超长毛呢外套穿出修身时尚气势,宽松柔软的毛衣穿出唯美柔和美,小清新感觉的碎花裙带出轻盈的感觉,各种单品各……黑客帝国矩阵重启科幻IP为何沦为怀旧动作片吴晨如果说二十年前《黑客帝国》三部曲是基于Web1。0的初心对未来虚拟实境的超前想象,呈现出一种超级人工智能控制人类的绝望前景,混淆虚拟和现实的体验也让红药丸成为经典;二……街拍包臀短裙图片欣赏nbsp婀娜多姿显身材每次在街上看到穿着紧身裙的时尚MM都会忍不住多看两眼,人的审美观其实都一样,漂亮的事物谁都愿意去欣赏。下面就是小编为大家准备的街拍紧身超短包臀裙图片。相信大家和小编一样,……
<<<<<<>>>>>>
有一种苦叫凉茶很多人不太理解,或者很少有喝凉茶的习惯,或者为什么要喝凉茶的?因为在我们广东地区,广东处于岭南地区,南濒大海,属于亚热带气候,天气炎热,多雨潮湿,干燥自古以来是瘴疠之地。……湖南三大失败酒从风靡一时到无人问津,还有翻身的机会吗说到名酒,大家第一时间想到的肯定是茅台酒。毕竟它是白酒行业的龙头老大,地位口感都很不错。但曾经其他省份也有可以并肩茅台的好酒,以湖南省居多,但最终都跌落神坛,无人问津,例如湖南……一日三马马拉松跑进永川合川垫江来源:重庆日报网垫江三月二十六日,垫江牡丹马拉松比赛现场。特约摄影向晓秋视觉重庆合川3月26日,合川区人民广场,2023重庆合川钓鱼城半程马拉松欢乐开跑。记者齐岚森……宜春市各区县GDP高安市领先袁州区,万载县第6,靖安县第9宜春市,这几年的发展速度很快。这离不开其锂矿资源的开发,又碰上了全球大宗商品上涨的大环境,在2022年中,宜春市以8。83的名义增速实现了3473。12亿元的GDP总量,处于全……富士康造车不顺小挫折还是大困难?据界面新闻,日前,富士康旗下位于俄亥俄州洛兹敦的汽车工厂产线短暂停滞。因旗下的电动皮卡成本控制问题,以及在低温天气中会出现动力中断故障,洛兹敦汽车发声明要求富士康暂停生产该车型……甲流预防指南儿童版甲型H1N1流感是一种高度传染的病毒感染,特别容易在学校和托儿所等集体环境中传播。儿童是甲流的高危人群,因此采取预防措施是非常重要的。以下是一些预防甲流的方法:保持良好的……官方中超相关俱乐部需在4月30日前向足协提交亚冠准入材料各相关俱乐部、会员协会:根据亚足联要求和整体工作部署,中国足球协会将于近期开展20232024赛季亚洲冠军联赛(以下简称为亚冠联赛)准入工作,现将具体事宜通知如下:……亚军也不遗憾,35岁老将马龙,还没有被时间打败3月19日晚,乒乓球WTT新加坡大满贯男单决赛,随着马龙的回球下网,马龙不敌樊振东屈居亚军。对于马龙来说这并不是一个不可接受的成绩,要知道他已经是一位即将年满35岁的老将了。何……中北大学第三代半导体专精特新产业学院获批建设运行据了解,日前,工业和信息化部中小企业发展促进中心来函,正式批准中北大学启动专精特新产业学院建设工作,建设方向为第三代半导体。标志着该校在支撑山西省半导体产业集群发展和校企产教融……师致父母亲一hr父母皆盼孩成才,择校寻师细安排。需知自已乃首师,品德言行陶冶孩。二hr父母人生第一师,点点滴滴启儿知。一言一行需慎重,垂范立好领……刘国梁被批,因与乒坛大佬看台喝酒,小题大做了,国际赛场很常见WTT新加坡大满贯圆满结束了。WTT世界乒联在官网分享了几张照片。新加坡大满贯最后一天进行了男女单打的决赛。中国乒协主席、WTT世界乒联董事会主席、国际乒联第一副主席刘国……小米手机推荐全是高性能性价比机型,口碑很不错,低至1769元如果您喜欢,可以点击上面的关注二字。后续会为您提供更多有价值的内容。今天分享:小米手机推荐:全是高性能性价比机型,口碑很不错,低至1769元第一款:红米k40s……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网