要努力,但不要着急,繁花锦簇,硕果累累,都需要过程!

1.什么是操作系统?

通过计算机工作原理来解释:

操作系统是一款管理软件:

对上为应用软件提供良好的稳定,安全,高效的运行环境

对下管理好软硬件资源

2.Linux下的基本指令:

概念:

指令:通过给操作系统写一些相应的命令,来提示计算机完成相应的操作,在Linux操作系统中输入的指令等同与在Windows操作系统图形化界面完成一些基本操作

pwd命令:

显示当前用户所在的路径:

root:表示当前目录是根目录

注:/:表示路径分隔符 ,第一个/表示根目录

ls指令:

ls:显示当前路径下的文件或目录名称:

ls -l:显示当前路径下的文件或目录更详细的属性信息:

ll:等价与ls -l

 注:文件 = 文件内容 + 文件属性信息

ls -a:显示所有的文件名,包括隐藏文件(以.开头的文件,在Linux下叫做隐藏文件)

ls -al: 显示所有文件名及属性信息

注:.表示当前路径 ,..上级路径 

 ls -ld:不进入目录,显示目录的详细信息

ls -R:递归式的列出所有目录下的子文件 

cd指令:

功能:改变工作目录,将当前工作目录改变到指定目录下

cd .. :返回上级目录

cd 路径+文件名:绝对路径 

 ../路径+文件名:相对于自身所处的路径进行定位,就是相对路径 

cd ~:进入家目录(家目录是指起始登录时默认所处的路径)

 cd -:返回最近访问的目录

tree指令

功能:按照树状结构显示所有的目录和文件

tree指令安装:yum install -y tree(使用前需要先进行安装)

whoami指令

功能:表示当前登录Linux操作系统的用户

touch指令

功能:创建一个普通文件

mkdir指令

功能:创建一个空目录

mkdir -p :递归式建立多个目录 

rmdir指令&&rm指令

rmdir:删除空目录

 rm:删除普通文件

rm -r:递归删除 

rm -rf:递归强制删除目录,及文件 (不再询问)

 rm -i :删除前进行逐一询问是否确认删除 

man指令

man默认是从1号手册开始进行查找,找到即停

man可以指定手册进行查找,man 1/2/3 命令/接口/C

cp指令

cp指令:将源文件拷贝到目的地去

cp -r:递归拷贝

cp -rf:递归强制拷贝

cp -i:拷贝前进行询问是否需要拷贝 

mv指令

功能:

1.类似剪切功能,move,移动文件或者目录

2.对文件或目录进行重命名

cat && tac指令

more指令

功能:查看文本内容

more -行数:可以查看前“行数”的内容 

q:退出more

less指令:

功能:查看文本内容

 -N:显示行号

/字符串:向下搜索“字符串”的功能


?字符串:向上搜索“字符串”的功能

head指令:

功能:查询文本头部数据(默认查询前10行)

-数字:指定查询的前多少行 

tail指令:

功能:查询尾部数据(默认后10行)

-数字:指定查询的前多少行 

如何查询中间指定的行数呢?

我们可以通过管道进行输出

 管道前面的命令是将内容写入管道,管道后面的命令是从管道拿数据

date指令

功能:查询当前时间

date 指定格式显示时间 

 时间戳:从1970年1月1日0:0开始

 -d@某个时间戳:转换时间

cal指令

功能:可以指定查询日历

find指令

-name:在指定路径中查找指定的文件

which指令:

功能:查询命令对应所处的路径

alias指令:

功能:对指令重命名起别名

whereis指令:

功能:在特定的路径下,查找指定的文件名对应的文档或命令

grep指令

功能:在文本中匹配查找指定的内容

-i:忽略大小写

-v:反向选择,将没有匹配到的进行显示

wc -l指令

功能:统计总共有多少行

sort指令:

功能:对文本内容进行排序

uniq指令

功能:对相同的文本内容进行排序

zip和unzip指令

功能:

zip:压缩目录

unzip:解压缩目录

-r:递归压缩目录下的所有文件 

 -d:解包解压到指定的路径下

打包压缩的所用:

1.将多个文件打包成一个文件,避免在传输的时候会有部分文件丢失

2.传输效率提高

tar指令

功能:打包压缩

压缩:

解压缩:

-v:在压缩/解压的时候同步显示文件列表

-t:再不解压的前提下查看压缩包里面的内容 

-C:指定路径下解压

bc指令

功能:linux下的计算器

uname指令

功能:查询Linux操作系统相关信息

-a:查询Linux操作系统详细属性信息 

-r:查询Linux操作系统内核版本 

几个常用的热键:

Tab键:命令行自动对齐或补齐

ctrl + c:终止异常程序

ctrl + r:搜素历史指令

ctrl + d:退出当前用户

lscpu指令

功能:查看cpu相关信息

lsmem指令

功能:查看内存信息

 

df-h指令

功能:查看磁盘结构

who指令

功能:查询当前Linux系统在线用户

file指令:

功能:查询文件类型

以上就是一些常用的Linux操作系统的指令,关于指令我们的理解是每个指令相当于一个可执行程序,当我们使用指令去执行一些命令的时候又是如何与操作系统交互的呢?

这里引出一个概念:命令行解释器(shell)

Linux操作系统内核称为kernel

图例关系:

举例解释:

为了更好的理解kernel与shell的关系,下面我们举一个有趣的例子:

假设你是一个优秀的程序员, 你家庭条件也很不错-你爸是村长,你家有两套房、一辆车, 你自己的年薪也是30W+;你喜欢了村里的另一个姑凉如花,但是呢你十分内向,不敢向如花表明你的心意;

但是你们村中有一个十分厉害的媒婆-王婆,王婆在你们村方圆十里都是最厉害的媒婆,只要它出马基本上就没有谈不成的;所以你找上了王婆,让她去向如花说媒,王婆也去了;

不幸的是,如花表示你是一个好人, 但是你们不适合,粗如花E经和村里的另一个高富帅订婚了, 再过-年就结婚;

但是你是一个十分专- 的人, 非如花不可,于是你还是三番五次的找王婆去给你再说一说;王婆试了几次之后发现这媒完全不可能,于是后面直接不鸟你了,也不再去找如花;

你看王婆直接不鸟你了,于是跟王婆说:“我爸是村长,王婆您再去给我说说吧。”王婆看这事不办不行,但是如果继续三潘五次去说媒,自己的口碑也没了;

后,王婆想了一个办法-王婆收了十几个徒弟,然后每次你找王婆,王婆都找-些冠冕堂皇的借口说自己没空,然后派徒弟去找如花,这样即使失败了也可以说是因为徒弟萌新太菜了;这样即不得罪村长,也保住了自己的口碑。

在上面的例子中,王婆就相当于shell,用来传递你(用户)的信息(指令)给如花(kernel),然后将如花的信息反馈给你;同时,王婆拒绝多次去说媒,相当于shell拦截了非法指令,变相的保护了kernel;最后,为了保证自己的口碑,王婆安排自己的徒弟去说媒,相当于shell本身不直接去执行指令,而是派生子进程去执行(命令行解释器存在的意义)。

总结:当用户与操作系统交互的时候不进行直接交互,而是首先将指令交给shell,如果指令合法就交给操作系统,操作系统执行完返回给shell,shell再返回给用户

3.Linux权限的概念

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

root用户:可以在Linux系统下做任何操作,不受限制

普通用户:只能做一些有限的操作

超级用户与普通用户之间的切换

root用户切换到普通用户:

su + 用户名

普通用户切换root用户

su

注:root用户到普通用户不需要输入密码,普通用户到root用户需要输入密码

sudo指令

功能:不切换root用户,以普通用户的身份执行root用户的操作权限

3.1Linux权限管理

什么是权限?

权限是一件事情允许被谁(权限是用来约束人的(一个人或一个群体))做(做某件事情前,该事情具有相应的属性)

Linux文件权限:文件权限 = 人(角色)   +      文件属性

角色:拥有者,所属组,其他人

 其他人就是除拥有者和所属组之外的人称为其他人

为何会存在所属组呢???

举个例子:假设在一家公司,有两个项目组在同一台Linux机器上共同开发一个相同的项目

假设项目A组中的一位程序员写好了代码,这位程序员就是这份代码的拥有者,如果没有所属组,当程序员的领导审核代码的时候,领导就属于其他人,当领导能够看到这份的同时项目B组的也能看到这份代码,因此为了避免这种问题,引出了所属组的概念

文件属性:r(读属性) w(写属性) x(执行属性)

第一个字符代表文件类型:

 在Linux系统中文件与文件名后缀无关

是通过显示文件属性信息中的第一个字符来区分文件类型的

Linux文件类型:

d : 目录文件

- :普通文件(源代码,库文件,可执行程序,文档压缩包等)

c :  字符设备文件(键盘,显示器)

b : 块设备(磁盘)

l : 链接文件(快捷方式)

p : 管道文件

Linux文件权限修改:

设置文件属性:

角色对应的属性信息:

修改拥有者属性:

1.给拥有者加权限:

2.给拥有者减权限:

修改所属组属性:

1.给所属组加权限:

2.给所属组减权限:

修改其他人的属性

1.给其他人加权限:

2.给其他人减权限:

同时修改属性信息:用,隔开 

a:同时增加或删除所有的权限

第二种方案:8进制方案:

设置文件所属角色:

修改拥有者:

修改所属组: 

同时修改:用:链接

4.关于权限的面试题

题一:为什么我们创建的目录或者普通文件,默认权限是我们所看到的这样子呢?

Linux规定:

目录起始权限:777

普通文件起始权限:666

在Linux系统中会默认配置好umask(权限掩码)

规定凡是在权限掩码中出现的,都必须在起始权限中去掉

去掉的准则:最终权限 = 起始权限 & (~umask)

计算过程:

注:umask可以被修改

题二:如果我们要进入一个目录,需要什么权限?? 

进入一个目录,至少需要执行权限,读权限和写权限是进入目录之后是否允许查看或写内容

这也解释了,为什么系统规定一个目录是从777开始的,因为目录创建出来后,一般要允许被进入

5.粘滞位

1.什么是粘滞位?

chmod +t  /home   #这个指令就是加上粘滞位

1.为什么存在粘滞位?

背景:

Linux是一个多用户系统,因此不同的用户有时候需要在同一个目录下进行创建各自的文件

tmp这个目录就是一个多用户的公共目录

在根目录下创建一个公共目录:

此时创建的目录拥有者和所属组都是root,对于其他人并没有写权限,既然是公共目录就一定要有所有的权限

修改权限:变成公共目录

不同用户在公共目录中创建文件:

 文件创建成功:

不同用户对别人文件的权限是只是可读

虽然对别人的文件不可写不可读,但是我可以删除别人的文件:

这是由于在同一个公共目录下的特性,为了防止这种问题,因此给  目录   设置粘滞位

程序员眼中的Linux操作系统——初识指令相关推荐

  1. Linux学习总结(30)——优秀程序员喜欢用Linux操作系统

    大多数人推荐Linux,基本上都会说Linux让你更高效.更优秀. 然而工具只是工具. 然而工具只是工具. 然而工具只是工具. 优秀程序员和不优秀程序员的区别首先是态度上的区别. 他们有自己的理想,思 ...

  2. 程序员操作系统推荐_为什么程序员要会 Linux

    (给伯乐在线加星标,看经典文章) 作者:猫嗅花 https://www.jianshu.com/p/5020fbd76d0c三大操作系统概述 三大操作系统概述 windows, macOS, linu ...

  3. 程序员眼中的编程语言和操作系统

    以下文章来自:酷壳 http://CoolShell.cn <程序员眼中的编程语言> 下图是一个搞笑的图片--程序员眼中的编程语言. 图片的横轴是编程语言. 纵轴是各语言的程序员.粉丝.信 ...

  4. [Linux] PHP程序员玩转Linux系列-nginx初学者引导

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  5. 后端程序员必备的 Linux 基础知识

    后端程序员必备的 Linux 基础知识 原文来自github stars>63k的项目JavaGuide,欢迎小伙伴去支持原作者 一 从认识操作系统开始 1.1 操作系统简介 1.2 操作系统简 ...

  6. GPU Saturday技术沙龙:OpenCL程序员眼中的下一代APU架构

    摘要:GPU Saturday技术沙龙在北京·3WCoffee成功举办.本次活动邀请AMD资深技术人员及清华大学项目研究员就AMD最新的GCN架构.GPU加速计算在挖掘比特币.典型图像算法.深度神经网 ...

  7. linux php 守护进程,PHP程序员玩转Linux系列 使用supervisor实现守护进程

    PHP程序员玩转Linux系列文章: 首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令 如:nodejs index.js & ...

  8. 程序员眼中的编程语言

    下图是一个搞笑的图片--程序员眼中的编程语言. 图片的横轴是编程语言. 纵轴是各语言的程序员.粉丝.信徒. 中间的各个小图片则是,粉丝眼中的编程语言的形象. 比如说, 第一行第一列,是Java程序员看 ...

  9. iPhone开发入门(1)----程序员眼中的iPhone

    自去年 iPhone 面世以来,开创了移动设备内容服务的一种新的模式--程序商店(App Store).它极大地降低了移动设备应用程序开发的成本,即使普通人也能进入这个市场.就像在PC上开发应用程序一 ...

最新文章

  1. 京东典型广告推广源码示例一
  2. Maven下载+Maven环境变量配置+IntelliJ IDEA配置Maven(详细教程) ,收藏起来吧
  3. 【实操】深度学习网络万万千,到底怎么把我的数据放进去?
  4. php -- 用文本来存储内容,file_put_contents,serialize,unserialize
  5. 奥运吉祥物动画宣传片
  6. cocoapods安装bug
  7. CCF NOI1136 单词分类
  8. matlab差分进化算法解决TSP问题
  9. python脚本编程基础读后感_Python入门经典的读后感10篇
  10. Navicat Premium 15 的下载及其安装
  11. Windows 安全补丁
  12. 声音在计算机内表现形式为,声音与视频信息在计算机内的表现形式是什么
  13. 世纪难题,当Python爬虫遇到短信验证码如何处理?
  14. linux必应搜索,浏览器UA(四):必应搜索引擎(bing.com)的UserAgent参数
  15. 怎样在Word中存储高清图,并输出PDF
  16. 10个Excel实用操作技巧分享,使用率超高,让你一学就会
  17. IMU的数学模型与误差标定问题
  18. RC522 射频读卡器模块(MINI型)
  19. 打开心灵——SD2.0大会更显大家风范
  20. Burp suite抓包修改参数及测试结果验证

热门文章

  1. 共勉——彭淑端的《为学》
  2. 同态加密在机器学习中的应用
  3. Python异常处理try,except,else,finally用法解析。
  4. 1147 -- 小周的烦恼
  5. 纯前端实现简单的增删改查
  6. ASP.NET动态网站开发培训-04.创建一个四则运算器
  7. 苹果系列机型专业刷机,解锁,解ID
  8. linux中realplayer.rpm格式的软件安装,Linux中安装Realplay 10.0 的方法
  9. 01-linux系统命令整理-郭亚望
  10. Android实现自定义圆角边框渐变