鸟哥的Linux私房菜笔记-基础

文章目录

  1. 1. Linux
    1. 1.1. Free software
    2. 1.2. 概念
      1. 1.2.1. 硬盘
      2. 1.2.2. inode & block
      3. 1.2.3. 支持文件系统类型
  2. 2. cmd
    1. 2.1. 基础
      1. 2.1.1. man
      2. 2.1.2. info
      3. 2.1.3. chown
      4. 2.1.4. chmod
      5. 2.1.5. pwd
      6. 2.1.6. mkdir
      7. 2.1.7. cp
      8. 2.1.8. mv
      9. 2.1.9. od
      10. 2.1.10. chattr
      11. 2.1.11. find
      12. 2.1.12. ln
    2. 2.2. 磁盘
      1. 2.2.1. dd
      2. 2.2.2. cpio
      3. 2.2.3. mount
      4. 2.2.4. df+du
      5. 2.2.5. dumpe2fs
      6. 2.2.6. e2label
      7. 2.2.7. tune2fs
    3. 2.3. 压缩
      1. 2.3.1. gzip
      2. 2.3.2. bzip2
      3. 2.3.3. tar
    4. 2.4. vim
      1. 2.4.1. vim-cmd
      2. 2.4.2. unix2dos dos断行格式
      3. 2.4.3. dos2unix unix断行格式
      4. 2.4.4. iconv
      5. 2.4.5. tr

笔记记录于《鸟哥的Linux私房菜-第三版》,以备多看。

Linux

Free software

Stallman:
“Free software” is a matter of liberty, not price. To understand the concept, you should think of “free speech”, not “free beer”. “Free software” refers to the users’ freedom to run, copy, distribute, study, change, and improve the software

概念

Linus Torvalds:linux

目前Linux核心的发展分为两种版本,分别是稳定版本的偶数版,如2.6.X,适合于商业与家用环境使用; 一种是发展中版本的奇数版如2.5.X 版,适合开发特殊功能的环境。

硬盘

IDE:/dev/hd[a-d][1-63]
SATA,SCSI,USB,Flash碟:/dev/sd[a-p][1-15]

sector(扇区)》cylinder(磁柱)》filesystem

第一扇区(512bytes):MBR(446)+partition table(64)

默认是4个分区,可以延伸分割拓展分区

inode & block

inode(128bytes)记录相关block信息(档案的属性权限),一个记录4byte
1K最多记录文件大小:12 + 256 + 256256 + 256256*256 (K) = 16GB

superblock记录filesystem整体信息,包括inode/block

支持文件系统类型

  • ls -l /lib/modules/$(uname -r)/kernel/fs

    cmd

    基础

    man

  • h help (有着一个也够了)

  • /string 向下搜索 (n); ?string 向上搜索 (N)

  • 空格 下一页; u 上一页

  • man -k (apropos)查找关键字;man -f (whatis) 列出指令简易说明

    info

  • tab 在node间移动

    chown

  • 修改组和用户:chown user:group fileName

  • 单改组:chown .group fileName (同chgrp)

    chmod

  • u g o a [+(加入) -(除去) =(设定)] r w x #a 全部

  • w 具有相当重要的权限,可以让使用者删除、更新、新建档案戒目录(即使非当前用户文件)

    pwd

  • pwd -P 显示链接源路径

    mkdir

  • -m 配置权限 :mkdir -m 711 test2

  • -p 递归建立目录

    cp

  • -a 不改变权限

  • -u 差异复制

  • -d 复制链接非源文件

  • -s 复制为一个连接档

    mv

  • -b :若需覆盖文件,则覆盖前先行备份。备份文件加~后缀

    -b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。
    –backup该选项指定如果目标文件存在时的动作,共有四种备份策略:
    1.CONTROL=none或off : 不备份。
    2.CONTROL=numbered或t:数字编号的备份
    3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1…n:
    执行mv操作前已存在以数字编号的文件log2.txt.1,那么再次执行将产生log2.txt2,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。
    4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

  • -u :若目标文件已经存在,且 source 比较新,才会更新(update)

    od

  • od -t oCc /etc/issue 显示八进制和ASCII码对照

    chattr

  • i 不可删除、修改、链接

  • a 只能追加

  • 特殊权限

    • 4-SUID 针对二进制文件,执行中上升权限到文件所属者
    • 2-SGID 针对档案或目录,执行中上升权限到目标文档对应组(适用于多人协助的目录操作)
    • 1-SBIT 针对目录,用户即使有w权限也只能删自己的文档 (/tmp : drwxrwxrwt)
    • file指令可查看详细

      find

      find /path -mtime 0 #24小时内修改过的文件
  • n代表n天前的那一天

  • -n是n天内

  • +n是n天前(>=5)

find /bin /sbin -perm +6000 -exec ls -l {} ; #查找包含任一SUID,SGID的文件并列出

  • -perm -mode #完全满足mode

find /etc -size +50k -a -size -60k -exec ls -l {} ; #找出 /etc 底下,档案大小介亍 50K 到 60K 间的档案,并将权限完整的列出 (ls -l)

  • -a # and

  • ! # 反向选择,不是后边的项目

  • -o # or

    ln

  • ln #hard link 直接操作源文件

  • ln -s #symbol link 快捷方式

    磁盘

    dd

  • dd if=/dev/zero of=/boot/test.img bs=1M count=10 生成10M的测试数据

  • dd if=/etc/passwd of=/tmp/passwd.back #备份

  • 每笔record默认用512bytes,可备份完整的partition和disk ,因为 dd 可读取磁盘的sector 表面数据

    cpio

  • cpio -ovcB > [file|device] <==备份

  • cpio -ivcdu < [file|device] <==还原

  • cpio -ivct < [file|device] <==察看

    mount

  • mount –bind #将某个目录挂载到其他目录里

  • 磁盘使用必需要经过:分割、格式化不挂载,分别惯用的指令为:fdisk, mkfs, mount 三个指令

    df+du

  • du -sh ./* #查看目录下全部统计信息,子目录大小会累加到根目录

  • du -Sh ./* #子目录不累加

    dumpe2fs

  • dumpe2fs /dev/sda1 -h #查看硬盘主要信息

    e2label

  • e2label 装置名称 新的Label名称

    tune2fs

  • l :类似 dumpe2fs -h 的功能将 superblock 内的数据读出来

  • j :将 ext2 的 filesystem 转换为 ext3 的文件系统;

  • L :类似 e2label 的功能,可以修改 filesystem 的 Label 喔!

    压缩

    gzip

  • gzip -9 -c man.config > man.config.gz #gzip后保留源文件

  • gzip -v man.config #压缩并显示压缩比

  • gzip -d man.config.gz #解压

  • zcat man.config.gz #读取压缩文件内容

    bzip2

  • 性能优于gzip,操作参数同上

  • bzcat man.config.bz2

    tar

  • j:bzip2;z:gzip

  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的档案戒目录名称

  • 查 询:tar -jtv -f filename.tar.bz2

  • 解压缩:tar -jxv -f filename.tar.bz2 [待解开档名] -C 欲解压缩的目录

  • -p 保留权限属性

  • –exclude=file #过滤

  • tar -jcv -f /root/etc.newer.tar.bz2 –newer-mtime=”2008/09/29” /etc/* #增量备份

  • tar -cvf - /etc | tar -xvf - #利用标准IO将/etc边打包边解压复制到当前目录

    vim

    vim-cmd

    vim快捷键操作
    vim快捷键操作2

unix2dos dos断行格式

  • k :保留该档案原本的mtime 时间格式 (并更新档案上次内容经过修订时间)

  • n :保留原本的旧档,将转换后的内容输出到新档案,如: unix2dos -n old new

    dos2unix unix断行格式

  • 同上使用,相反操作

    iconv

  • iconv -f 原本编码 -t 新编码 filename [-o newfile]

    tr

  • echo “A”|tr “A-Z” “a-z” #小写转换

  • tr -s ‘\n’ #多个字符替换为一个

  • tr -cd [:digit:] #除数字都替换

如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : https://newbmiao.github.io/2015/09/15/Niaoge-Linux-Desktop-Guide-notes-basis.html