shell初识

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

shell:实际上是一个命令的解释程序,是一个用户与系统内核沟通的桥梁。

内核:完成系统核心功能,对软硬件资源进行控制管理的系统集合—用户不能直接操作。

不让用户直接访问内核,是出去安全考虑。但是想使用内核的功能,该怎么做呢?只能通过操作系统提供的特定接口来完成对内核的访问,但是系统接口对一般程序猿不太友好,这时候,大佬们针对系统调用接口封装实现了一个个独立功能的程序。(比如浏览目录内容的功能程序),普通的用户想要浏览目录只需要执行这个程序就可以了。

对于这个思路,大佬们实现了一个命令行解释程序shell:捕捉键盘的输入,执行对应的程序(输入ls字符,就执行ls程序)

在系统内部,是都已经将功能写好了,我们要使用功能,只需要输入相对应的字符即可。
在Linux系统下,根目录下有一个/bin目录,内部存放的就是系统中的命令功能程序;当我们在终端中输入命令名称之后,shell捕捉到我们的输入,就知道我们想要执行哪个程序,然后再/bin目录中找到对应的程序,执行,完成功能。一个终端被打开,默认就会执行一个程序,就是shell。

专有名称:我们(终端)所输入的命令被称为shell命令;shell其实就是一个程序,捕捉我们输入的命令名称,执行对应功能程序。

在Linux下,默认的shell是bash,还有一个shell是chsh。我们可以通过ls -l /bin/*sh指令查看当前shell

第二个蓝色字体的bin/sh,它指向谁,谁就是默认的shelll。

在windows系统下,shell就是UI界面,我们的家庭电脑几乎都是windows系统,shell是UI界面,这样子就便于用户操作和使用电脑。

权限理解

Linux是一个多用户操作系统,多个用户可以同时操作。但这就引发了一系列的安全问题,假如公司两个人闹矛盾,互删对方的代码,这就引发很大的麻烦。所以我们引入权限,来控制操作对方文件的做法。
权限分为两种:
1、用户对系统的操作权限
linux将用户分为两类:管理员用户(root)、普通用户
sudo 这不是一个单独的指令,与其他的指令搭配使用,表示当前用户的这次操作临时进行提权,权利与root平等。
但是并不是所有用户只要使用sudo就可以提权,需要管理员和系统的信任。也就是需要配置。配置方法:
1.1 切换到管理员用户,执行指令visudo
1.2会进入一个页面,我们需要配置的地方大概在90行左右。输入:90

1.3进入后输入i即可对文件进行修改。会出现-- INSERT–字样表示可以开始修改

1.4在下面添加用户名。例如:linux ALL=(ALL) ALL 格式与上面匹配


1.5完成后按esc再按:wq退出即可

2、用户对文件的访问权限
2.1、对于访问用户的分类:文件所有者u,文件所属组g,其他用户o。
2.2、对于访问操作的分类:可读r,可写w,可执行x。

第一个字母d是文件的类型,为目录文件,这里先忽略第一个字母d。我们可以发现有3个红框,第一个红框对应的是文件所有者对文件访问的权限,第二个红框对应的是所属组对文件访问的权限,第三个红框对应的是其他用户对文件访问的权限。对应的访问操作没为-时,表示没有该操作的权限。例如在Downloads文件中,文件所有者可读可写可执行,所属组和其他用户都是可读可执行,但不可写。

权限除了字符表示还可以使用八进制数字表示
111 111 111 分别对应
rwx rwx rwx
这里再面试中经常会出题,例如
1、有一个文件权限位为654,请问所属组能够对文件进行什么操作?
解:所属组对应的是中间的数字5,二进制表示101,字符表示r-x 表示可读可执行
2、有个文件所有者可读可写不可执行,所属组只读,其他用户只读,如何表示权限?
解:所有者:rw- 所属组: r-- 其他用户: r-- 644

查看设置默认权限,可以通过umask指令查看

直接输入umask会出现4个数字,第一个数字是特殊的占位符,可以忽略,只要看后3位,这3位数字是权限位的子网隐码。取反后为775,就可以知道默认权限。
但是创建文件时,默认权限会取消可执行这个操作,但是对目录并没有影响

设置默认权限输入 umask 333,设置默认权限位的掩码为333。

修改文件权限 chmod
例如修改a.txt文件的权限,使其他用户可写
执行前:

//chmod 用户类+权限 file
//chmod [augo] +/-[rwx] file
chmod o+w a.txt
//也可以通过八进制数字指定
//chmod 777 file

执行后:

修改文件所属用户

chown uname file

修改文件所属组

chgrp uname file

特殊权限:沾滞位–目录文件针对其他用户的一个权限
功能:每个人(其他用户)只能在目录当中创建文件或者删除自己的文件,不能删除别人的文件

设置沾滞位:chmod +t file
设置沾滞位之前:

chmod +t a.txt

设置沾滞位之后:

可以发现权限有个T,表示开启了该权限。

Linux shell初识及权限理解相关推荐

  1. linux shell数组深入学习理解

    本文为大家介绍linux shell数组的相关知识,并提供了充足的例子供参考,这么好的东东,千万不要错过 bash shell只支持一维数组,但参数个数没有限制. 声明一个数组: declare -a ...

  2. 【Linux编程】一、Linux常见指令和权限理解(思维导图总结)

    文章目录 Linux下基本指令 01.ls 指令 02.pwd 指令 03 cd 指令 04.mkdir 指令 05.rmdir 指令 06.rm 指令 07.tree 指令 08.cp 指令 09. ...

  3. Linux目录以及文件权限理解

    了解Linux系统目录/文件权限结构 利用ls -al 命令可以列出详细的文件以及隐藏文件的权限,显示详细时间信息可以用ls -al --full-time 以.bash_history文件为例:-r ...

  4. Linux常见指令以及权限理解(上)

    1.Linux下基本指令 01. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件名以及其他信息. 常见搭配: -a 列出目 ...

  5. linux基础(1)-常见指令及权限理解

    1.常见指令及权限理解 初始Linux操作系统 初识shell命令 ,了解若干背景知识. 使用常用Linux命令 了解Linux权限概念与思想,能深度理解"权限" 初步了解Linu ...

  6. Liunx中shell命令行和权限的理解

    文章目录 前言 1.shell外壳的理解 2.关于权限理解 1.Linux下的用户 2.角色划分 3.文件和目录的权限 3.粘滞位 3.总结 前言 Linux中的操作都是通过在命令行上敲指令来实现的, ...

  7. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  8. linux shell bin sh,linux shell中#bin/sh的理解

    摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室 ...

  9. 【Linux】基本指令和权限理解

    指令目录 一.基本指令 1.1 背景介绍 1.2 基本指令 1.2.1 ls 1.2.1.1 which ls 1.2.1.2 ll 1.2.1.3 man is 1.2.2 pwd 1.2.3 tr ...

最新文章

  1. python3使用requests模块完成get/post/代理/自定义header/自定义Cookie
  2. 【HTML+CSS】练习:百度首页模拟
  3. 嗨,你选择自学成才还是参加培训?
  4. 计算机程序备份,将应用程序快照备份到计算机
  5. python显示中文文件内容_Python实现的json文件读取及中文乱码显示问题解决方法...
  6. python递归创建目录_Python学习第172课——Linux中一次性创建多层目录以及递归列出所有子目录...
  7. crontab计划任务的失败记录查找
  8. Java求解自由落体相关问题
  9. python编程可以自学么-终于发现怎么自学python编程
  10. 初中参观机器人博物馆的作文_导览机器人为参观者带来更佳的观展体验
  11. 云南机房建设整体解决方案、华为智能模块化数据中心机房
  12. 计算机数据计量单位换算
  13. 1g1h1m mysql_mysql服务器优化
  14. 七种方式实现三栏布局
  15. 六十星系之25廉贞天相坐子午
  16. Qt5之图形视图框架(一)
  17. 小程序源码:修复登录大河盲盒小程序源码,实现运营“玩法自由”,超多功能的盲盒型抽奖挖矿程序源码下载
  18. MacOS配置go环境
  19. ruby gem 安装mysql2_如何在不安装 mysql 数据库的情况下安装 mysql2gem 包
  20. win10专业版虚拟机配置服务器,windows10专业版使用虚拟机Hpyer-V的办法

热门文章

  1. 计算机原理课程代码二三八四,计算机原理(2012年版)课程代码:02384
  2. revman软件_meta分析概述及RevMan软件安装教程
  3. js php 中文乱码怎么解决_php中文乱码怎么解决
  4. android 2.3 otg,学会使用手机的OTG功能-事半功倍-系列评测2
  5. 使用docker下载并安装mongodb5.0.5
  6. hadoop框架分析
  7. Android自定义控件学习(五)-------自定义绘图
  8. 基于JAVA+Servlet+JSP+MYSQL的网络考试系统
  9. HOLOLENS不适合加天空盒
  10. 多线程中对全局变量(整型类型)是否需要同步操作