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

news2024/11/16 5:31:43

(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.coloradmin.cn/o/1678255.html

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

相关文章

企业研发必备网络:这些关键特性,你get了吗?

对于以研发为核心的企业&#xff0c;如软件开发、生物制药、智能汽车等&#xff0c;安全、稳定的研发网络可是他们业务发展不可或缺的。那么&#xff0c;这些研发网络究竟有哪些独特之处&#xff0c;又能为企业带来哪些价值呢&#xff1f; 首先&#xff0c;我们知道企业研发常常…

【设计模式】JAVA Design Patterns——Adapter(适配器模式)

&#x1f50d;目的 将一个接口转换成另一个客户所期望的接口。适配器让那些本来因为接口不兼容的类可以合作无间。 &#x1f50d;解释 现实世界例子 考虑有这么一种情况&#xff0c;在你的存储卡中有一些照片&#xff0c;你想将其传到你的电脑中。为了传送数据&#xff0c;你需…

【管理咨询宝藏104】普华永道财务管理与内控培训

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏104】普华永道财务管理与内控培训 【格式】PDF版本 【关键词】普华永道、四大、财务管理 【核心观点】 - 职能转变后&#xff0c;财务在决策支持…

「前端」性能优化问题总结

前言 本文主要介绍一些前端通用的性能优化方案总结&#xff0c;非写代码阶段的性能优化。 分包 React router V6.4 数据路由新特性 <Route path/xx lazy{async()>{const module await import(./xx)const XX module.defaultreturn{element:(<Suspense fallback…

紫光展锐先进技术科普 | 工业互联网遇到5G,1+1>2?

随着工厂自动化的加速普及&#xff0c;如今我们可能经常看到这样的场景&#xff1a;在高温、潮湿、粉尘、腐蚀等恶劣环境作业场景&#xff0c;巡检机器人穿梭其中&#xff0c;工人们不必弯腰去搬沉重又危险的器件&#xff0c;而旁边会有一个个机械臂帮手平稳有序地完成好所有搬…

HTTP客户端手动解析响应体数据

服务端 package mainimport ("easyGo/person""encoding/json""net/http" )func main() {http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {p : &person.Person{Name: "jackie",Age: 30,T: pe…

【JAVA进阶篇教学】第十六篇:Java中AOP使用

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第十五篇&#xff1a;Java中AOP使用。 AOP&#xff08;Aspect-Oriented Programming&#xff09;是一种编程范式&#xff0c;它允许开发者在不修改源代码的情况下&#xff0c;对代码进行横切关注点的分离和增强。在 Java…

Linux上安装python指南

公司的linux服务器上只有自带的python2,折腾了一下安装python3,后来在网上搜发现装miniconda会更加方便。 1、 下载miniconda安装包 清华镜像下载&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 点这里下载 2、 上传Linux安装 #安装在/usr/local/mini…

Spring AI默认gpt版本源码探究

Spring AI默认gpt版本源码探究 调试代码 通过调试&#xff0c;可以看到默认mdel为gpt-3.5-turbo 源码探究 进入OpenAiChatClient类查看具体的代码信息 可以看到如下代码&#xff0c;在有参构造方法中可以看到&#xff0c;model默认使用OpenAiApi.DEFAULT_CHAT_MODELpublic…

离子风机:静电防护的得力助手

在现代工业生产中&#xff0c;静电问题一直是困扰许多企业的难题。尤其是在电子生产线、维修台等敏感区域&#xff0c;静电的存在可能对产品质量造成严重影响&#xff0c;甚至导致设备损坏。为了解决这一问题&#xff0c;离子风机作为静电防护的得力助手&#xff0c;正逐渐受到…

制造企业数据管理:从数据到价值的转化

在数字化浪潮席卷全球的今天&#xff0c;制造企业面临着前所未有的机遇与挑战。如何从海量的数据中提取有价值的信息&#xff0c;将其转化为企业的核心竞争力&#xff0c;成为了每一个制造企业必须面对的问题。而数据管理&#xff0c;正是实现这一转化的关键所在。制造企业数据…

第01章 互联网的概述(发展历史+接入方法+应用)

1.1 本章目标 了解互联网发展的历史熟悉互联网的接入方式了解互联网的典型应用 1.2 互联网发展的历史(产生过程、发展过程) 1.2.1 互联网的起源与发展 1.2.2 互联网在中国的发展 1.3 互联网的接入

【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近项目中需要用到大疆无人机遥控器对程序中无人机进行控制,遥控器是下图这一款: 博主发…

Django创建网站的地基

相关文档 1、为新网站创建一个文件夹&#xff08;这里是&#xff1a;locallibrary&#xff09; D:\django>mkdir locallibraryD:\django>cd locallibraryD:\django\locallibrary>dirVolume in drive D is 新加卷Volume Serial Number is B68C-03F7Directory of D:\dj…

网工路由基础——动态路由协议(RIP)

一、动态路由协议的分类 1.按工作区域分类&#xff1a; 动态路由协议按用途分类可以分为内部网关协议&#xff08;IGP&#xff09;和外部网关协议&#xff08;EGP&#xff09;。一个Internet网可以被分成多个域或多个自治系统&#xff0c;各自治系统通过一个核心路由器…

深入学习Linux内核之v4l2应用编程(二)

一&#xff0c;用户空间访问v4l2设备步骤 V4L2&#xff08;Video for Linux 2&#xff09;是Linux中关于视频设备的内核驱动&#xff0c;它使得Linux系统能够支持视频设备&#xff0c;如摄像头。对于Camera V4L2的应用编程&#xff0c;一般遵循以下步骤&#xff1a; 1&#x…

PADS:生成自交叉平面区域

根据板外形铺铜方法&#xff1a; pads根据板外形铺铜_铺铜如何根据板子形状改变-CSDN博客 根据板外形创建平面区域出现问题&#xff1a; 解决方法&#xff1a;去找结构&#xff0c;让他把出图之前把线合并了

上海市虹桥祥源希尔顿酒店屋顶气膜网球馆

上海市虹桥祥源希尔顿酒店屋顶气膜网球馆为高端酒店设施增添了现代化、环保的运动场所。这座网球馆不仅为酒店住客提供了一个全天候、舒适的运动空间&#xff0c;也为虹桥地区的居民带来了全新的健身体验。作为轻空间&#xff08;江苏&#xff09;膜科技有限公司&#xff08;以…

潮玩与游戏的结合点——潮玩宇宙App与链游

本文主要介绍了潮玩宇宙App的开发过程及其链游的开发&#xff0c;探讨了潮玩与游戏的结合点&#xff0c;分析了其市场前景和潜在风险&#xff0c;并提出了相应的建议。 一、潮玩宇宙App的开发背景 随着互联网的普及和人们对娱乐方式的多样化需求&#xff0c;潮玩市场逐渐崛起…

2024 年 4 月公链研报:比特币减半、市场回调以及关键进展

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;Footprint Analytics 公链研究页面 四月&#xff0c;加密市场在经济环境变化中取得了重要进展。4 月 20 日的比特币完成减半&#xff0c;但市场整体低迷导致比特币及前 25 大公链加密货币价格下跌。与此同时&am…