搜索
查看: 2508|回复: 0

[linux] I-1—linux初步:一个你妈喊你回家吃饭的故事

[复制链接]

5

主题

5

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2017-3-24 00:23:32 | 显示全部楼层 |阅读模式
今天这个故事我觉得可以讲好,说不定顺便帮你解决了如何整理房间的问题。
涉及知识点:文件系统、用户、文件权限、基础命令
1. 进程通信和多进程系统话说李雷正和小朋友在自家社区(例如万科)玩,听到韩梅梅喊他说:你妈喊你回家吃饭!
OK,先暂停,这里要讲到信息传递的知识。“回家吃饭”这个信息可以是你妈妈直接喊你(方式有直接喊你、电话、短信,甚至写信等),也可以通过第三方(韩梅梅给你,方式也有很多种),不过都可以分为直接和间接方式,同理linux系统进程间通信方式也可以分为直接和间接方式,细节就不再深究。
李雷用钥匙打开门回到自己家(/home/lilei)后发现正在做饭,而妈妈需要李雷洗菜、让爸爸淘米、教小妹切菜
同样linux系统也有类似的机制,这里妈妈就像linux系统的init进程(父进程),李雷、爸爸、小妹就像其他的执行程序进程,都是在同时进行,linux系统像这样是多进程多用户系统(除了lilei还有hanmeimei家)。突然发现万恶的种族清洗计划(计划生育)会像操作系统不能同时执行多任务一样会导致严重的系统单一性和不稳定性。
2. 用户、文件系统饭后,李雷去韩梅梅家玩,韩梅梅刚刚学习了“怦然心动的人生整理魔法”,准备一试,那么他们根据这个方法设定了几个步骤:**1. 将所有的物品按功能分类而不是空间 2. 将同类物品统一整理,筛选 3. 将物品设置固定的位置**
这里李雷和韩梅梅(/home/lilei)和韩梅梅(/home/hanmeimei)这种万科小区住户(/万科住户/李雷、/万科住户/韩梅梅)就和linux用户(/home/lilei、/home/hanmeimei)是一致的。程序架构师和建筑师的英文本就是一个词architect,所以从本质上两者并没有区别。linux系统的用户也就和万科小区的住户一样。
对万科小区来说,除了有住户,还有电力系统、供水系统、网络系统、安保系统、道路、绿化等,同理,linux系统除了有用户(/home)目录外,更有其他很多类型目录。linux系统的目录充分体现了“怦然心动”的整理艺术,对文件按功能进行分类,并有固定的位置。
通常,整个linux文件系统如下:
上面的根目录(/)即使所说的root目录。
李雷进自己家和进韩梅梅家都是要经过身份认证,那么linux对用户也是一样的,称为linux用户的权限。
  • “进家”这个动作linux有一个同样功能的命令cd,linux命令均在终端(Ctrl+Alt+t)执行。
    cd /root/Docements # 切换到目录/root/Docements  cd ./path         # 切换到当前目录下的path目录中,“.”表示当前目录 cd ../path        #切换到上层目录中的path目录中,“..”表示上一层目录
    进入某一个目录和windows目录的概念完全一致,区别是linux没有windows的分盘的概念,或者可以将windows的C:\、D:\等盘看作文件夹。那么我们在说一个目录或文件路径时有两种方式来说:一是完整路径(即绝对路径),二是相对现在所在位置来描述另一文件路径(这又有三种情况,一是在同一层目录[“.”]下,二是当前目录的子目录下,三是上层目录[“..”]下)。这和物理中的相对运动和绝对运动的概念一致。特别的,”/“是指root目录(根目录)。”cd”具有瞬间转移能力,可以直接进入到目标目录,同样能不能进入是需要看是否具有权限。
  • 李雷“看”很多东西,这里“看”在linux系统有同样的一个命令为 ls(即list),这就是linux的“眼睛”,可以看到一个目录下的文件和文件夹
    ls .(或ls ./) # 后面跟一个目录路径,可以是绝对路径或相对路径,默认当前目录(./)可以省略,后面很多linux命令都是文件权限李雷看韩梅梅有很多东西,对钢琴特别有兴趣,那么韩梅梅给李雷说你可以看和弹(即使用),但不能改我的钢琴
    这里李雷对韩梅梅的东西具有“可看”、“可用”但“不可改”的权限,这个权限是所有者韩梅梅赋予的,同样的linux文件具有r(可读)、w(可写)、x(可执行)三种权限,可以用ls -l(或ll)查看。例如:
    $ ll -rwxr-xr–- 1 lilei root 483997 Ju1 l5 17:3l test.txtdrwxrwxr–- 1 hanmeimei root 483997 Ju1 l5 17:3l test_directorylrwxrwxrwx 1 root root  23  Ju1 l5 17:3l test_.txt_link ->test.txt
    上面说明当前目录(.)有三个文件(或文件夹),结果按tab键(\t,linux文件列通常以\t分隔)分为7列。以第一行为例:
  • 第一列,分为 -|rwx|r-x|r—
    • 第一个字符代表文件(-)、目录(d)、链接(l),还有字符设备(c)和块设备(b)文件
    • 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
      • 第一组rwx:文件所有者的权限是可读、可写和可执行
      • 第二组r-x:与文件所有者同一组的用户的权限是可读、可写但不可执行
      • 第三组r—:不与文件所有者同组的其他用户的权限是可读、不可写和不可执行

  • 第二列,1 表示连接的文件数
  • 第三列,lilei 表示文件所属用户
  • 第四列,root 表示用户所在的组
  • 第五列,483997 表示文件大小(字节)
  • 第六列,Feb 2 09:39 表示最后修改日期
  • 第七列,test.txt 表示文件名
对于文件权限(rwx)来说,可以用数字(0-7,三位二进制数)来表示。如某一权限允许,该位为1;否则为0。那么rwx用三位二进制为111,转为十进制即为7。那么如果是5,那么对应二进制位101,权限即为r-x。所以通常可以用三位十进制分别表明用户、用户组和其他用户的文件权限,比如最常用的755,对应的二进制为111101101,权限则为rwxr-xr-x。0~7分别代表什么权限可一次类推。
如何寻求帮助
对linux系统命令有完整的帮助系统,如命令不知道功能或如何使用,通常有两种方式寻求系统求助,不过千万别忘了“度娘”
  • man ls  # 显示ls的完整manual手册, man几位manual的意思
  • ls —help  ## linux不仅命令,基本所有的完善可执行程序,都应该有 —help(或-h)来查看帮助文档
我们来看下通常的帮助语法(以man命令为例):
SYNOPSIS       man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S section_list] [section] name ...
  • man  ——指执行命令名称,不可变
  • []  ——“[]”中括号内为可选参数
  • [-acdfFhkKtwW]  ——这个[]内表明有 “acdfFhkKtwW”可共选择,每个字母可自由组合,是否有冲突需看详细帮助
  • [—path]  ——同上,但”—path”参数为一个整体,要么加”—path”,要么不加
  • [-m system]  ——同上为可选参数,但类型相当于为给程序内”m”这个变量赋值为”system”,system可以为任何合法值
  • name  ——该值为”man”命令必须的参数,但可变,可以为任何合法值
  • …  ——此代表可以传入更多类似”name”的参数
    按照这个套路,基本可以自己看懂linux命令的用法。
多动手,勤折腾
近期都是linux和编程有关,我将和大家一起多动手操作。后续将直接进行纯知识的分享(linux共3期,python暂定8期),整体采用类比联系形式的将很少,这样加快学习速度,不过建立知识间联系的尝试并不会少。
如果有错误或建议,可以后台回复我,非常感谢!
再次供出linux常用命令集合:

Enjoy it!
[size=0em]​




上一篇:绘图时稀释SNP的策略分享
下一篇:安装自己的shiny服务器-实战指南
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-10-23 09:04 , Processed in 0.030916 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.