技术标签: 运维 linux Linux 操作系统入门到精通 运维开发
目录
在 Linux 操作系统中,每个用户都属于一个组,可以切换组但必须属于一个组,除此之外每个文件也与组有着一些联系。Linux 组相关概念有 所有者、所在组、其他组。
所有者就是文件的创建者,用户创建了一个文件,这个文件的所有者就是该用户。
查看文件的所有者使用指令:ls -ahl(提示:查看目录下的文件时,白色代表文件,蓝色代表目录,红色代表压缩文件)
举例:进入 home 目录,查看 home 下所有文件的所有者分别是谁。如下,标红的一列即为目录或者文件的所有者。
修改所有者使用指令 chown;
- chown 新所有者 文件/目录 //修改文件或目录的所有者
- chown 新所有者:新组 文件/目录 //改变文件的所有者和所在组
- chown -R 新所有者 目录 //将目录下的所有文件和目录的所有者都改为新所有者(递归)
举例:文件 xiaoma 的所有者是 xiaoma,我们将它修改为 zhangsan;
当用户创建了一个文件,那么用户所属的组就是这个文件的所在组,所在组内的所有用户对该文件都会有一定的管理权限。
查看文件所在组使用指令 ls -ahl,与查看所有者相同;
举例:为了便于操作,我们先创建一个组 master,然后创建一个用户 ma 并将其放入 master 组,如下;
使用用户 ma 进行登录;新建一个文件 a.txt;
此时我们查看 a.txt 的所在组,标红的一列即为所在组名,可以看到,文件 a.txt 的所有者为 ma,所在组是 master。这是因为用户 ma 是在组 master 中创建的,那么用户 ma 创建的文件 a.txt 的所在组就是 master;
修改文件所在组使用指令:chgrp ;
- chgrp 新组 文件/目录 //修改文件或目录的所在组
- chgrp -R 新组 目录 //将目录下的所有文件和目录的所在组都改为新组(递归)
举例:root 用户下新建文件 b.txt,如下文件 b.txt 的所有者和所在组都是 root;
接下来我们将 b.txt 切换至 master 组中,现在 b.txt 的所有者为 root,所在组为 master;
除了文件所在组,其他的组就称为其他组,其他组的用户对于所在组内的文件也具有一定的管理权限。
在添加用户时,可以指定将用户添加到某个组,也可以使用 root 管理权限改变用户的所在组;
改变用户所在组使用指令:usermod -g 组名 用户名,也可使用指令 usermod -d 目录名 用户名 改变用户登录时的初始目录,前提是该用户必须要有进入新目录的权限。
我们使用 ls -l 命令查看当前路径下所有文件或目录的详细信息时,会显示如下格式的数据;
接下来我们从左到右按照位数对该信息进行介绍:
drwxr-xr-x. 2 root root 6 3月 4 17:23 公共
rwx 作用于文件和目录时,代表的权限并不相同;当作用于文件时:
r(read)可读取,查看
w(write)可修改,但不可以删除,只有对该文件所在目录有写权限时才能删除文件
x(execute)可执行该文件,前提该文件是可执行文件
当 rwx 作用于目录时:
r(read)可读取,ls 查看目录内容
w(write)可修改,对目录进行创建、删除、重命名等
x(execute)可进入该目录
便于理解,请看如下案例:
通过指令 chmod 可以修改文件或者目录的权限;第一种方式是通过符号 “+”、“-”、“=” 来变更权限;修改权限之前我们需要先知道所有者、所在组、其他组等分别表示的字母含义:
u 所有者、g 所在组、o 其他人、a 所有人(u g o 的总和),如下命令:
- chmod u=rwx,g=rw,o=x 文件/目录名 //为文件或目录的所有者赋予读、写、执行的权限、为所在组赋予读、写权限、为其他人赋予执行的权限;
- chmod o+w 文件/目录名 //为文件或目录的其他人赋予写权限;
- chmod a-x 文件/目录名 //为文件或目录的所有人去掉执行权限;
第二种方式是通过数字来变更权限,r(读)权限为 4,w(写)权限为 2,x(执行)权限为 1,为文件或者目录设置权限时根据需要使用数字之和即可,如下两条命令等同:
- chmod u=rwx,g=rw,o=x 文件/目录名
- chmod 761 文件/目录名
任务调度是指系统在某个时间执行的特定程序或命令,它是一个后台程序,所以一直在运行。使用指令 crontab 可进行定时任务调度的设置:
- crontab //设置定时任务
- crontab -e //编辑 crontab 定时任务
- crontab -l //查询 crontab 定时任务
- crontab -r //删除当前用户所有的 crontab 定时任务
- service crond restart //重启任务调度
如下我们设置并编辑一个定时任务,输入语句 */1 * * * * ls-l;
注意该语句含义:*/1 * * * * ls-l,每过一分钟执行一次 ls -l 指令;
字符 含义 范围 第一个 * 一小时的第几分钟 0~59 第二个 * 一天中的第几个小时 0~23 第三个 * 一月中的第几天 1~31 第四个 * 一年中的第几月 1~12 第五个 * 一周中的星期几 0~7(0、7均为星期日)
输入结束后 wq 保存即创建了新的定时任务;
任务调度 crond 其他特俗符号含义如下:
- 【*】:任何时间
- 【,】:不连续时间,例如 [0 8,10,14 * * * 指令] 代表每天的 8:00、10:00、14:00 都执行一次命令
- 【-】:连续时间,例如 [20 16 * * 1-5 指令] 代表每周的周一到周五的 16:20 都执行一次该指令
- 【*/n】:每隔多久执行一次,例如 [*/5 * * * * 指令] 代表每隔 5 分钟执行一次指令
通常的定时任务调度是按照周期反复执行的,如果我们希望某个定时任务是一次性的,也就是只在规定的时间执行一次,那么就需要用到定时任务 at。
设置一次性定时任务使用指令 at 选项 时间 ,输入后两次按下 Ctrl+D 结束输入。at 命令各选项如下:
选项 | 含义 |
---|---|
-m | 指定的任务完成后,给用户发送邮件 |
-i | 查询任务,相当于指令 atq |
-d | 删除任务,相当于指令 atrm |
-v | 显示任务被执行的时间 |
-c | 打印(输出)任务内容 |
-v | 显示版本信息 |
-q<队列> | 使用指定队列 |
-f<文件> | 从指定文件读取任务而不是从标准输入 |
-t<时间参数> | 以时间参数的形式提交要运行的任务 |
at 命令时间的指定格式如下:
原理:定时任务 at 拥有守护进程 atd,守护进程会每 60 秒检查任务队列,如果该任务的运行时间与设置的时间匹配,则运行此任务,否则停止任务。
使用 at 指令的前提是 atd 进程已启动,可使用指令 ps -ef | grep atd 检测当前正在运行的进程。如下说明 atd 进程已启动。
举例:两天后的上午 7 点执行命令 ls /home;
如上图信息,第一列为进程编号,删除进程时使用指令 atrm 编号 即可;
下期:Linux 磁盘分区、网络配置。
文章浏览阅读904次。IMQ 是中介队列设备的简称,是一个虚拟的网卡设备,与物理网卡不同的是,通过它可以进行全局的流量整形,不需要一个网卡一个网卡地限速。这对有多个ISP接入的情况特别方便。配合 Iptables,可以非常方便地进行上传和下载限速。一、网络环境简介目的站点 (Internet) IP: 218.x.x.x (用 TARGET_IP 表示)路由器 (Router) eth1_imqhiot
文章浏览阅读1.9k次。C++将UTF-8编码的文件转化为GB2312编码我需要对一个html网页进行解析,html是使用UTF-8编码的。但是,我使用的visual Studio 19是使用gb2312进行编码的。当读入html文件并在控制台上输出时,中文自然全部变成了乱码所以,需要通过某些操作,对读入的字符串进行转化,将UTF-8编码转为GB2312编码在网上看了很多文章,都没有解决问题,或者过于复..._c++ utf-8转gb2312
文章浏览阅读2k次,点赞2次,收藏9次。恶意代码(Malicious code),是一种违背目标系统安全策略的程序代码,会造成目标系统信息泄露、资源滥用,破坏系统的完整性及可用性。它能够经过存储介质或网络进行传播,从一台计算机系统传到另一外一台计算机系统,未经授权认证访问或破坏计算机系统。通常许多人认为“病毒”代表了所有感染计算机并造成破坏的程序,但实际上,换成“恶意代码”更为贴切,病毒只是恶意代码的一种。恶意代码的种类包括。_第14章恶意代码防范技术原理
文章浏览阅读4.5k次,点赞12次,收藏29次。今天主要谈谈硬件产品的成本核算问题。一款新产品上市,面临的直接问题就是「定价」,尤其对于初创企业而言,现金流意味着企业的生命线,定价会直接影响到公司的「毛利润」。毛利润直接决定你银行账户里的收益,是指你卖产品给用户获得的钱与你将产品交付到用户手中需要花费钱的差值。不同类型产品的毛利润差别很大,一般会通过计算毛利率代替。相比于小米硬件成本定价,靠增值服务收费的商业模式,多数硬件公司必须获取足够高的毛利润才能生存下去。无论一款产品要走什么样的定价策略,定价绕不开「成本核算..._硬件产品的成本能算得出来吗
文章浏览阅读1.7k次。"在服务器运行过程中,Spring不停的运行的计划任务和OpenSessionInViewFilter,使得Tomcat反复加载对象而产生框架并用时可能产生的内存泄漏,则使用IntrospectorCleanupListener作为相应的解决办法。"对于这一句话,引用关于IntrospectorCleanupListener一段解释:spring中的提供了一个名为 org.spring_quartz 定时任务 报错会引起内存增长吗
文章浏览阅读1.3k次。1.ion-content 内置元素边距问题在使用的过程中发现ion-content里的元素都距四周有一定的距离,在实际需求中不需要四周距离,经查阅文档去掉ion-content 里面的padding属性即可。2.ionic app 国际化经查阅文档和博客目前ionic+cordova混合开发的app目前国际化较好的方案是ngx-translate2.1 插件安装Angular5安装..._ionic4 import org.apache.cordova.file.fileutils;
文章浏览阅读340次。python在windows下载非最新的安装包_python windows 安装文件下载
文章浏览阅读3.5k次。摘 要为了满足人们日益增长的家庭安防需求,结合基本每家每户都有闲置的智能手机的现状,本文提出了一种基于移动智能端的家庭安防系统构造方案。系统充分利用了智能手机的传感器、摄像头、麦克风、闪光灯以及3G/4G/wifi等网络通讯模块,构造了一个集视频直播、视频点播、远程报警为一体的家庭安防系统。系统采用C/S的架构设计,分设三台客户端和两台服务器。客户端以Android系统为依托分别实现传感器数据采集、视频数据采集、视频播放功能。服务器分为事务服务器和流媒体服务器,事务服务器使用python语言搭建_小米摄像头流地址
文章浏览阅读5.4k次。这段时间调试公司处理器can总线,实现最基本的对发实验,can控制器是sja1000,起初因为是对发实验,同样2块开发板,同样内核配置相同,因此时钟以及波特率肯定一样,也没有仔细研究can的时钟以及波特率,今天有客户问can控制器的时钟以及波特率,下午仔细看了一下sja1000手册,并且写了一个由波特率和时钟来计算分频值的小程序,这里总结一下。 sja1000 can工作频率和波特率之间分频_bus timing register
文章浏览阅读1w次。ARM处理器共有7中运行模式: 用户模式(usr) -- 正常程序执行模式 |-- |-- 快速中断模式(fiq) -- 用于高速数据传输和通道处理 特 | 异 | 外部中断模式(irq) _arm 进入异常之后 lr = pc -4
文章浏览阅读2k次。IT这个行业太广泛了,虽然写代码编程占了其中很重要的一个部分,但是真的不是全部!在IT行业有很多不同的工作角色。开始是一个程序猿,是的,我入行第一份工作确实就是coding,然后做企业级产品的硬件安装工程师,然后是做软件安装工程师,接下来是做解决方案工程师,再然后是系统架构师,再然后是解决方案顾问,现在我在一家外企IT公司负责公司相关产品在几个重点行业的技术支持工作。我除了入行的最开始写了两年程序,其他的职位都不是程序猿!大家不要再把IT局限到写程序了好么,有大把的工作岗..._ⅰt是程序员吗
文章浏览阅读10w+次,点赞161次,收藏1k次。Tomcat安装与配置,Eclipse集成Tomcat,Eclipse如何配置Tomcat_tomcat安装及配置教程