• [交流吐槽] linux如何查看所有的用户信息
    linux如何查看所有的用户信息cat /etc/passwd查看所有用户信息第一列:用户名第二列:密码位第三列:UID 用户ID =>500 普通用户第四列:GID 初始组ID第五列:用户说明第六列:家目录第七列:用户登录之后的权限linux如何查看所有的用户组信息cat /etc/group查看所有用户组信息组名:组密码位:组ID:组中附加用户常用创建用户组和用户的命令在创建用户的时候先创建组,这样可以让用户选择自定义的组。addgroup --system --gid 102 nginx 创建一个系统组,组的gid是102,组名nginx adduser --system \     --disabled-login \     --ingroup nginx \     --no-create-home --home /nonexistent \     --gecos "nginx user" \     --shell /bin/false \     --uid 102 \     nginx12345678创建一个系统用户,不能通过shell登录,分组在nginx组内,不创建家目录且家目录设定在/nonexistent下,备注为nginx user,在命令行shell脚本运行的是/bin/false,uid为102的用户nginx。用户及组相关命令    1    添加用户        useradd  用户名                useradd  选项  用户名        选项:            -g  组名    指定初始组                    -G  组名    指定附加组,把用户加入组,使用附加组            -c  添加说明            -d  手工指定家目录,目录不需要事先建立/home/            -s      /bin/bash    手工指定用户登录之后的权限            useradd  -g  aa  bb        添加bb用户,同时指定初始组为aa        useradd  -G  user1  aa    添加用户aa,指定附加组为user1        初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组        附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组    2    设定密码                    passwd            用户名        passwd            改变当前用户密码        passwd  root        改变root密码    3    删除用户                        userdel  -r  用户名            -r  连带家目录一起删除    4    添加组                        groupadd  组名    5    删除组                        groupdel  组名        注意:组中没有初始用户。    6    把已经存在的用户加入组                            gpasswd  -a  用户名  组名        用户加入组        gpasswd  -d  用户名  组名        把用户从组中删除二    用户相关命令                    1    id  用户名        显示用户的UID,初始组,和附加组        [root@localhost home]# id 用户            2    su  -  用户名        切换用户身份                        -    连带环境变量一起切换        12345678910111213141516171819202122232425262728293031323334353637383940414243444546useradd详细参数-c:加上备注文字,备注文字保存在passwd的备注栏中。-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>-D:变更预设值。-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。-G:指定用户所属的附加群组。-m:自动建立用户的登入目录。-M:不要自动建立用户的登入目录。-n:取消建立以用户名称为名的群组。-r:建立系统账号。-s:指定用户登入后所使用的shell。默认值为/bin/bash。-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499groups 查看当前登录用户的组内成员groups test 查看test用户所在的组,以及组内成员whoami 查看当前登录用户名————————————————版权声明:本文为CSDN博主「dece」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_39309714/article/details/85990062cat /etc/passwd查看所有用户信息第一列:用户名第二列:密码位第三列:UID 用户ID =>500 普通用户第四列:GID 初始组ID第五列:用户说明第六列:家目录第七列:用户登录之后的权限linux如何查看所有的用户组信息cat /etc/group查看所有用户组信息组名:组密码位:组ID:组中附加用户常用创建用户组和用户的命令在创建用户的时候先创建组,这样可以让用户选择自定义的组。addgroup --system --gid 102 nginx 创建一个系统组,组的gid是102,组名nginx adduser --system \     --disabled-login \     --ingroup nginx \     --no-create-home --home /nonexistent \     --gecos "nginx user" \     --shell /bin/false \     --uid 102 \     nginx12345678创建一个系统用户,不能通过shell登录,分组在nginx组内,不创建家目录且家目录设定在/nonexistent下,备注为nginx user,在命令行shell脚本运行的是/bin/false,uid为102的用户nginx。用户及组相关命令    1    添加用户        useradd  用户名                useradd  选项  用户名        选项:            -g  组名    指定初始组                    -G  组名    指定附加组,把用户加入组,使用附加组            -c  添加说明            -d  手工指定家目录,目录不需要事先建立/home/            -s      /bin/bash    手工指定用户登录之后的权限            useradd  -g  aa  bb        添加bb用户,同时指定初始组为aa        useradd  -G  user1  aa    添加用户aa,指定附加组为user1        初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组        附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组    2    设定密码                    passwd            用户名        passwd            改变当前用户密码        passwd  root        改变root密码    3    删除用户                        userdel  -r  用户名            -r  连带家目录一起删除    4    添加组                        groupadd  组名    5    删除组                        groupdel  组名        注意:组中没有初始用户。    6    把已经存在的用户加入组                            gpasswd  -a  用户名  组名        用户加入组        gpasswd  -d  用户名  组名        把用户从组中删除二    用户相关命令                    1    id  用户名        显示用户的UID,初始组,和附加组        [root@localhost home]# id 用户            2    su  -  用户名        切换用户身份                        -    连带环境变量一起切换        12345678910111213141516171819202122232425262728293031323334353637383940414243444546useradd详细参数-c:加上备注文字,备注文字保存在passwd的备注栏中。-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>-D:变更预设值。-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。-G:指定用户所属的附加群组。-m:自动建立用户的登入目录。-M:不要自动建立用户的登入目录。-n:取消建立以用户名称为名的群组。-r:建立系统账号。-s:指定用户登入后所使用的shell。默认值为/bin/bash。-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499groups 查看当前登录用户的组内成员groups test 查看test用户所在的组,以及组内成员whoami 查看当前登录用户名————————————————版权声明:本文为CSDN博主「dece」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_39309714/article/details/85990062
  • [交流吐槽] Solus
    Solus 项目的 Joshua Strobl 近日宣布了 Solus 4.3 的发布和普遍可用性,这是面向大众的滚动发布发行版的更新 ISO 快照。 在Solus 4.2发布五个多月之后,Solus 4.3 版本是 Solus 4“Fortitude”系列的第三部分,引入了更新的内部结构以提供更好的硬件支持,以及更新的桌面环境和应用程序以改进 Solus 桌面体验。 Solus 4.3 的亮点包括最新的Linux 5.13内核系列、Mesa 21.1.3 图形堆栈、BlueZ 5.60 蓝牙堆栈、FFmpeg 4.4 和 GStreamer 1.18.4 多媒体框架、dav1d 0.9.0 AV1 解码器、PulseAudio 14.2 声音系统、LibreOffice 7.1.4办公套件、Mozilla Thunderbird 78.11 电子邮件客户端和Mozilla Firefox 89.0.2网络浏览器。在桌面方面,Solus 4.3 自带旗舰版最新的Budgie 10.5.3桌面环境,以及 MATE 版的 MATE 1.24 桌面环境,GNOME版的GNOME 40.2桌面环境,现在具有Materia-Dark 主题提供对 GNOME Shell 40 和 GTK4 的开箱即用支持,以及KDE Plasma 版本上的KDE Plasma 5.22.2桌面环境,后者附带KDE Frameworks 5.83和KDE Gear 21.04.2软件套件。除了这个默认的改变,Solus 4.3 GNOME版本继续发布不耐烦和托盘图标-重新加载。这使我们能够减少动画时间以及支持系统托盘开箱即用,”Joshua Strobl说。当然,如果您想在新计算机上部署Solus或重新安装,还有许多其他更新的软件包可以为您提供最新的安装介质。要获得完整的更新日志,请访问发布公告页面,您可以从官方网站下载Solus 4.3的Budgie、KDE Plasma、GNOME和MATE 64位系统版本。 Solus 4.3 看起来是一个令人难以置信的令人兴奋的版本,它为操作系统的几乎所有方面带来了各种改进。就我个人而言,我对 Gnome 40 的加入感到最兴奋,尤其是它的新触控板手势。 如果您想亲自试用 Solus 4.3,可以从他们的下载页面下载。或者,如果您已经是 Solus 用户,只需更新您的系统,您将自动收到所有最新更新。 您如何看待 Solus 4.3?请在下面的评论部分给我们留言。来自:Linux迷链接:https://www.linuxmi.com/solus-4-3.html
  • [问题求助] 【Kylin Linux Advanced Server for Kunpeng V10产品】【安装MYSQL8.0启动失败功能
    【功能模块】在此服务器上安装MYSQL8.0,安装好了,启动报错【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)[root@xht-ecs-b076-0002 mysqld]# systemctl status mysqld.service● mysqld.service - MySQL Server   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)   Active: failed (Result: exit-code) since Fri 2021-07-23 11:02:43 CST; 671ms ago     Docs: man:mysqld(8)           http://dev.mysql.com/doc/refman/en/using-systemd.html  Process: 6986 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)  Process: 7021 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=127) Main PID: 7021 (code=exited, status=127)Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Service RestartSec=100ms expired, scheduling restart.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Scheduled restart job, restart counter is at 5.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: Stopped MySQL Server.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Start request repeated too quickly.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Failed with result 'exit-code'.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: Failed to start MySQL Server.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Failed with result 'exit-code'.-- Subject: Unit failed-- Defined-By: systemd-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- The unit mysqld.service has entered the 'failed' state with result 'exit-code'.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: Failed to start MySQL Server.-- Subject: A start job for unit mysqld.service has failed-- Defined-By: systemd-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- A start job for unit mysqld.service has finished with a failure.-- -- The job identifier is 4314 and the job result is failed.Jul 23 11:02:43 xht-ecs-b076-0002 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mysqld comm="systemd" exe="/usr/lib/s>Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Service RestartSec=100ms expired, scheduling restart.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Scheduled restart job, restart counter is at 5.-- Subject: Automatic restarting of a unit has been scheduled-- Defined-By: systemd-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Automatic restarting of the unit mysqld.service has been scheduled, as the result for-- the configured Restart= setting for the unit.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: Stopped MySQL Server.-- Subject: A stop job for unit mysqld.service has finished-- Defined-By: systemd-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- A stop job for unit mysqld.service has finished.-- -- The job identifier is 4388 and the job result is done.Jul 23 11:02:43 xht-ecs-b076-0002 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mysqld comm="systemd" exe="/usr/lib/s>Jul 23 11:02:43 xht-ecs-b076-0002 audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mysqld comm="systemd" exe="/usr/lib/sy>Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Start request repeated too quickly.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: mysqld.service: Failed with result 'exit-code'.-- Subject: Unit failed-- Defined-By: systemd-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- The unit mysqld.service has entered the 'failed' state with result 'exit-code'.Jul 23 11:02:43 xht-ecs-b076-0002 systemd[1]: Failed to start MySQL Server.-- Subject: A start job for unit mysqld.service has failed-- Defined-By: systemd-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- A start job for unit mysqld.service has finished with a failure.-- -- The job identifier is 4388 and the job result is failed.Jul 23 11:02:44 xht-ecs-b076-0002 [7036]: [systemctl status mysqld.service] return code=[3], execute failed by [root(uid=0)] from [pts/0 (113.106.12>Jul 23 11:07:57 xht-ecs-b076-0002 [7050]: [cls] return code=[127], execute failed by [root(uid=0)] from [pts/0 (113.106.122.98)]Jul 23 11:07:58 xht-ecs-b076-0002 [7063]: [clear] return code=[0], execute success by [root(uid=0)] from [pts/0 (113.106.122.98)]lines 2165-2215/2215 (END)
  • [问题求助] 【Mindstudio】【3.0.0】【linux】选择adk包出错
    【功能模块】我们在自己的linux上搭建了mindstudio的环境,发现非root用户在选择adk包的时候会无法点击finish选项(切换到root就可以了),请问这是正常的吗【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [2021暑期计划] 暑假每日学嵌入式系统开发Linux驱动程序开发
  • [问题求助] 【mindStudio】【ms安装】linux下用msinstall安装卡住不动了
    【功能模块】mindstudio安装【操作步骤&问题现象】1、使用linux的msinstall自动安装的时候卡在安装mindstudio不动了。2、是网络连接问题吗?【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [交流吐槽] kibana-5.5.2-linux-x86_64包损坏,望尽快修复
    https://mirrors.huaweicloud.com/kibana/5.5.2/kibana-5.5.2-linux-x86_64.tar.gz
  • [2021暑期计划] 暑假每日学嵌入式系统开发Linux驱动程序开发
    干巴爹!
  • [2021暑期计划] 暑假每日学嵌入式系统开发Linux驱动程序开发
    2021-7-20  完成学习,忘记打卡了
  • [技术干货] Linux中带缓冲IO和不带缓冲IO的区别
    ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/20/174438sy1gpikbbkvr5cqs.png) linix对IO文件的操作分为不带缓存的IO操作和标准IO操作(即带缓存),刚开始,要明确以下几点: - 1:不带缓存,不是直接对磁盘文件进行读取操作,像read()和write()函数,它们都属于系统调用,只不过在用户层没有缓存,所以叫做无缓存IO,但对于内核来说,还是进行了缓存,只是用户层看不到罢了。如果这一点看不懂,请看第二点; - 2:带不带缓存是相对来说的,如果你要写入数据到文件上时(就是写入磁盘上),内核先将数据写入到内核中所设的缓冲储存器,假如这个缓冲储存器的长度是100个字节,你调用系统函数: ssize_t write (int fd,const void * buf,size_t count); 写操作时,设每次写入长度count=10个字节,那么你几要调用10次这个函数才能把这个缓冲区写满,此时数据还是在缓冲区,并没有写入到磁盘,缓冲区满时才进行实际上的IO操作,把数据写入到磁盘上,所以上面说的“不带缓存不是就没有缓存直写进磁盘”就是这个意思。 ## 带缓存的IO操作 那么,既然不带缓存的操作实际在内核是有缓存器的,那带缓存的IO操作又是怎么回事呢? 带缓存IO也叫标准IO,符合ANSI C 的标准IO处理,不依赖系统内核,所以移植性强,我们使用标准IO操作很多时候是为了减少对read()和write()的系统调用次数,带缓存IO其实就是在用户层再建立一个缓存区,这个缓存区的分配和优化长度等细节都是标准IO库代你处理好了,不用去操心,还是用上面那个例子说明这个操作过程: 上面说要写数据到文件上,内核缓存(注意这个不是用户层缓存区)区长度是100字节,我们调用不带缓存的IO函数write()就要调用10次,这样系统效率低,现在我们在用户层建立另一个缓存区(用户层缓存区或者叫流缓存),假设流缓存的长度是50字节,我们用标准C库函数的fwrite()将数据写入到这个流缓存区里面,流缓存区满50字节后在进入内核缓存区,此时再调用系统函数write()将数据写入到文件(实质是磁盘)上,看到这里,你用该明白一点,标准IO操作fwrite()最后还是要掉用无缓存IO操作write,这里进行了两次调用fwrite()写100字节也就是进行两次系统调用write()。 总结一下就是: - 无缓存IO操作数据流向路径:数据——内核缓存区——磁盘 - 标准IO操作数据流向路径:数据——流缓存区——内核缓存区——磁盘 ## 对比 1.带缓存的文件操作时标准C库的实现,第一次调用带缓存的文件操作函数时,标准库会自动非配内存并且读出一段固定大小的内存存储在缓存中。以后每次的读写操作并不是针对硬盘上的文件直接进行的,而是针对内存中的缓存的。 2.不带缓存的文件操作通常都是系统提供的系统调用 ## ****缓冲区文件与非缓存区文件 缓冲区文件在读写时先将数据写入缓冲区,缓冲区满后再写入磁盘,减少磁盘的读取次数,增加磁盘寿命。 非缓存区文件使用系统调用处理文件,每次执行都需要系统调用,开销大,时间长。缓冲区文件使用库函数调用,将读取到的内容存储在缓冲区,下次读写时调用速度相对较快。
  • [技术干货] 嵌入式开发——Linux中的文件处理
    # Linux下的文件及文件描述符 在linux下设备和目录都可以看做文件。 Linux中的文件有4种类型: - 普通文件 - 目录文件 - 链接文件 - 设备文件 **文件描述符:** Linux的内核利用文件描述符来访问文件。文件描述符是非负整数,它是一个索引值,并指向内核中每个进程打开文件的记录表。当打开一个现存文件或新建一个文件时,内核会向进程返回一个文件描述符。当读写文件时,也需要使用文件描述符来指定待读写的文件。 通常,一个进程启动时,要打开三个文件:**标准输入、标准输出和标准错误处理**。 它们的文件描述符分别为:0、1和2。 其他文件的文件描述符,在调用open函数时返回。 在国际标准组织IEEE制定的ISO标准中,定义了宏符号常量STDIN-FILENO、STDOUT_FILENO和STDERR_FILENO,用于替代0、1和2。 这三个符号常量的定义位于头文件unistd.h中 # 系统调用 所谓系统调用是指操作系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的特殊服务。 在Linux中用户程序不能直接访问内核提供的服务。为了更好的保护内核空间,将程序的运行空间分为内核空间和用户空间,他们运行在不同的级别上,在逻辑上是相互隔离的。 - 通常情况下,应用程序是通过操作系统提供的应用编程接口(API)而不是直接通过系统调用来编程。 - 操作系统API通常都以C库函数的方式提供,Linux也是如此。 - 系统调用和C库函数之间并不是一一对应的关系,可能几个不同的函数会调用到同一个系统调用。 - 系统命令位于C库的更上层,是利用C库实现的可执行程序,比如最为常用的ls、cd等命令。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/20/173821eyqvcddwjwtxdicn.png) **为什么需要系统调用?主要有以下两方面原因。** (1)系统调用可以为用户空间提供访问硬件资源的统一接口,应用程序不必去关注具体的硬件访问操作。(如读写文件时,应用程序不用去管磁盘类型,甚至于不用关心是哪种文件系统。) (2)系统调用可以对系统进行保护,保证系统的稳定和安全。系统调用的存在规定了用户进程进入内核的具体方式。(用户访问内核的路径是事先规定好的,只能从规定位置进入内核,而不准许肆意跳入内核。有了这样的进入内核的统一访问路径限制才能保证内核的安全)。 # 文件处理 **Linux对文件处理有两种方式:** - 系统调用(system call): 基于Linux 的系统调用,由操作系统的系统调用完成对文件的操作 - 库函数调用(Library functions) 基于C语言的库函数,标准C库函数提供的文件操作函数如fopen, fread, fwrite, fclose, fflush, fseek等。它是独立于操作系统。 ``` 系统调用是为了方便使用操作系统的接口 而库函数则是为了人们程序的移植性更好 ``` Linux通过系统调用进行的文件处理,主要是指进行打开文件、读文件、写文件及关闭文件等I/O操作。大多数情况下,只需要用到5个函数:open、read、write、lseek和close。这几个函数不需要经过缓冲就能立即执行,因此,被称为不带缓冲的I/O操作,即每一个函数都只调用内核中的一个系统调用。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/20/173943z6sahfndxsxz6blf.png)
  • [技术干货] linux中执行定时任务对oracle备份(crontab命令)
    上一讲,我们讲解了linux crontab命令,这样我们再对ORACLE数据库进行备份时,就轻松了许多。步骤1.新建脚本首先进入linux下的oracle用户。新建一个shell脚本,该脚本主要写我们需要对oracle数据库进行备份的操作。2.添加脚本内容 设置oracle字符集这块需要注意一下,要和数据库保持一致,否则导出的信息会乱码。用下面的代码,可以查询出相应的字符集。select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; 3. 设置定时任务 在oracle用户下输入 crontab -e,设置定时任务,输出日志会直接添加到log.txt里,可以查看定时任务是否成功。0 0 12 * * * /home/oracle/dbbak/shell/dbbak.sh>>/home/oracle/dbbak/shell/log.txt 2>&14. 设置权限由于我们是在oracle用户下进行操作,一些读写权限不是很明确,所以我们要对需要操作的文件进行授权。chmod 777 新建目录/chmod 777 ./xx.sh如果缺少这一步的话,再运行完定时任务后,log.txt会有以下错误:EXP-00028: failed to open /home/oracle/dbbak/data/fdc20210720120001.dmp for writeExport file: expdat.dmp > 5. 重启服务systemctl restart crond此时,一个基于linux下定时备份oracle任务就算完成了。及时查看log.txt内容,如有报错,需要及时修正脚本!
  • [技术干货] linux crontab命令
    一、概念Linux crontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond是后台进程,每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。二、工作分类linux 任务调度的工作主要分为以下两类:系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。使用vim crontab打开后,界面如下:一般默认即可。个人执行的工作:某个用户定期要做的工作,比如用户数据备份,这些工作可由每个用户自行设置。所有用户定义的crontab文件都被保存在/var/spool/cron目录下。三、语法crontab [ -u user ] { -l | -r | -e }-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)-r : 删除目前的时程表-l : 列出目前的时程表四、案例使用使用时,须严格遵守下图的格式。 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。commond表示要执行的程序。当 f1 为 * 时表示每分钟都要执行 commond,f2 为 * 时表示每小时都要执行程序,其余类推当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推示例:每一分钟执行一次 /bin/ls:* * * * * /bin/ls在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:0 6-12/3 * 12 * /usr/bin/backup五、crond服务操作命令   1、service crond start          启动服务   2、service crond stop          关闭服务     3、service crond restart       重启服务     4、service crond reload       重新载入配置   5、service crond status       服务是否运行 
  • [问题求助] 【MindStudio】【3.0.1】【Linux】【软件安装】无法离线安装Mxmanufacture
    从本地选取安装包安装时出现了如下问题,提示需要正确配置LD_LIBRARY_PATH,选择在线安装可以正常安装。我在.bashrc文件中关于LD_LIBRARY_PATH的设置是这样的:export install_path=/usr/local/Ascend/ascend-toolkit/latest     # 安装用户为ROOTexport ASCEND_OPP_PATH=${install_path}/oppexport ASCEND_AICPU_PATH=${install_path}export TOOLCHAIN_HOME=${install_path}/toolkitexport LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=${install_path}/acllib/lib64:${LD_LIBRARY_PATH}
  • [2021暑期计划] 暑假每日学嵌入式系统开发Linux驱动程序开发
    坚持!