从0开始-Linux学习笔记(二)

刘小泽写于18.6.24-7.1 一个星期入门linux
我相信这是比之前写的 “测序的世界” 更浩大的工程,但值得写出来!

Linux登陆login:

  • 切换用户:半切换:使得切换完还保留root --> su (switch user)完全切换:su -l user退出切换: exit

  • 换密码:passwd密码存放在影子口令中:用户:/etc/shadow

    account: 登录名 encrypted password: 加密的密码

    组:/etc/gshadow

    【只需了解】加密方法:

    • 对称加密:加密和解密使用同一个密码
    • 公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)。公钥加密,私钥解密
    • 单向加密,散列加密:提取数据特征码,常用于数据完整性校验1.不可逆2.雪崩效应,一个字符的不一样,特征码就有很大不同,防破解3.定长输出:MD5:Message Digest(信息摘要), 128位定长输出【了解:加密:md5sum file ; 解密校验:md5sum -c file】SHA1:Secure Hash Algorithm(安全哈希算法), 160位定长输出
  • 用户管理的几个层级:

    1. 用户名:用户ID,可以被查找 【root用户创建新用户名:使用useradd 】

    2. 认证机制:Authentication,识别某个人就是它声称的那个人,比如密码

      【前两个用于登陆】

    3. 授权:Authorization, 例如经理比普通员工享有某些特殊权限

    4. 审计:Audition (生成日志log)防止特权用户滥用权限

  • 权限:有九位,对应属主(u)、属组(g)、其他组(o)的权限对于文件:r: 可读,使用类似cat等命令查看文件内容w:可写,可以编辑或删除x:可执行,eXecutable,可在命令提示符下当作命令提交给内核运行对于目录:r:可对此目录进行 ls 操作列出内部所有文件w:可以创建文件,但能否删除还要看具体文件x:可使用cd切换进此目录,也可以 ls -l 查看内部文件详细信息【默认一般文件不建议对外开执行权限,但目录可以】


Linux命令(Command):

  • 命令提示符:prompt 登陆成功后显示的东西【#:root用户;$:普通用户

  • 命令格式: 命令 选项 参数****命令: shell传递给内核,并由内核判断该程序是否有执行权限,以及是否能执行,从什么时候开始执行。(任何一个程序想要执行,必须要有执行入口)例如: ls 是命令, -a、-l是短选项

    选项:( options,用来修改命令的执行方式) 短选项: -character,多个选项可以组合 ,可以写ls -l -a 或者 ls -la 长选项: --word,不能组合,要分开参数:(arguments) 命令作用对象【!多个参数要用空格隔开】

  • 命令类型

    • 内置命令(shell builtin 内置)

    • 外部命令:某个路径下有一个与命令名称相应的可执行文件

  • 命令执行

    • 魔数:magic number 用于标示二进制程序的执行格式Windows和linux执行的魔数是不同的,所以说即使二者的C语言库一致,linux上编译的程序也未必能在windows上运行。比如,写脚本时第一行总要加上#! /bin/bash之类的

    • 外部命令的快速执行需要环境变量:它是内存上划分出的一块空间,用于命名 用于定义当前用户的工作环境printenv 就能看到当前的环境

      环境变量包括什么?PATH、HISTORY、SHELL等【注意都要大些】查看时统一使用echo $

      其中有个PATH分管程序:它是使用冒号分割的路径。当执行程序时,会按次序从PATH下一个个去找,直到第一次找到为止。以后如果再次使用,就不再从头找,会把第一次找到的路径放进缓存直接调用。【hash 就相当于bash自带的缓存,记录了登陆之后使用的所有命令路径,告诉你哪个 命令hits命中多少次CACHE IS KING!缓存为王!hash因为有索引,比一般的路径搜索快了不止万倍】

常用命令:

  1. ls 【list】列出所有指定路径下的子目录或文件
  • 目录 & 路径文件夹/目录也是文件,只不过比较特殊,是一种路径映射文件路径:绝对路径 :从根向下找 相对路径: 相对于当前位置

    4.png

    登陆系统后每时每刻都在目录中,working directorypwd 打印当前路径

  • 各个选项

-l 
    显示结果:一共7列
     第一列有十位:
     第一位为文件类型:
     -:普通文件(f,file)
     d:目录文件
     b:块设备文件(block)
     c:字符设备文件(character)
     p:命令管道(pipe)
     s:套接字文件(socket)
     l:符号链接文件(symbolic link file)
     后九位为文件权限(mode):
     每3位一组,每一组:rwx(读,写,执行)没有则“-”
     之后6列分别为:
     文件硬链接次数
     文件的属主(owner)
     文件的属组(group)
     文件大小(size):默认单位是字节
     时间戳(timestamp):最近一次被修改的时间。
     可分为:
     访问时间(access);
     修改时间(modify):改变内容;
     改变时间(change):改变文件的属性数据(即元数据)
     文件名
    -h:human-readable 显示方式更易读
    -a:显示以 . 开头的隐藏文件,包括. (当前目录) ,..(父目录)
    -A:显示以 . 开头的隐藏文件,不包括. (当前目录) ,..(父目录)
    -d:显示目录自身属性
    -i:显示索引节点号 index node(iNode)
    -r:逆序显示文件(本来按照的是字母顺序)
    -R:递归(recursive)显示,即子目录内容也显示
  1. cd change directory

~ 表示为home directory. 是当前所在的目录,.. 表示上一层目录。cd - 前一个目录和当前目录之间来回切换,就像电视机快速换台

  1. type 显示指定命令属于内部还是外部命令
  • alias:别名

  • keyword:关键字,Shell保留字

  • function:函数,Shell函数

  • builtin:内建命令,Shell内建命令

  • file:文件,磁盘文件,外部命令

  • unfound:没有找到

  1. echo shell编程中极为常用, 输出字符串或者打印变量的值
# 使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\b 删除前一个字符;
\c 最后不加上换行符号;【效果等于echo -n】
\n 换行;
\r 光标移至行首,但不换行;
\t 插入横向tab;
\v 插入纵向tab;
\\ 插入\字符;
  1. printf 默认不打印换行符,需要换行加 \n

  2. which 查找并显示给定命令的绝对路径

  3. file 查看命令/文件格式

命令帮助:

  • 内部命令:help COMMAND

  • 外部命令: COMMAND --help 或者man 或 info

    • man 手册信息

      分章节 共8个 man number COMMAND 显示哪个章节

      1.用户命令(/bin, /usr/bin, /usr/local/bin);2.系统调用; 3. 库调用;4. 特殊文件(设备文件[块设备、字符设备]) ; 5. 文件格式(解释配置文件语法); 6.游戏;7.杂项(Miscellaneous); 8.管理命令(/sbin, /usr/sbin/, /usr/local/sbin)

      如何查看命令在哪个章节? -->whatis COMMAND

      章节内容包括

      • [ ]:表示可选

      • |:表示多选

      • <>:表示必选

      • …:表示可以使用多次

      • { }:表示分组

      • NAME:命令名称及功能简要说明

      • SYNOPSIS:用法说明,包括可用的选项

      • DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义

      • OPTIONS:说明每一个选项的意义

      • FILES:此命令相关的配置文件

      • BUGS

      • EXAMPLES:使用示例

      • SEE ALSO:另外参照

      翻屏

      • 向后翻一屏:SPACE

      • 向前翻一屏:b

      • 向后翻一行:ENTER

      • 向前翻一行:k

      查找

      • /KEYWORD:自前向后找

      • ?KEYWORD:自后向前找

      • n: 下一个

      • N: 上一个


欢迎关注我们的公众号~_~  
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到[email protected]

bioinfoplanet

你可能感兴趣的:(从0开始-Linux学习笔记(二))