《鸟哥的Linux私房菜》学习笔记(未完)

linux内置工具

  • man
  • info:需要以info格式书写说明文档
  • nano:简单的文本编辑器

linux命令

维护

  • who:查看当前在线用户
  • ps -aux:查看进程
  • netstat -a:查询网络状态
  • shutdownreboot:在执行前会自动执行sync
  • init:切换运行级别(0:关机,3:纯文本,5:图形接口模式,6:重新启动)

权限

身份类别:owner, group, others
权限类别:read, write, execute

  • chgrp (-R,递归) 所属组名 文件名:改变group
  • chown (-R,递归) 所有者名 文件名:改变owner
  • chmod (-R,递归) 文件名:改变权限
    • chmod 777 文件名:r=4,w=2,x=1
    • chmod [u/g/o/a] [+/-/=][r/w/x] 文件名chmod u=rwx,g=rx,o=r 文件名

档案与目录管理

  • cd:变换目录(-:上一个目录)
  • pwd:显示当前目录
  • mkdir:创建目录
  • lsll:列出目录下的文件
  • cp 源文件 目标文件:复制(不同权限用户复制结果不同
    • -a:等价于-pdrd表示复制链接文档属性
    • -p:保留属性复制
    • -r:递归,应用于目录
  • rm:删除
    • -r:递归,应用于目录(危险)
    • -f:忽略警告信息(危险)
  • mv:移动,可用来重命名

档案内容查看

  • cat:显示档案内容
  • nl:带行号显示
  • head:显示前几行
    • head -n 100:指定前n行
  • tail:显示后几行
    • tail -n 100:指定后n行
  • more:按页显示,对管线不可回看
    • space:下一页
    • enter:下一行
    • b:上一页
    • q:退出
  • less:按页显示,可回看
    • space:下一页
    • [pageup]:上一页
    • [pagedown]:下一页
    • /字符串+n:向后搜索

档案修改

  • touch:创建文件,修改档案时间

搜索

  • which:搜索脚本位置
  • type:检测内置命令,检测脚本别名
  • whereis:利用数据库搜索,只能搜索PATH
  • locate:利用数据库搜索,输入部分文件名即可
  • find:硬盘搜索

磁盘与文件系统

待学习…

归档与压缩

  • gzip:生成.gz文件
    • gzip a.txt:默认会删除源文件
    • gzip -c a.txt > a.txt.gz:可以保留源文件
    • gzip -d a.txt.gz-d为解压缩命令,默认删除源文件
    • gzip -cd a.txt.gz > a.txt:保留源文件
  • bzip2:生成.bz2文件,压缩率比gzip高
    • -d:解压命令
    • -z:压缩命令
    • -k:保留源文件
  • tar:归档命令
    • -c:打包
    • -t:查询归档内容,相当于打开
    • -x:解打包
    • -j:通过bzip2压缩
    • -z:通过gzip严肃哦
    • -v:压缩/解压缩过程中显示文件名
    • -f:打包/解打包文件名(建议单独写)
    • tar -jcv -f filename.tar.bz2 源目录:压缩
    • tar -jxv -f filename.tar.bz2:解压
    • tar -jtv -f filename.tar.bz2:查询

vim

  • 模式
    • 一般模式:光标移动,删除,复制粘贴
      • 移动光标:
        • hjkl或箭头
        • ctrl+f或[pagedown]:下一页
        • ctrl+b或[pageup]:上一页
        • 0或[home]:当行最前字符前
        • $或[end]:当行最后字符后
        • gg:回到首行
        • n[enter]:下移n行
      • 查找替换
        • /word:从光标向后搜索
        • n:正向执行上一个搜索动作
        • N:反向执行上一个搜索动作
        • :n1,n2s/word1/word2/g:在n1到n2行之间将word1替换为word2,其中可用$代替n2作为最后一行
        • :n1,n2s/word1/word2/gc:在替换前询问
      • 删除、复制、粘贴
        • x:向前删除,X:向前删除
        • dd:删除整行
        • yy:复制整行,nyy:复制以下n行
        • p:在下一行粘贴
        • u:撤销一步
        • .:重复上一个动作
      • 选择
        • v:选择字符,变为反色
        • ctrl+v:选择矩形区域,变为反色
        • y:复制,d:删除
    • 编辑模式:i进入,esc退出
    • 命令模式:在一般模式下/?进入,esc退出
      • w:保存
      • q:退出
      • !:强制执行
  • 多文档与多窗口切换

bash

  • shell
    • 变量:
      • 设置变量:name=xuhao,echo $name
      • 删除变量:unset name
      • 环境变量env
      • 所有变量(环境变量+普通变量):set
      • export:自定义变量转环境变量
    • shell编程:
      • 待学习…
  • 环境配置文件
    • /etc/profile:系统整体设定(不建议修改)
    • /etc/profile.d/*.sh:其中的脚本会被/etc/profile引入
    • source:使环境变量立刻生效
  • 数据重定向
    • 标准输入:代码0,使用<<<<为覆盖方式,<<为累加方式
    • 标准输出:代码1,使用>>>
    • 标准错误输出:代码2,使用2>2>>
    • /dev/null:垃圾桶黑洞装置
    • tee 文件名:双向重定向,既能重定向的同时,也能输出到屏幕
  • 截取命令
    • cut
    • grep '字符串':从文本中截取包含搜索字符串的行
      • -n:输出行号
      • -v:输出不包含搜索字符串的行
  • 排序命令
    • sort :按照行排序
      • -r:反向
      • -f:忽略大小写
    • uniq:在排序后去重
    • wc:依次输出行、词数、字符数
  • 字符串处理
    • tr:删除,替换
    • col
    • join
    • paste
    • expand:tab转space
    • split:分割

正则表达式

待学习…

解决方案

忘记root密码

使用单用户模式修改(单用户模式是root权限)

r/w/x对目录的作用:

  • r:可以用ls列出内容
  • w:可以修改目录名称,内部新建、删除文件
  • x:可以cd进入

档案种类

  • -:正规文档
  • d:目录
  • l:链接
  • b/c/s/p:设备文件,数据文件

$PATH环境变量

  • 可用echo $PATH输出环境变量
  • 不同用户有不同的环境变量
  • .目录并不是环境变量中的目录,所以执行当前目录的文件需要用./filename

umask

  • 与新建目录或文件时的默认权限有关
    • 文件预设权限:666
    • 目录预设权限:777
    • 创建权限 = 预设权限 - umask
  • 不同权限用户的umask不同,使用umask查看当前用户的umask
  • 文件默认

特殊权限

  • SUID
  • SGID
  • SBIT