Chap 4 研究操作系统
- command -options arguments (大多数命令格式)
- ⚠️ 短选项 -a, 长选项 --all
- ⚠️ 可以同时写两个options , ls -ls (长格式 + 按照文件大小排序)
- file filename -确定文件类型
- less filename -浏览文件内容
- 符号链接/硬链接
Chap 5 操作文件和目录
- 常用命令
- cp - 复制文件
- cp -u *.html destination
- -a, --archive
- -i, --interactive
- -r, --recursive
- -u, --update
- -v, verbose
- mv - 移动/重命名
- -i, --interactive
- -u, --update
- -v, --verbose
- mkdir directory
- mkdir dir1 (dir2 dir3)
- rm
- -i, --interactive
- -r, --recursive
- -f, --force
- -v, --verbose
- ln 创建硬链接/符号链接
- 符号:ln file link
- 硬链接:ln -s item link
- cp - 复制文件
- 通配符
- -任意多个
- ? -任意一个
- [characters]
- [!characters]
- [[:class:]] -匹配任意一个属于制定字符类中的字符
- [:alnum:] -匹配任意字母或数字
- [:alpha:] -任意字母
- [:digit:] -任意数字
- [:lower:]
- [:upper:]
- 🌰
- [[:upper:]]* 以大写字母开头的
- [![:digit:]]* 不以数字开头的
- *[[:lower:]123] 文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件
Chap 6 使用命令
- 常用命令
- type - 命令形式
- 什么是命令?
- 是一个可执行程序
- 内建于 shell 自身的命令,builtins
- shell函数
- 命令别名
- type command
- 什么是命令?
- which -显示当前可执行程序的位置,不能是内部命令/命令别名
- man -显示程序手册
- man section search_term
- 1 -用户命令
- 2 -程序借口内核系统调用
- 3 -C库函数程序接口
- 4 -特殊文件
- 5 -文件格式
- 6 -游戏娱乐
- 7 -其他方面
- 8 -系统管理员命令
- man section search_term
- apropos -显示适当的命令
- info - 显示程序 Info 条目
- whatis -非常简洁的命令说明
- alias - 别名
- alias name='string'
- command1; command2; command3... 可以把多个命令放在同一行上,命令之间 用”;”分开
- eg
- alias foo = 'cd /usr ; ls'
- unalias foo
- help - 提供shell内部命令帮助文档
- --help -显示用法信息
- type - 命令形式
Chap 7 重定向
- 命令
- 管道线 |
- command 1 | command 2
- cat (Ctrl - d)
- cat ls-output.txt
- cat > lazy_dog.txt
- 键盘输入⌨️: The quick brown forx jumped over the lazy dog.
- cat < lazy_dog.txt
- txt文件作为输入
- sort -排序
- uniq -删除重复行
- uniq -d 可看到重复列表
- gerp -打印匹配行
- grep pattern
- eg: ls /bin /usr/bin | sort | uniq | grep zip
- -i 忽略大小写
- -v 只打印不匹配的行
- 正则表达式
- grep pattern
- wc -打印行,字,字节数 (word count)
- wc -l 只显示行数
- head/tail -打印文件开头部分/结尾部分
- 默认情况下10行
- head/tail -n 5 ls-output.txt
- tial -f 实时监控文件,直到ctrl-c
- tee -从标准输入(stdin)读取数据并输出(stdout)到标准输出和文件
- ls /usr/bin | tee ls.txt | grep zip
- 管道线 |
- I/O重定向允许我们可以更改输出走向和输入来向
- 一般地,输出 ->屏幕,
- 输入来自键盘,
- 但是通过 I/O 重定向,我们可以改变输入输出方向
- > 或者 >> 重定向符号
- 覆盖写入 >
- ls -l /usr/bin > ls-output.txt
- less ls-output.txt
- > ls-output.txt 写入空白
- ls -l /usr/bin > ls-output.txt
- 追加写入 >>
- ls -l /usr/bin >> ls-output.txt
- 重定向标准错误
- ls -l /bin/usr 2> ls-error.txt
- 重定向标准输出和标准错误到同一个文件
- ls -l /bin/usr > ls-output.txt 2>&1
- ls -l /bin/usr &> ls-output.txt
- 处理不需要的输出
- ls -l /bin/usr 2> /dev/null
- 覆盖写入 >
Chap 8 从shell眼中看世界
- echo -显示一行文本
- *
- echo * == ls
- echo .* 仅显示隐藏文件
- echo /usr/*/share
- ~
- echo ~ (home路径)
- 算术表达式 $((expression))
- echo $((2+2)
- {} -乘法原理
- [me@linuxbox ~]$ echo Front-{A,B,C}-Back Front-A-Back Front-B-Back Front-C-Back
- 参数
- echo $USER
- *
- 命令替换 - 允许把一个命令的输出作为一个展开模式来使用
- echo $(ls) 或者 echo
ls
- ls -l $(which cp) 或者 ls -l
which cp
- "" 除了$ \ `之外,当作普通字符
- echo $(cal)
- echo "$(cal)"
- ‘’ 所有的都当作普通字符
- echo $(ls) 或者 echo
Chap 9 键盘高级操作技巧
- 命令
- clear
- history -显示历史列表内容
- 默认最后500个命令
- history | grep /usr/bin
- 移动光标
- Ctrl-a -移到行首
- Ctrl-e -移到行尾
- 修改/剪切/粘贴文本
- 自动补全 : tap
Chap 10 权限
- Unix -多个用户可以在同一时间使用同一台计算机
- 命令
- id -显示用户身份号
- chomod -更改文件模式
- 只有文件所有者/超级用户才能修改
- umask -设置默认权限
- 0022 (八进制) -> 000 000 010 010
- 二进制中数字1出现的位置,相对应的属性被删除
- su -以其他用户身份和组ID运行一个shell
- su [-[l]] [user]
- su -c 'command'
- 不启动一个新的可交互shell
- 仅将命令结果传回当前shell
- su -c 'ls -l /root/*'
- sudo
- su 和 sudo 之间的一个重要区别是 sudo 不会重新启动一个 shell,也不会加载另一个 用户的 shell 运行环境
- chown - 更改文件所有者和用户组
- 需要超级用户权限
- chown [owner][:[group]] file...
- sudo chomn tony: ~tony/myfile.txt
- chgrp -更改用户组所有权
- passwd -更改用户密码
- passwd [user]
- 读取写入执行
- -rw-rw-r--
- 第一位(5种)
- -
- d
- l
- c
- b
- 剩下九位读r/写w/执行x
- 对应文件所有者、文件组所有者、其他人
- 八进制
- 000 ---
- 001 --x
- 010 -w-
- 011 -wx
- 100 r--
- 101 r-x
- 110 rw-
- 111 rwx
- 符号表示法
- u -user
- g -group
- o -others
- a -all
- eg
- u+x - user添加执行权限
- -x -所有人都删除执行权限
- o-rw
- go=rw
- 第一位(5种)
- -rw-rw-r--
- 更改身份
- 多重身份
- 注销系统并以其他用户身份重新登陆系统
- 使用su命令 (超级用户是# 不是$ )
- 使用sudo命令
- 多重身份
Chap 11 进程
- 常用命令
- ps
- ps -列出与当前终端会话相关的进程
- ps x -列出所有进程
- ps aux -显示属于每个用户的进程信息
- user -用户ID.进程所有者
- %CPU -CPU使用率
- %MEM -内存使用率
- VSZ -虚拟内存大小
- RSS -所占物理内存大小
- START -起始时间
- top 动态查看进程
- jobs
- bg -进程放到后台
- 进程 &
- fg -进程返回到前台
- fg %1 (工作序号)
- kill -停止一个进程
- kill [-signal] PID
- HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z)
- killall
- killall [-u user] [-signal] name
- shutdown
- ps
Chap 12 shell 环境
- 命令
- printenv - 打印部分或所有环境变量
- printenv USER
- set
- export
- alias
- printenv - 打印部分或所有环境变量
- 常用变量
- DISPALY
- EDITOR
- HOME
- echo $HOME
- SHELL
- LANG
- OLD_PWD
- PAGER
- PATH
- PS1
- PWD
- TERM
- TZ
- USER
- 如何建立shell环境
- 登陆shell会话的启动文件
- /etc/profile - 应用于所有用户的全局配置脚本
- ~/.bash_profile -用户私人的启动文件
- ~/.bash_login -如果~/.bash_profile没找到,会读取该脚本
- ~/.profile -如果/.bash_profile和/.bash_login没找到,会读取该脚本
- 非登陆shell会话的启动文件
- /etc/bash.bashrc -应用于所有用户的全局配置文件
- ~/.bashrc -用户私有的启动文件
- 登陆shell会话的启动文件
- 文本编辑器
- nano
- nano .bashrc
- Ctrl-o 保存修改
- ctrl-x 退出修改
- vi/vim
- emacs
- 备份文件
- cp .bashrc .bashrc.bak
- .bak, .sav, .old, .orig 是用来指示文件的流行方法
- 🌰
- umask 0002 -设置掩码来解决共享目录的问题
- export HISTCONTROL = ignoredups -忽略重复命令
- export HITSIZE = 1000 -设置最大记录1000行,默认是500行
- nano
Chap 13 VI简介
- vi -启动
- :q 退出
- :q! 强制退出
- 两次 Esc 找到路
- i 插入文本
- f 查找一行
- / 查找整个文件
- :wq 保存修改
Chap 14 自定制shell提示符
Chap 15 软件包管理
- apt-get
网友评论