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命令,但仍然没有权限读出目录下的文档。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘!你的电商产品为何滞销?同行火爆销售的7大原因!

同样做电商&#xff0c;但自家产品销量不如竞对同行&#xff0c;可能的原因有多种&#xff0c;以下是店雷达总结7个可能的原因和对策&#xff1a; 一、市场竞争分析不足 未能准确识别并分析竞争对手的产品、定价、营销策略等关键信息&#xff0c;导致自身产品无法脱颖而出。 …

机器学习(四) ----------逻辑回归

目录 1 概述 2 极大似然估计 3 逻辑回归核心思想 3.1 对数似然损失&#xff08;Log-likelihood Loss&#xff09; 4 分类问题的评估方法 4.1 混淆矩阵&#xff08;Confusion Matrix&#xff09;&#xff1a; 4.2 准确率&#xff08;Accuracy&#xff09; 4.3 精确率&am…

数据结构与算法学习笔记三---栈和队列

目录 前言 一、栈 1.栈的表示和实现 1.栈的顺序存储表示和实现 1.C语言实现 2.C实现 2.栈的链式存储表示和实现 1.C语言实现 2.C实现 2.栈的应用 1.数制转换 二、队列 1.栈队列的表示和实现 1.顺序队列的表示和实现 2.链队列的表示和实现 2.循环队列 前言 这篇文…

P9748 [CSP-J 2023] 小苹果:做题笔记

目录 P9748 [CSP-J 2023] 小苹果 思路 代码 P9748 [CSP-J 2023] 小苹果 P9748 [CSP-J 2023] 小苹果 思路 先写几个看看规律 题意我们能看出来是三个三个一组的&#xff0c;然后每次取走的都是三个里面的第一个。我们应该很容易想到如果一轮的总数是三的倍数的话&#xff0…

94、动态规划-最长公共子序列

递归的基本思路&#xff1a; 比较两个字符串的最后一个字符。如果相同&#xff0c;则这个字符一定属于最长公共子序列&#xff0c;然后在剩余的字符串上递归求解。如果最后一个字符不相同&#xff0c;则分两种情况递归求解&#xff1a; 去掉 text1 的最后一个字符&#xff0c;保…

【论文笔记 | 异步联邦】FedSA

FedSA&#xff1a;一种处理 non-IID 数据 的 过时感知 异步联邦算法 1. 论文信息 FedSA&#xff1a;A staleness-aware asynchronous Federated Learning algorithm with non-IID data&#xff0c;Future Generation Computer Systems&#xff0c;2021.7&#xff0c;ccfc 是…

RHEL之网络接口的绑定

前言 这些步骤最好都在虚拟机中完成 网络接口绑定是将多个网络接口逻辑地连接在一起&#xff0c;目的一是避免网络接口的单点故障&#xff0c;二是提高带宽以提高吞吐率 具体步骤 1.用ip link查看有哪些网络接口 2.添加一个类型bond的连接 nmcli con add type bond con-nam…

【汇编】算术指令

一、加法指令 &#xff08;一&#xff09;各加法指令的格式及操作 加法指令可做字或字节运算 &#xff08;1&#xff09;加法指令 ADD 格式&#xff1a;ADD DST,SRC执行的操作&#xff1a;(DST) ← (SRC)(DST) &#xff08;2&#xff09;带进位加法指令 ADC 格式&#xf…

AIGC岗位需求增长超300%,平均年薪超40万元

AI圈最近又发生了啥&#xff1f; AIGC 应用爆发&#xff0c;相关岗位需求增长超 300%、平均招聘年薪超 40 万元 随着 AI应用的爆发&#xff0c;生成式人工智能(AIGC)的招聘市场十分火爆。数据显示今年一季度&#xff0c;生成式人工智能相关职位需求同比增长超三倍。从全平台增…

功能安全如何在公司顺利开展?-亚远景科技

亚远景功能安全主题线上会议报名开启&#xff01; 随着汽车技术的不断发展&#xff0c;汽车系统的复杂性和交互性大幅增加&#xff0c;功能安全成为确保驾驶员、乘客及行人安全的关键。 本场功能安全线上会议&#xff0c;亚远景为汽车行业的相关人员准备了以下内容&#xff1a…

Linux|基础IO

Linux|基础IO 回顾c语言的文件操作提炼对文件的理解系统调用初始open函数返回值fd为什么我们向fd一个整数写就写入文件了呢&#xff1f;怎么理解读写操作总结open函数有哪些功能怎么理解往硬件&#xff08;显示器&#xff0c;键盘&#xff09;中读写数据如何理解FILE*访问文件 …

【C语言】自定义类型之---结构体超详解(结构体的定义使用、指针结构体,内存对齐,......代码详解)

目录 前言&#xff1a; 一&#xff1a;结构体 1.1&#xff1a;什么是结构体&#xff1f; 1.2&#xff1a;结构体类型的声明 1.3&#xff1a;结构体变量的定义 1.4&#xff1a;结构体的内存对齐 1.5&#xff1a;结构体传参 二&#xff1a;位段 2.1&#xff1a;位段是什…

2024年【金属非金属矿山(露天矿山)安全管理人员】模拟考试题库及金属非金属矿山(露天矿山)安全管理人员作业模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员模拟考试题库参考答案及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&a…

Google I/O 2024 干货全解读:Gemini AI 横空出世,智能未来触手可及!

Google I/O 2024 干货全解读&#xff1a;Gemini AI 横空出世&#xff0c;智能未来触手可及&#xff01; 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》…

面试前端随笔20240510

最近公司招聘前端开发人员有幸参与帮听&#xff0c;总结了三个有关vue的面试问题和答案&#xff0c;现在分享一下。 1.Vue2数据监听无法监听数组为啥&#xff1f;有啥解决方案&#xff1f;vue3中是如何处理这个问题&#xff1f; vue2的官方说明了defineProperty的一些限制&…

Oracle SQL Developer 脚本输出中文显示乱码

问题描述 在测试Oracle Select AI&#xff08;自然语言查询数据库&#xff09;时&#xff0c;发现Run Statement中文显示正常&#xff1a; 而Run Script中文显示乱码&#xff1a; 问题解决 进入菜单Tools>Preferences...>Environment&#xff0c; 修改SQL Developer…

JavaScript-JSON对象

JSON格式 JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。它基于ECMAScript&#xff08;European Computer Manufacturers Association, 欧洲计算机协会的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示…

盘点那些年我们一起玩过的网络安全工具

一、反恶意代码软件 1.Malwarebytes 这是一个检测和删除恶意的软件&#xff0c;包括蠕虫&#xff0c;木马&#xff0c;后门&#xff0c;流氓&#xff0c;拨号器&#xff0c;间谍软件等等。快如闪电的扫描速度&#xff0c;具有隔离功能&#xff0c;并让您方便的恢复。包含额外…

项目中使用Elasticsearch的API相关介绍

项目中使用Elasticsearch的API相关介绍 0、域映射类型 text&#xff1a;会分词&#xff0c;不支持聚合对当前搜索关键词&#xff0c;先自身分词&#xff0c;分成多个词&#xff0c;然后去一个一个的词去利用倒排索引去查询es索引库一般应用在搜索关键字匹配的字段的类型。 商…

Beego 使用教程 6:Web 输入处理

beego 是一个用于Go编程语言的开源、高性能的 web 框架 beego 被用于在Go语言中企业应用程序的快速开发&#xff0c;包括RESTful API、web应用程序和后端服务。它的灵感来源于Tornado&#xff0c; Sinatra 和 Flask beego 官网&#xff1a;http://beego.gocn.vip/ 上面的 bee…