• 浅谈Linux系统中su和su -的区别

    浅谈Linux系统中su和su -的区别

    su和su-有什么区别?当我在工作中从普通用户转到根用户时,每个人都是即时的,每个人都习惯了这些操作。我从未使用过Su,也没有经过任何差异测试。今天当我读一本书时,我发现有一个直接使用SI的命令。我突然想到了两者之间的区别。浏览商店时,我对这方面的了解并不多。在没有知识的情况下,恐怕无法使用实际命令来发现差异。接下来,我们从命令示例开始测试。首先以普通用户身份登录Santo Linux 7.3系统,使用whoami命令确认该用户为lxt,然后使用su命令进行切换,输入root用户的密码,输入root并使用Homi检查现有用户是,然后env |使用命令egrep“ User | Mail | PWD | LOGNAME”显示当前用户信息。在切换之前,这些用户中的许多人都有信息。似乎有问题。我们启动了root用户,然后又回到了lxt的普通用户。 我们再使用su - 或者su -root切换到root用户,使用whoami查看,当前用户为root用户,我们再用env|egrep "USER|MAIL|PWD|LOGNAME"查看相关信息,都是root用户的信息,这次我们真正地切换到了root用户。 su命令,只是切换了root的身份,但是shell环境、环境变量、工作目录等还都是普通用户的shell;su -命令,完全的切换到root用户,shell、环境变量等都是root用户,包括工作目录。如果不知道区别,我们使用su进行切换,在生产环境中肯定会造车无法预知的问题。 我们切换用户时请使用 su - 用户,可以切换到“用户”,包括root用户。

    时间:2020-05-19 关键词: Linux su su-

  • 浅谈Linux发行版本网络接口及配置工具

    浅谈Linux发行版本网络接口及配置工具

    网络接口代表操作系统中的网络硬件设备,网络接口通常使用Linux操作系统中的工具进行配置,接下来小编将为大家介绍一下网络配置的工具。 在安装 Linux 发行版本时。需要配置的网络,对一般人来说配置一个的活动eth0就够用了,但对网络需求不断改变的用户,所需要的配置就要改变。 1.手动修改配置文件 手动配置是最直接的方式,熟练的Linux用户对网络的配置更喜欢手动配置,因为手动配置有很多优点 (1)配置速度快,针对需要的配置项配置,减少无用项的浪费; (2)能使用配置命令的高级特性: (3)能更深入地了解系统配置是如何进行的,便于配置文件的维护和找到系统故障; (4)无须重新启动 2.使用Linux命令 (1)ifconfig是查看网卡的信息 Interface是可选项,如果不加此项,则显示系统中所有网卡的信息。如果添加此选项则显示所指定的网卡信息。 eth0:表示第一块网卡,其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址。 lo:是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。 (2)ifconfig配置虚拟网络接口 有时为了满足不同的需要还需要配置虚拟网络接口,比如用不同的IP地址来架设运行多个HTTP服务器,就要用到虚拟地址。 虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的eth0:0、eth0 :1、eth0 :2等。当然也可以为eth1指定多个IP地址,也就是eth1:0、eth1:1、eth1:2……以此类推。

    时间:2020-05-19 关键词: Linux 网络接口 eth0

  • Linux系统下tomcat开机自启动教程

    Linux系统下tomcat开机自启动教程

    在公司的服务器可以使用Santos系统之前,购买了Ubuntu云服务器。 突然发现引入Tomcat之后,Ubuntu服务器配置有所不同。 centos配置tomcat开机自启动 直接修改/etc/rc.d/rc.local文件,添加如下内容: export JAVA_HOME=/root/soft/jdk7 export CLASSPATH=.:$JAVA_HOME/lib exprot PATH=$PATH:$JAVA_HOME/bin /root/soft/tomcat8/bin/startup.sh ubuntu配置tomcat开机自启动 1、查看操作系统信息(uname -a) 2、 进入tomcat下的bin目录 3、复制catalina.sh到/etc/init.d目录下,并重命名 cp /usr/local/tomcat8/bin/catalina.sh /etc/init.d mv /etc/init.d/catalina.sh tomcat 4、编辑配置信息(在首行位置添加Java环境变量) vi /etc/init.d/tomcat CATALINA_HOME=/usr/local/tomcat8 JAVA_HOME=/usr/local/java/jdk8 5、设置权限 chmod 755 /etc/init.d/tomcat 6、测试启动服务和停止服务 启动服务命令: service tomcat start 关闭服务命令: service tomcat stop 7、添加到自启服务命令 update-rc.d –f tomcat defaults

    时间:2020-05-19 关键词: Linux centos tomcat

  • Linux系统中MariaDB数据库的安装教程

    Linux系统中MariaDB数据库的安装教程

    一、MySQL数据库概况 MySQL是由瑞典MySQL AB开发的小型关系型开源数据库管理系统,MySQL目前广泛用于Internet上的中小型网站。由于其规模小,速度快和总体拥有成本低,尤其是其开放源代码功能,许多中小型网站选择MySQL作为其网站数据库来降低网站总体拥有成本。 二、应用场景 以下四个开源免费软件可以建立起一个稳定免费的网站系统。分别是 Linux操作系统 Apache作为Web服务器 MySQL作为数据库 PHP/Perl/Python作为服务器端脚本解释器 这四个软件被业界合称为LAMP。 三、MariaDB分支数据库 MariaDB数据库管理系统是MySQL的一个分支,是由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。为避免MySQL被闭源的可能,Michael Widenius主导开发了MariDB,MariaDB名称来自Michael Widenius的女儿Maria的名字。主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 四、在Linuxt系统中安装MariaDB 1、配置Centos系统的yum源为阿里云yum源。 (1)打开Centos的yum文件夹,输入命令 cd /etc/yum.repos.d/ (2)下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo (3)运行 yum makecache 生成缓存 2、安装MariaDB yum install mariadb-server.x86_64 –y 3、MariaDB的启动与停止命令 systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart mariadb #重启MariaDB systemctl enable mariadb #设置开机启动 4、查看MariaDB的状态 systemctl status mariadb

    时间:2020-05-19 关键词: Linux mysql mariadb

  • 教你如何利用samba实现windows和linux文件共享

    教你如何利用samba实现windows和linux文件共享

    小编环境中有几台Linux服务器,下载文件进行上传时,通常使用ssh。 但是,下载文件的速度很慢,您每次都需要登录ssh。 您是否在考虑是否可以舒适,快速地使用Windows? Samba是在Linux和UNIX系统上实现SMB协议的免费软件。 安装 sudo apt-get install sambakali下已经默认安装,直接使用即可。修改samba的配置文件sudo vi /etc/samba/smb.conf 添加下面内容 [share]path=/home/priess #文件共享的路劲public=no #禁止匿名访问writable=yes # 写入权限valid user=priess #登录用户名 注意登录的用户名必须为系统中存在的用户名,如root 给用户名添加密码 sudo smbpasswd -a priess填坑出现Failed to add entry for user 说明你的用户名在系统中不存在,需要添加一个用户名。列出现有的Samba用户列表: pdbedit -w -L重启samba服务 service smbd restart和windows连接 在windows->计算机,点击映射网络驱动器;输入\192.168.1.102\share(请根据自己的ip和共享文件夹标识调整)。此时,就可以在windows上看到linux共享的文件夹了。

    时间:2020-05-13 关键词: Windows Linux samba

  • 浅谈Linux的定时任务

    浅谈Linux的定时任务

    crond是一个守护程序,用于在Linux下定期执行某些任务或等待某些事件。 像Windows中计划的任务一样,此服务工具默认情况下是在安装操作系统并自动启动后安装的。 crond进程,即crond进程,每分钟定期检查是否需要完成一项任务,并且在需要完成一项工作时会自动执行该任务。 crontab -e 编辑定时任务 crontab -l 列出定时任务 crontab -r 删除定时任务 **  *  *  *  command 分 时 日 月 周 命令 除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/" 代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。 几个例子: 1.每天早上6点 0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron 把任何输出都email到root的信箱了。 2.每两个小时 0 */2 * * * echo "Have a break now." >> /tmp/test.txt 3.晚上11点到早上8点之间每两个小时和早上八点 0 23-8/2,8 * * * echo "Have a good dream" >> /tmp/test.txt 4.每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 command line 实现秒级执行任务: */1 * * * * sleep 3 && echo "goodmorning" >> /test/a.txt */1 * * * * sleep 6 && echo "goodmorning" >> /tess/a.txt */1 * * * * sleep 9 && echo "goodmorning" >> /test/a.txt */1 * * * * sleep 12 && echo "goodmorning" >> /test/a.txt

    时间:2020-05-13 关键词: Linux crontab crond

  • 教你如何在Linux系统安装软件

    教你如何在Linux系统安装软件

    与Windows相比,Linux安装程序更为复杂,许多用户需要root才能安装它。 常规安装方法如下所示。 源码安装rpm包安装yum安装 (RedHat、CentOS)apt-get安装 (debian,ubuntu)源码安装 以安装gcc为例,登陆https://gcc.gnu.org/,下载自己想要的版本的gcc安装包上传gcc-4.1.2.tar.gz到Linux服务器任意目录,解压解压目录执行shell命令configuration解压目录执行shell命令make install优点是安装目录,软件版本等可以随心所欲的配置。同一个安装包可以在任意版本的Linux进行安装。 缺点是安装的门槛较高,配置复杂,不同软件配置项目不同。安装容易失败。安装成功有时也会对原系统有破坏。 rpm包安装 常用命令参数 查看 rpm -qa 安装 rpm -ivh 包名 卸载 rpm -e 包名 http://rpm.pbone.net/是一个搜索rpm包的网站,搜索框里查找 出现搜索结果 点击第一个结果进入详情界面,可以看到rpm包的具体信息,包括依赖以及包里内容 优点是安装时无需配置,可以选择版本。 缺点是安装包的依赖关系需要人工维护,安装A发现依赖B,安装B发现依赖C,有时也很考验耐心。 安装gdb为例 确定依赖关系gcc -> g++ -> gdb,gdb依赖g++,g++依赖gcc gcc rpm -ivh cpp-4.1.2-42.el5.i386.rpm rpm -ivh kernel-headers-2.6.18-92.el5.i386.rpm rpm -ivh glibc-headers-2.5-24.i386.rpm rpm -ivh glibc-devel-2.5-24.i386.rpm rpm -ivh libgomp-4.1.2-42.el5.i386.rpm rpm -ivh gcc-4.1.2-42.el5.i386.rpm g++ rpm -ivh libstdc++-devel-4.1.2-48.el5.i386.rpm rpm -ivh gcc-c++-4.1.2-48.el5.i386.rpm gdb rpm -ivh gdb-7.0.1-23.el5.i386.rpm 按顺序安装完上面眼花缭乱的包后,才算安装完成。 rpm包命名规则 gcc-c++-4.1.2-48.el5.i386.rpm name-version -arch(.src).rpm name: 软件包名称 version: 带有主、次和修订的软件包版本 arch: 发行商版本,fc、el、mga、tr……硬件平台,硬件平台包括了:i386、i486、i586、i686、x86_64、ppc、sparc、alpha src: 源代码包 YUM 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件。 yum install gdb 优点是自动管理依赖关系。 缺点是需要连接公共网络,安装的是指定服务器上的最新版本。 apt-get apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。 apt-get install gdb

    时间:2020-05-13 关键词: Linux rpm yum

  • 教你如何将三星Galaxy S6和S6 Edge更新为Android Oreo

    教你如何将三星Galaxy S6和S6 Edge更新为Android Oreo

    三星在三月份发布了Galaxy S6和S6 Edge。 二者是旗舰产品。 GalaxyS6对为Galaxy S系列带来了新的设计,这是三星首款玻璃和金属智能手机。 在此之前,三星手机是用塑料制成的,甚至旗舰手机也遭到了严厉批评。 尽管采用了Galaxy S6 Duo的新设计,但它们仍缺乏对microSD卡、防水性和可更换电池的支持。 自从Galaxy S6停产以来已经20个月了。但是,如果您拥有除S6 Edge +之外的其中一部Galaxy S6设备,那么我们对您来说是个好消息。您现在可以在设备上品尝到Android Oreo的甜美。但是,您必须在手机上安装解锁的引导程序和自定义恢复。 在继续该过程之前,让我们回顾一下Galaxy S6 / S6 Edge的规格。

    时间:2020-05-13 关键词: edge Android galaxy s6 oreo

  • 教你如何配置Linux系统中的本地yum源

    教你如何配置Linux系统中的本地yum源

    使用rpm命令安装软件时,关键是RPM软件包之间的依赖关系。 在安装RPM软件包时,系统可能会询问该软件包是否依赖于其他软件包。 也就是说,您应该安装它。 仅当软件取决于软件包时,才能安装此软件包。 该软件所依赖的软件包可能依赖于其他软件包,这使得使用RPM安装软件很麻烦。 yum是rpm的改进版,使用yum可以自动帮助寻找与要安装软件有依赖关系的所有安装包,并将所有相关安装包一次性安装,从而解决了rpm所面临的软件包依赖问题。要使用yum进行软件管理,必须配置yum安装源。yum安装源可以是本地安装源,也可以是网络安装源,今天我们来学习一下本地安装源的配置方法。 一、将安装光盘挂载到能够访问的目录。 [root@localhost ~]# mount /dev/cdrom /mnt #将光盘挂载到/mnt目录下 [root@localhost ~]# cd /etc/yum.repos.d/ #进入到yum安装源配置文件目录/etc/yum.repos.d/ [root@localhost yum.repos.d]# vim dvd.repo #新建一个本地yum源配置文件dvd.repo,注意一定以repo为文件后缀。 在vim中输入i进入插入模式,并在文件中输入以下内容: [dvd] name=dvd      #安装源名称 baseurl=file:///mnt  #安装源路径为/mnt,file://表示本地文件系统 enable=1      #启用该安装源 gpgcheck=0     #不进行安装源校验 按ESC退回到编辑模式,输入“:wq”保存并退出vim。 yum会根据配置文件的设置,到/mnt目录下查找软件安装包,因此必须确保光盘被正确挂载在/mnt目录下。 二、使用本地yum源安装软件 [root@localhost ~]# yum clean all #清理软件源 [root@localhost ~]#yum list | grep telnet #查看系统中与telnet有关的软件的安装情况 [root@localhost ~]# yum install telnet* #安装所有以telnet开始的rpm软件安装包,并解决其依赖关系 yum会检查要安装软件的依赖关系,并找出有依赖关系的所有安装包,然后给出是否安装的提示,输入y后所有软件将自动安装。如果希望系统默认自动安装,不需要用户手动确认,需要在安装命令中加入“-y”参数,表示默认安装为yes。即:[root@localhost ~]# yum install telnet* -y 三、使用yum查询软件是否安装 [root@localhost ~]# yum list | grep telnet #查询与telnet相关软件是否安装 查询到时两个已安装软件,即telnet客户端和telnet服务器端,其中最后的@dvd表示由dvd安装源进行了安装,如果没有@表示dvd安装源中有该软件,但还未安装。 三、使用yum删除软件 [root@localhost ~]# yum remove telnet* -y #删除所有以telnet开始的已安装软件包,不需要手动确认

    时间:2020-05-12 关键词: Linux rpm yum

  • 浅谈Linux与Unix之间的历史关系

    浅谈Linux与Unix之间的历史关系

    在本文中,小编不打算和大家讨论Linux的技术问题,而是向大家介绍Linux的历史以及Linux与Unix操作系统之间的关系。 Unix和BSD 说到Linux,我们首先要了解Unix。 Unix是一种在AT&T贝尔实验室已经存在很长时间的操作系统。该项目由两位著名的计算机科学家Ken Thompson和Dennis Ritchie领导。 Unix的正式开发始于1969年的夏天,Unix的第一个版本于1971年3月发布,随后的第二个版本于1972年发布。 如果你在Linux机器上或MacOS上输入date命令,你会得到一个名为Unix时间戳的数字。这个数字是自1970年1月1日00:00:00起的秒数。为什么是1970年1月1日呢?现在你应该知道答案了,那时Unix正处于开发过程中。 Ken Thompson和Dennis Ritchie创建了B语言,这是Unix早期版本中支持的编程语言。然后,在1972年,里奇(Ritchie)重写了B语言,对它进行了更好的改进,成为了C语言,这种语言在今天仍然非常流行。后来的大多数Unix组件都是用C编写的。 在20世纪70年代后期,AT&T与教育机构和外部商业组织共享了Unix,从而导致了许多不同版本Unix的诞生。其中最突出的是由加州大学伯克利分校的计算机系统研究小组构建的教育版本。此版本被广泛称为Berkeley Software Distribution,即BSD。 最初,BSD是建立在Unix设计和代码库的基础上,但是后来,Unix和BSD的版本变得越来越有特色,导致了Unix BSD版本和AT&T代号为System V的Unix版本之间的“标准竞争”。最终,胜利属于SystemV。后来的BSD版本使System V更接近于学习,并纳入了公认的普遍接受的标准。 随着FreeBSD、NetBSD和OpenBSD等开源项目的出现,BSD分支的历史发展告一段落。BSD的最终版本于1995年推出。Unix的最终版本是1989年发布的Unix 10版本,是由Bell Laps开发的。 尽管作为Unix的官方版本和BSD很久以前就停止了开发,但是目前许多操作系统(从闭源到开源)都是基于这两个分支开发的。 最著名和最成功的商业版本可能是苹果的MacOS。目前iOS、watchOS和tvOS系统以及其他苹果操作系统都基于BSD平台。MacOS也是少数几个被认为是类UNIX的操作系统之一。 GNU 在Unix的发展过程中,1983年发生了一件重要的事情,这是后来发生剧变的前提。 1983年9月,Richard Stallman宣布引入GNU计划(GNU代表的是GNU,不是Unix) GNU项目的目标是创建一个自由的、类unix的操作系统,在这个系统中,人们人们可以自由地复制,开发,修改和分发软件,并且不受限制。 请记住,Unix和Unix的派生版本最初是封闭源的,并拥有版权。 1985年,理查德(Richard)建立了自由软件基金会(FSF),这是一个非营利性组织,旨在促进软件开发的自由。 GNU项目创建了许多重要的产品,如GNU Compiler Collection (gcc)、GNU Debugger、GNU Emacs text editor (Emacs)、GNU build automator (make)等,还有今天使用最广泛的:GNU通用公共许可证(GPL)。 GNU项目取得了许多伟大的成就,创造了许多与Unix相似的工具。然而,GNU仍然缺少一个重要的组成部分:内核(用于处理与硬件设备(CPU、RAM、设备等)的控制和通信的部分)。 Linux 1991年8月25日,一位名叫Linus Torvalds的芬兰学生介绍了一种个人产品,后来成为Linux内核。 Linus的项目很快受到了许多个人和组织的关注。 Linux内核和GNU软件的结合创造了第一个完全免费的操作系统。它的名字是GNU/Linux。 注意: Linux本身只是一个内核,它不是一个完整的操作系统。电脑上使用的操作系统叫做GNU / Linux,人们简单地称它为Linux。Linux操作系统不使用或共享Unix或BSD代码的任何部分。它由Linus和GNU Project全新构建,成为Unix的克隆版本。这就是为什么Linux和当前的Unix后代操作系统(例如MacOS)有很多共同点的原因。普遍认为,无论是在MacOS上还是Linux上运行像ls、cat、grep这样的命令,其本质是相同的。但它们其实是两种不同的工具。在Ubuntu上运行grep——help或man grepon可以得到GNU版本的介绍,在Mac上可以得到BSD版本的介绍。当然,大多数GNU和BSD (Unix)工具对于每个选项都是相同的,但是也有例外。 您可以在Mac上安装GNU版本,而不是默认版本,这就可以像Linux一样使用相同的命令。 Linux发行版 Linux只是内核部分,GNU提供了在该内核上运行的必要工具。但是,我们可以自由决定内核配置。 一些组织和公司通过将Linux内核与实用程序或程序包管理器相结合来创建完整的操作系统发行版,这些称为Linux发行版。 今天,有无数的Linux发行版,其中许多都是非常熟悉和流行的。一些最常用的发行版包括:Ubuntu, Debian, CentOS, Fedora, Redhat, Linux Mint等。 发行版可以构建在另一个发行版之上。事实上,我上面提到的发行版彼此之间有许多密切的关系。最古老的两个发行版(现在仍然在使用)是Slackware和Debian。它们创建于1993年。 Debian的后代分支也可能是最大的发行版。除了Debian本身之外,这个分支的主要代表还有Ubuntu(构建在Debian之上)、Linux Mint(构建在Ubuntu之上)和Kali Linux。 另一个著名的发行版是Redhat,主要发行版是Red Hat Enterprise Linux (RHEL),这是一个针对Redhat的企业客户的发行版。除了提供RHEL作为付费发行版之外,Redhat还向社区提供另一个免费发行版,即Fedora。 实际上,通常首先对Fedora版本进行测试以获取反馈和错误修复,然后在稳定的Fedora版本上构建RHEL。此外,Redhat还为RHEL的几乎所有组件提供了免费的源代码,并且社区可以构建发行版(类似于 RHEL)。CentOS是一个社区版本(不受Redhat支持),完全免费,是一个与RHEL类似的企业级质量的发行版。 学习和熟悉Linux,在我个人看来Ubuntu(或Debian)和CentOS将是你应该熟悉的组合。 还有其他完全基于Linux内核的操作系统。其中最突出的就是Android。Android可能是使用Linux内核的最流行的操作系统 Linux内核版本 您可以在项目主页上的ernel.org上查看Linux内核版本的列表。 要检查正在使用的发行版上的内核版本,可以使用uname -r命令。 使用uname -a命令将打印出整个系统信息,uname -o将打印出操作系统名称。您将得到的结果是:操作系统名称是GNU / Linux,而不仅仅是Linux。 类Unix MacOS是少数通过Single UNIX Specification(SUS)认证的操作系统之一,并且被认为是类Unix的操作系统。 当前,UNIX商标版权归Open Group所有(请注意,UNIX商标名称中的字母均大写,而对于操作系统,我们可以写成Unix或UNIX)。 “类Unix(Unix-like”)”用于表示具有SUS认证的操作系统,并且可以使用UNIX品牌。 问题是:按照上述定义,Linux是“类Unix”操作系统吗?答案是否定的。现在Linux发行版不允许使用UNIX商标。 除了将“Unix-like”解释为SUS的一个组成部分之外,还有人建议应该在更广泛的意义上使用“Unix-like”这个词。具体来说,它可分为三类: Genetic UNIX:仅与Bell Labs Unix版本的代码库直接相关的操作系统。Trademark UNIX:操作系统符合SUS要求,可以使用UNIX商标。Functional UNIX:“类似于Unix”的操作系统,Linux可以归为此类。下面是一个简图,描述了Unix的形成和开发过程以及与Unix密切相关的操作系统。 最后 本文简要介绍了Linux领域中的一些要点,还简介了Linux与Unix之间的历史关系。

    时间:2020-05-12 关键词: Linux unix bsd

  • 浅谈嵌入式AI

    浅谈嵌入式AI

    人工智能概念: AI,就是人工智能。那么什么是人工智能? 计算机科学家的定义是:我们希望计算机具有人类意识,例如能够讨论、学习和感受用于模拟、扩展的理论、方法、技术和应用系统的能力。 并扩展计算机探索和发展人类智能的一门新技术科学。 人工智能领域的研究包括机器人技术、语音识别、图像识别、自然语言处理和专家系统。 传统人工智能的实现 我们平时使用的人工智能比如手机上的语音识别,都是通过联网来实现的,手机把语音转换为声音文件或声音字节流,然后把声音的数字流送到云端(后台服务器),由后台的服务器进行声音识别运算,把文字再返回给手机。人机对话功能的实现也是如此,手机把声音的字节流传到后台服务器,服务器然后解析成文字,然后再做自然语言处理,把文字的语义解析出来,服务器处理后后再返回对话结果给手机语音播放。再比如人脸识别功能,手机摄像头把人脸保存为图片上传到服务器,服务器通过复杂的人工神经网络计算,把计算的结果通过网络传递给手机。 现阶段的自动驾驶技术也基本依赖于后端服务器的,车载传感器把数据上传到云端服务器,服务器下发指令给车辆,告诉车辆的行为。 传统的人工智能方式实现的缺点 这种使用后台服务器的方式实现人工智能功能相对对终端(手机)来说实现简单,仅仅需要调用后台服务器的接口即可实现非常复杂的功能,不需要终端有多大的计算能力。但这种方式有很大的弊端,就是必须联网,而且后台的服务器绝大部分是要付费才能实现计算功能。这种模式很多场景是无法实现人工智能的,比如在没有网络的工厂,偏远山区。对于产品开发者来说,购买付费的人工智能服务也是一个巨大的开支,后面还有可能面对后台服务器升级造成的接口改变,导致终端无法访问后端服务器,产品彻底作废。 对于自动驾驶这种对时间要求极高的应用,如果采用上面的到服务器交互的方式,是完全不能满足自动驾驶的时间要求的。因为对于现阶段的网络服务器和终端的延时都是50ms级别之上,120km/h的情况下,50ms就是1.7米,一个交互来回车子已经走过了3-5米了。这样的延时对于紧急情况是无法满足需求的。即使5G普及,延时达到10ms以内,这种交互方式也有很多现实文件无法解决,比如速度越快,网络越慢,网络覆盖问题,边远山区,隧道内,大量车辆在同一地区网络会出现拥塞等情况。这些问题无法使用传统的服务器交互方式实现。 嵌入式人工智能的提出 由于上述问题存在,提出了嵌入式人工智能概念。嵌入式AI就是希望在嵌入式设备上面实现人工智能的能力,这和我们平时使用的人工智能有一个很大的区别就是,平时手机或嵌入式设备是通过网络连接后面的服务器来实现的人工智能,而嵌入式人工智能则是通过嵌入式设备本身来实现的,无需联网。这样带来的好处是完全不依赖于云端的服务器,自己单打独斗,实现人工智能的大部分功能。 这种实现是想起来容易,但实现起来还有很多问题,目前嵌入式人工智能面临三大挑战,分别为运算能力、功耗及散热。这些也是经典嵌入式设备所面临的问题。这几个问题其实有相互矛盾的地方,运算能强则功耗大,散热要求明显,反之亦然。 嵌入式人工智能的发展: 鉴于当前的嵌入式人工智能的局限性,现在的芯片厂商在这方面是下足了功夫,新的人工智能芯片在不断的研发和推出。嵌入式人工智能芯片的核心是半导体及算法。嵌入式人工智能硬件主要是要求更快指令周期与低功耗,包括GPU、DSP、ASIC、FPGA和神经元芯片,且须与深度学习算法相结合。 现在各大巨头都在部署自己的嵌入式解决方案,最著名的就是谷歌,tensorflow是谷歌推出的一款深度学习框架,现在已被各大公司使用,但只能运行在PC上服务器上,同时谷歌也推出了可以运行在嵌入式设备的tensorflow-lite,TensorFlow Lite 是 TensorFlow 针对移动和嵌入式设备的轻量级解决方案。它允许您在低延迟的移动设备上运行机器学习模型,因此您可以利用它进行分类,回归或获取你想要的任何东西,而无需与服务器交互。 意法半导体最近也展示了在国内最流行的芯片STM32上运行的人工智能神经网络。同时也推出了在STM32CubeMX工具中引入STM32Cube.AI工具包,将AI引入微控制器供电的智能设备,位于节点边缘,以及物联网,智能建筑,工业和医疗应用中的深度嵌入式设备。

    时间:2020-05-11 关键词: 嵌入式 STM32 AI

  • 浅谈windows有哪些功能是linux不具备的

    浅谈windows有哪些功能是linux不具备的

    每个人都知道Windows用户多于Linux系统,尽管微软的系统是付费的,但仍有很多人在使用它,那它有什么优势呢? 完整的图形界面 现在的系统基本都是图形界面,但是微软的更加友好完整。小白用户,普通用户也能很好地使用。而不需要用到复杂的命令,命令虽然强大,但是对小白普通用户来说就有难度,学习命令远没有点击几下鼠标就能造成工作任务来得轻松。 众多的软件 微软的系统软件有很多,而且简单易用,安装程序就是点击几下鼠标就可以了,这样就让普通用户也能使用复杂的计算机。而且每个应用程序都有自己的图标,无论是安装程序还是快捷方式,很好区分,这里只有安卓与之媲美,而苹果的dmg也是一个磁盘的样子,不太好区分。安卓还不能随意访问程序的安装位置,微软的却可以。现在很多游戏直播都是微软系统,这样可以给一般用户也能带来收入,使用的自然更加多。 良好的办公 微软的系统对打印机支持是最多的,各种打印机都能支持,这要换成linux又得搞半天,甚至解决不了。微软自家的办公软件功能强大,一直是其他厂家得模仿对象,这是linux不可比的,虽然wps也有今天linux版本的,但是功能也没那么多。网络打印也能图形界面完美的配置。 盈利性安装 一般人要是电脑坏了,修电脑的都会推荐你安装微软的系统,原因简单,安装微软的系统可以带来收入,里面的360,腾讯都有广告推广联盟。而linux很干净,无利可图,自然没几个修电脑的愿意安装。 支持众多硬件 微软的系统不怎么挑硬件,对硬件的支持比较好,能够运行在绝大部分电脑上,能使电脑的各个部件都有驱动,使其工作。这是linux不可比的,也是苹果系统不能比的。

    时间:2020-05-11 关键词: Windows Linux wps

  • 给大家介绍一个linux系统中的好教官:Awk

    给大家介绍一个linux系统中的好教官:Awk

    Awk是一个文本处理程序,我更愿意将其称为教官,这样听起来更形象。 我喜欢把各种文本的内容称为士兵,而教官负责管理培训它们。 日志统计 开发web的人员知道,我们经常需要查看nginx的服务器来统计来访者的记录。而awk教官可以很方便帮我们处理好存放在日志中的士兵,可以帮助我们选出最高的士兵,可以帮助我们选出经常出操的士兵,可以帮我们选出哪些士兵经常在一起。 看下面的一个需求:我们需要看看经常访问网站的有哪些ip,并且把它们的访问次数统计出来。初看这个问题似乎很复杂,不过不要担心,有问题,找教官,我们只要把我们的要求告诉教官,它就会告诉我们把结果,这很像sql语句,我们只要写出要获取的数据就行,至于怎么获取,全部交给数据库自己处理。 我们的awk语句如下: awk '{sum[$1]++}END{for (ip in sum) print ip,sum[ip]}' access.log|sort -rn -k 2|head 结果如下 66.98.123.241 4849144.34.223.61 730101.133.226.32 33023.83.246.193 279101.133.140.228 188101.133.147.20 174101.133.224.74 158101.133.224.22 15159.109.210.199 13247.240.89.111 63 我们简单分析下我们写的语句 awk这个不用说,就是我们向教官打招呼'{sum[$1]++}END{for (ip in sum) print ip,sum[ip]}'这个单引号包含的就是我们向教官询问的问题,其中第一个{}表示我们要循环每一行,然后把ip保存到sum数组中,第二个{}表示我们要把相同的ip求和统计出来,其中的END表示最后执行,当然在第一个{}之前我们也可以有一个BEGIN。access.log是我们要统计的文件,就是告诉教官要统计那个营的士兵sort是linux的排序命令,就是将士兵排序,其中 -rn表示按照身高,降序排列,因为排序还可能按照体重等排序。k 表示我们需要对那列进行排序,因为前面统计的是ip,count,而我们需要按照count进行排序,所以这里写2head 是linux的头部预览命令,一个营有很多士兵,我们直需要选出前面的几个士兵就可以了,默认它是选出前是个士兵,当然我们也可以使用 head -n 5选择前5个士兵。工作流程 awk 'BEGIN{ commands } pattern{ commands } END{ commands }' 1、通过关键字 BEGIN 执行 BEGIN 块的内容,即 BEGIN 后花括号 {} 的内容。 2、完成 BEGIN 块的执行,开始执行body块。 3、读入有 \n 换行符分割的记录。 4、将记录按指定的域分隔符划分域,填充域,$0 则表示所有域(即一行内容),$1 表示第一个域,$n 表示第 n 个域。 5、依次执行各 BODY 块,pattern 部分匹配该行内容成功后,才会执行 awk-commands 的内容。 6、循环读取并执行各行直到文件结束,完成body块执行。 7、开始 END 块执行,END 块可以输出最终结果。 强大的功能 从上面的例子我们也能看出来,awk可以向一般语言一样,也有自己的数据结构,也有自己的条件和循环判断,而且它也可以自己定义函数,可以说我们编程常用的功能,它都有提供。 因此,当我们需要统计一些文本中的内容的时候,我们一定不要忘记去找教官awk,它可能不是最好的教官,但是它一定值得你去选择它。

    时间:2020-05-11 关键词: Linux nginx awk

  • 给大家介绍几种Centos Linux系统中的快捷键

    给大家介绍几种Centos Linux系统中的快捷键

    tab:输入订单或路径时,可以完成以下内容。 这是系统中最常用的组合键。 如果选项卡没有到达路径或命令,则表示没有这种类型的路径或命令,并且可以是全向的。 按三下 ctrl+a:光标移到最前 ctrl+e:光标到结尾 ctrl+u:光标前的内容全部删除(剪切) ctrl+k:光标后的内容全部删除(剪切) ctrl+z:将任务中止(暂停的意思) ctrl+c:强制中断程序的执行,进程已经终止 ctrl+shift+c:复制 ctrl+shift+v:粘贴(shift+insert) ctrl+l:(字母表中m前的字母l)清屏 ctrl+d:退出当前会话 相当于exit ctrl+r:查找 ctrl+y:粘贴

    时间:2020-05-11 关键词: Linux centos tab

  • Cockpit是一个很好用的linux管理工具

    Cockpit是一个很好用的linux管理工具

    上一篇介绍Proxmox的文章引发了深入的讨论。 我的一个朋友介绍了cockpit工具。我认为该工具非常好,因此我将向大家介绍。 根据官方网站上的介绍,Cockpit是Linux系统的管理工具。 它提供了一个Web管理页面,可通过单击该页面来执行许多管理任务,这非常适合操作和维护。 cockpit官网 cockpit的安装非常简单,已经在各大系统的软件仓库中了。以Ubuntu 20.04为例,通过下面的命令即可安装cockpit。 sudo apt install cockpit# 如果你想要防火墙功能,安装firewalldsudo apt install firewalld# 如果你想要虚拟机管理功能,安装cockpit-machinessudo apt install cockpit-machines# 如果你想要容器管理功能,安装cockpit-podman,Ubuntu 20.04暂时没有该包sudo apt install cockpit-podman安装完毕之后,启动服务。 sudo systemctl start cockpit 好了,现在cockpit已经在系统中运行了。下面从浏览器中访问系统ip地址+9090端口号即可看到cockpit的登录页面。输入系统账户和密码即可登录cockpit。 非常现代的登录页面 系统概览 首先映入眼帘的是系统概览界面,从这里可以快速查看系统的各项信息,如性能使用情况、系统信息、配置等等。 点击对应的网格还可以打开详细视图,显示更加详细的信息,如实时的性能监视图表。 实时的性能监视图表 日志查看 cockpit还可以非常方便的查看系统的各项日志,这个功能感觉有点像Windows上的事件查看器。点击日志即可展开查看详细的日志信息。 服务管理 cockpit还提供了查看系统服务的功能,在这里可以轻松查看系统上安装的各项服务,并且可以根据名称进行筛选,右边还提供了按钮可以选择启用和禁用服务。功能方便程度完全不亚于Windows上的服务管理程序。 系统更新提示 这一点cockpit做的也很不错,不仅可以提示系统有什么更新,还根据更新重要程度给出相应的提示和说明。假如在这里出现了比较严重的提示,那么是时候对系统进行一波更新了。 防火墙管理 这个功能需要安装firewalld,只有安装了这个软件包,相关功能才会在web页面中展示。我感觉这个功能也是非常的实用,最起码比自己用iptables或者nftables之类的命令行工具方便。 用起来非常简单,甚至比Windows的防火墙使用还简单,不用配置复杂的入站出站规则,直接就可以根据已运行的服务选择端口号,或者自定义端口号,简直就是懒人必备。 另外还有几种预设的方案,可以根据自己的需要选择某一种方案,同时方案也可以进行自定义。总之这是一个非常方便易用的防火墙管理工具,大家可以试试。 虚拟机管理 如果你安装了cockpit-machines包,那么cockpit就会开启虚拟机功能,在这里可以轻松创建和使用虚拟机功能。 安装类型有URL、本地ISO、下载OS几种 当然,虚拟机功能自然和PVE这种专业的虚拟化平台相比,但是作为一般的日常虚拟机管理方案是完全够用了。毕竟不是每个人都需要那么多专业的选项和配置。 总结一下就是简单实用的虚拟机方案,日常使用绝对够用,用起来也很方便,没有任何多余的配置。 容器管理 用cockpit还可以非常方便的管理容器,这需要安装cockpit-podman或者cockpit-docker。因为cockpit-docker目前不在积极维护,团队重心放在了cockpit-podman上。所以我建议大家安装podman这个包,反正podman命令行完全兼容docker,也可以替代docker使用。另外有一点比较坑就是Ubuntu 20.04目前没有这两个包,所以为了演示这个功能我又翻出了被我玩坏了的Arch虚拟机,来给大家继续。 容器管理功能也很简单实用,没那么多花里胡哨的,就是镜像和容器两个功能。 cockpit内置了搜索镜像的功能,以后不用再去dockerhub搜索了,直接cockpit就可以搜索下载镜像。podman也可以配置dockerhub的镜像源,下载速度也是杠杠的。 运行容器的界面也很简洁,基本上属于一看就会的那种。 好了,为cockpit做一个简单总结吧:这是一个简单易用的linux系统管理工具,存在于主流发行版的软件仓库中,可以轻松安装和使用;通过Web界面控制linux系统,界面简洁实用,学习成本极低,推荐所有使用linux的朋友尝试;带有实用的防火墙、虚拟机、容器管理功能,不论是系统运维还是linux小白,都是非常好的功能。结论就是,欢迎大家尝试使用!

    时间:2020-05-11 关键词: Linux ubuntu cockpit

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章