C++系统编程篇——Linux初识(系统安装、权限管理,权限设置)

(1)linux系统的安装

  • 双系统---不推荐
  • 虚拟机+centos镜像(可以使用)
  • 云服务器/轻量级云服务器(强烈推荐)

①云服务器(用xshell连接)
ssh  root@公网IP        然后输入password

①添加用户:

· adduser user_111

· passwd user_111

②用户登录:

· ssh user@公网IP        password

③修改用户:

· userdel -r user_111

②虚拟机

(2)Linux应用场景及版本

1.企业后台最常用----服务器(centos居多,Ubuntu)

2.手机--安卓手机/平板--Linux

3.嵌入式领域

4.智能家居领域,汽车领域

商业化版本:

技术版本:主版本号.次版本号.修正次数(偶数:稳定版本,奇数:开发版本)

(3)操作系统是什么?为什么要有操作系统?

操作系统是一款进行软件资源管理的软件,Linux是一款具体的擦偶做系统的品类,centos7是一款具体的linux操作系统

1.对下提供基本的管理工作,让各种硬件工作在一个稳定的、高效的、安全的状态当中(手段)

2.对上要提供一个高效的、稳定的安全运行环境里(用户的,目的)

(4)指令

1.基础指令

命令

功能

pwd

查看当前文件所在位置

ls

罗列出当前路径下的文件名

cd

进入指定的文件夹

cd -

跳转到最近一次所处的路径下

cd ~

进入用户家目录

clear-

清屏

touch file.txt

用于修改文件的访问时间和修改时间,或者创建新的空文件,在当前目录下,快速创建一个新的普通文件

whoami

查看当前正在使用的人是谁

which

要求系统打印出我所指定的命令名称在系统所在的路径

alias

给其他命令起一个别名(别名只在当前会话中有效)

(创建一个名为 ll 的别名,将其映射为 ls -l 命令:alias ll='ls -l')

tree

以树的形式显示目录结构

(tree example)

(sudo) yum -y install tree

安装

madir

在当前路径下,创建一个新的文件夹

rmdir

删除空目录

rm

删除文件或目录

man

Linux帮助手册

cp

在不同的位置创建文件的副本

(创建一个名为 "file2.txt" 的副本,其内容与 "file1.txt" 相同:cp file1.txt file2.txt

mv

移动文件或目录的,也可以用来重命名文件或目录

(将文件 "file1.txt" 移动到指定目录中:mv file1.txt /path/to/directory/

(将文件重命名为 "newname.txt":mv oldname.txt newname.txt

cat

tac是逆向输出查看

查看较小的文件,会将整个文件的内容一次性输出到屏幕上

more

more 命令比较适合查看大文件,是分页器,它会将文件内容逐页显示在终端上,并在显示完一页后停止,等待用户按键继续查看下一页。

less

允许用户在文件的内容中进行前后翻页、搜索、跳转等操作,并且在查看文件时,不会像 more 那样一次性加载整个文件内容(推荐

head

显示开头或结尾某个数量的文字区块

(查看开头二十行:head -20 big.txt 默认10行)

tail

显示指定文件末尾内容(查看结尾二十行:tail -20 big.txt 默认10行)

| --> 管道

级联多条指令

(查看文件中间内容(8790~8800行):head -8800 big.txt | tail -10)

wc

统计文本行数

date

指定格式显示时间: date +%Y:%m:%d

%H : 小时(00..23)

%M : 分钟(00..59)

%S : 秒(00..61)

%X : 相当于

%H:%M:%S %d : 日 (01..31)

%m : 月份 (01..12)

%Y : 完整年份 (0000..9999)

%F : 相当于 %Y-%m-%d

cal

显示公历(阳历)日历

  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

(显示2018年的日历:Cal –y 2018)

find

find命令在目录结构中搜索文件

grep

在文件中搜索字符串,将找到的行打印出来

zip/unzip

将目录或文件压缩成zip格式

-r 递归处理,将指定目录下的所有文件和子目录一并处理

tar

sz/rz

把云服务器上的文件传输到本地/本地文件上传到云服务器

scp

scp xxx.tgz root(用户名)@IP:/root(拷贝到对方的位置)

bc

浮点运算

uname –r

来获取电脑和操作系统的相关信息

[Tab]按键

『命令补全』和『档案补齐』的功能

[Ctrl]-c按键

让当前的程序『停掉』

[Ctrl]-d按键

『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit

shutdown

关机

2.详细的谈论课件中的所有的指令 -- 附加Linux周边的配套知识

① 文件 = 文件属性 + 文件内容

② 在linux中, 开头的文件是隐藏项目

  • 在任何目录下,都会默认具有两个隐藏目录, 和 ..
    •  . -> 用它来表示当前路径
    •  .. -> 用它来表示上级目录

③家目录

任何一个用户,首次登录所处路径都是自己的家目录

家目录:root---超级管理员账户--- /root

              XXX用户 --- 普通用户 --- /home/XXX

④ 重定向

输出重定向:

echo(把本来应该显示在显示器上的数据,显示在文件中):

  • echo “hello”>file
  • 创建一个空文件:>file
  • 清空一个文件:>file

追加重定向

  • 从结尾处写入(不会清空):echo “hello”>>file(两个>)

输入重定向

  • cat < code.c(从文件code.c中读取并重定向到显示器中)

构建一个大文件的方法

i=1;while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt

当 i < 10000 时,往文件big.txt中写入i = 1,并执行 i++(注意空格)

(5)shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)

主要包含: 将使用者的命令翻译给核心(kernel)处理。 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

(6)Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

用户切换

  • 从root用户切换到普通用户user,则使用 su user
  • 从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

(7)Linux权限管理

①文件访问者的分类(人)

u---User 文件和文件目录的所有者

g---Group 文件和文件目录的所有者所在的组的用户

o---Others 其它用户

②文件类型和访问权限(事物属性)

a) 文件类型

-

普通文件

d

文件夹

i

软链接(类似Windows的快捷方式)

b

块设备文件(例如硬盘、光驱等)

p

管道文件

c

字符设备文件(例如屏幕等串口设备)

s

套接口文件

b) 基本权限

读(r/4)

Read对文件而言,具有读取文件内容的权限

对目录来说,具有浏览该目录信息的权限

写(w/2)

Write对文件而言,具有修改文件内容的权限

对目录来说具有删除移动目录内文件的权限

执行(x/1)

execute对文件而言,具有执行文件的权限

对目录来说,具有进入目录的权限 iv.“-”表示不具有该项权限

③文件权限值的表示方法

a) 字符表示方法

b) 8进制数值表示方法

④文件访问权限的相关设置方法

a) chmod

  • 功能:设置文件的访问权限
  • 格式:chmod [参数] 权限文件名
  • 常用选项:R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式

①用户表示符+/-=权限字符

例: chmod u+w /home/abc.txt

        chmod o-x /home/abc.txt

        chmod a=x /home/abc.txt

+

向权限范围增加权限代号所表示的权限

-

向权限范围取消权限代号所表示的权限

=

向权限范围赋予权限代号所表示的权限

用户符号

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

②三位8进制数字

例: chmod 664 /home/abc.txt

        chmod 640 /home/abc.txt

b) chown

  • 功能:修改文件的拥有者
  • 格式:chown [参数] 用户名文件名
  • 实例:
    • chown user1 f1
    • chown -R user1 filegroup1

c) chgrp

  • 功能:修改文件或目录的所属组
  • 格式:chgrp [参数] 用户组名文件名
  • 常用选项:-R 递归修改文件或目录的所属组
  • 实例:
    • chgrp users /abc/f2

d) umask

  • 功能:
    • 查看或修改文件掩码
    • 新建文件夹默认权限=0666
    • 新建目录默认权限=0777
    • 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
  • 格式:umask 权限值
  • 说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用 户默认为0002。
  • 实例
    • umask 755
    • umask //查看
    • umask 044//设置

(8)file指令

  • 功能说明:辨识文件类型。
  • 语法:file [选项] 文件或目录...
  • 常用选项:

        -c 详细显示指令执行过程,便于排错或分析程序执行的情形。

        -z 尝试去解读压缩文件的内容。

  • 使用 sudo分配权限

(1)修改/etc/sudoers 文件分配文件

        chmod 740 /etc/sudoers

        vi /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户)命令

(2)使用 sudo 调用授权的命令

        格式:$ sudo –u 用户名命令

        实例:$sudo -u root /usr/sbin/useradd u2

(9)目录的权限(粘滞位)

可执行权限(x)

如果目录没有可执行权限, 则无法cd到目录中

可读权限(r)

如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容

可写权限(w)

如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限. 这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们用下面的过程印证一下.

[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld 
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c
 
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"?y
 
[litao@localhost ~]$ exit 
logout

为了解决这个不科学的问题, Linux引入了粘滞位的概念

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除

(10)关于权限的总结

  1. 目录的可执行权限是表示你可否在目录下执行命令。
  2. 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  3. 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  4. 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何去掉试卷答案,并打印出来

实际上&#xff0c;针对试卷答案的问题&#xff0c;一个简单而高效的方法是使用图片编辑软件中的“消除笔”功能。只需将试卷拍摄成照片&#xff0c;然后通过这一功能&#xff0c;就可以轻松擦除答案。虽然这种方法可能需要一些时间和耐心&#xff0c;但它确实为我们提供了一个…

增程SUV价格即将崩盘?买车一定要再等等!

文 | AUTO芯球 作者 | 雷歌​ 真是“离谱”啊&#xff0c;车圈真是逗比欢乐多&#xff0c; 我这两天看一个博主连续40多小时开车直播&#xff0c;充电口、油箱盖全部封死&#xff0c;全程视频直播没断过&#xff0c; 就为了测试这两天刚上市的星际元ET续航有多远。 另一个…

深入解析RedisJSON:在Redis中直接处理JSON数据

码到三十五 &#xff1a; 个人主页 JSON已经成为现代应用程序之间数据传输的通用格式。然而&#xff0c;传统的关系型数据库在处理JSON数据时可能会遇到性能瓶颈。为了解决这一问题&#xff0c;Redis推出了RedisJSON模块&#xff0c;它允许开发者在Redis数据库中直接存储、查询…

Flink最全文档

Flink架构&#xff1a; 分布式系统Flink&#xff0c;需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器&#xff0c;例如Hadoop Yarn&#xff0c;Apache Mesos&#xff0c;Kubernetes&#xff0c;但是也可以设置作为独立集群甚至库来运行。 分…

3ds Max与Maya不同之处?两者哪个更适合云渲染?

3ds Max 和 Maya 都是知名的3D软件&#xff0c;各有其特色。3ds Max 以直观的建模和丰富的插件生态闻名&#xff1b;Maya 则在动画和角色创作方面更为出色。两者都支持云渲染技术&#xff0c;能帮助用户在云端高效完成项目。 一、3ds Max和Maya之间的主要区别&#xff1a; 3ds…

如何在控制台应用程序里面托管ASP.NET Core WebApi + swashbuckle生成接口文档

目录 介绍项目结构运行效果新增引用新增文件介绍 本文讲解如何在控制台应用程序里面托管ASP.NET Core WebApi + swashbuckle生成接口文档 本文是上一篇文章的延续,如果你对这部分内容还不了解,建议先读上一篇文章:如何在控制台应用程序里面托管ASP.NET Core网站 项目结构 …

原子学习笔记3——点亮 LED

一、应用层操控设备的两种方式 应用层如何操控底层硬件&#xff0c;同样也是通过文件 I/O 的方式来实现&#xff0c;设备文件便是各种硬件设备向应用层提供的一个接口&#xff0c;应用层通过对设备文件的 I/O 操作来操控硬件设备&#xff0c;譬如 LCD 显示屏、串口、按键、摄像…

MVC 过滤器

MVC 过滤器常用有4种 Action过滤器&#xff08;IActionFilter&#xff09; 》 行为过滤器Result过滤器 &#xff08;IResultFilter&#xff09;》 视图过滤器 或 结果过滤器Exception过滤器&#xff08;IExceptionFilter&#xff09;》 异常过滤器Authorization过滤器&#xf…

OpenAI 发布了免费的 GPT-4o,国内大模型还有哪些机会?

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 这是今天在某乎看到一个问题&#xff1a;OpenAI 发完 GPT-4o&…

涨点神器:即插即用特征融合模块!超低参数,性能依旧SOTA

在写论文时&#xff0c;一些通用性模块可以在不同的网络结构中重复使用&#xff0c;这简化了模型设计的过程&#xff0c;帮助我们加快了实验的迭代速度。 比如在视觉任务中&#xff0c;即插即用的特征融合模块可以无缝集成到现有网络中&#xff0c;以灵活、简单的方式提升神经…

AIGC数字人视频创作平台,赋能企业常态化制作数字内容营销

随着数字人技术不断发展&#xff0c;AIGC、元宇宙等相关产业迅速发展&#xff0c;企业通过3D虚拟数字人定制&#xff0c;打造出专属的数字人作为企业与用户沟通的新桥梁。 作为3D、AI数字人技术服务商及方案提供商&#xff0c;广州虚拟动力一直致力于为各领域企业通过3D虚拟数字…

OpenAI春季更新:GPT-4o模型来了!!

昨晚OpenAI直播发布了春季更新&#xff0c;推出了GPT-4o模型。这个模型是继gpt-4-turbo之后官方定义的新旗舰模型&#xff0c;可以实时对音频、视觉和文本进行推理。 它真的让人觉得&#xff0c;AGI又更近一步了&#xff01;&#xff01; GPT-4o介绍 GPT-4o&#xff08;“o”…

前端工程化 - 快速通关 - ES6

目录 ES6 1.1 let 1.2 const 1.3解构 1.4链判断 1.5参数默认值 1.6箭头函数 1.7模板字符串 1.8Promise 1.9Async 函数 1.10模块化 ES6 ●ECMAScript&#xff08;ES&#xff09; 是规范、 JavaScript 是 ES 的实现 ●ES6 的第一个版本 在 2015 年 6 月发布&#xff0c…

相机模型,坐标变换,畸变

小孔成像模型 墨子就记录了小孔成像是倒立的。这从几何光学的角度是很好理解的&#xff1a;光沿直线传播&#xff0c;上方和下方的光线交叉&#xff0c;导致在成像平面位置互换。 小孔的大小有什么影响&#xff1f; 小孔越大&#xff0c;进光量变大了&#xff0c;但是成像平…

微信加粉计数器

1.采用非注入式开发&#xff0c;支持无限多开 2.每个账号都有独立的分组&#xff0c;实时远程网页数据分享 3.后台功能强大&#xff0c;操作简单&#xff0c;自动去重复&#xff0c;准确计数分秒不差

【Python】理解WOE(Weight of Evidence)和IV(Information Value)

忠孝东路走九遍 脚底下踏著曾经你我的点点 我从日走到夜 心从灰跳到黑 我多想跳上车子离开伤心的台北 忠孝东路走九遍 穿过陌生人潮搜寻你的脸 有人走的匆忙 有人爱的甜美 谁会在意擦肩而过的心碎 &#x1f3b5; 动力火车《忠孝东路走九遍》 在信用评分和…

可视化 FlowChart 0.4.1 最强的拖拽组件

主要解决以及目标&#xff1a; ti-flowchart 能满足 二次开发的大部分需求。 下发GIF图可见&#xff0c;左边的模块A 由二次开发人员设计&#xff0c;通过向flowchart注册模块Dom&#xff0c;实现符合拖拽&#xff0c;编辑&#xff0c;布局&#xff0c;以及响应事件上抛。 实…

Debian12安装后更换为国内镜像源,切换root用户,解决用户名不在sudoers文件中此事将被报告

选择Debian作为编程开发最佳Linux的理由&#xff1a; Debian是面向程序员的最古老&#xff0c;最出色的Linux发行版之一。Debian提供了具有.deb软件包管理兼容性的超稳定发行版。Debian为程序员提供了许多最新功能。因此&#xff0c;它具有一个特殊的编程空间。Debian是开发人员…

第十六节:图 (20节)

一 图的概念 1&#xff09;由点的集合和边的集合构成 2&#xff09;虽然存在有向图和无向图的概念&#xff0c;但实际上都可以用有向图来表达 3&#xff09;边上可能带有权值 二 图结构的表达 1&#xff09;邻接表法 2&#xff09;邻接矩阵法 3&#xff09;除此之外还有其他众多…

adminlte 日期控件设置值

1&#xff0c;属性设置 $(function () {//Date range picker with time picker$(#reservationtime-1).daterangepicker({timePicker: false,timePickerIncrement: 1,timePicker24Hour: true,autoApply: true,singleDatePicker: true,locale: {format: YYYY-MM-DD,daysOfWeek: …