第二节
查看用户 who am i
使用root权限:sudo <cmd> 条件:当前用户在sudo用户组
切换用户: su <user>
su - <user> 说明: 环境变量会改变成目标用户的环境变量
添加用户: sudo adduser 用户名
删除用户: sudo deluser 用户名
退出终端: ctrl+d
终止程序: ctrl+c
当前路径: pwd
查看用户组: groups 用户名
将其他用户放到sudo用户组: sudo usermod -G sudo 用户名
变更文件所有者: sudo chown 用户名 文件名
查看文件权限: ls
文件信息的格式:
文件类型权限:
修改文件权限(方法一): chmod 731 文件名 说明:731的解析如下图所示
:
第三节
新建空白文件: touch 文件名
新建目录:
- mkdir 目录名
- mkdir -p 目录结构 例如: mkdir -p father/son/grandson
删除文件: rm 文件名
删除目录: rm -r 目录名
复制文件: cp 文件名 路径 例如: cp test father/son/grandson
复制目录: cp -r 目录名 路径 例如: cp -r father family
移动文件: mv 源目录文件 目的目录
重命名文件: mv 旧文件名 新文件名
查看文件:
- 正序显示 cat 文件名
- 倒序显示 tac 文件名
- 添加行号并打印 nl 文件名
- 查看一屏内容 more 文件名 (
Enter
键向下滚动一行,使用Space
键向下滚动一屏,按 - 下
h
显示帮助,q
退出) - 查看前x行 head -n x 文件名 例如: head -n 5 passwd
- 查看后x行 tail -n x 文件名 例如: tail -n 5 passwd
第四节
查看文件类型: file 文件名
Vim操作:
- q! 退出vim(不保存)
- x 删除光标处字符
- i 光标处添加文本
- a 在单词末尾添加文本
- A 在行末尾添加文本
- h 左移
- j 下移
- k 上移
- l 右移
- dw 删除光标处到一个字符的末尾
- d$ 删除光标处到航模
- d+n+{h,j,k,l} 删除{左,下,上,右}一次 例如: d1j -->删除下方一行 d2h --> 删除左边2个字符
- 0 光标移动到行首
- dd 删除整行(删除行会保存在剪贴板中)
- u 撤销前一项操作
- ctrl+r 撤销u操作
- y 复制文本
- p 粘贴文本
- r 替换字符
- R 连续替换字符
- ce 删除到字母末尾,并进入添加文本模式(其实就是de+i两个操作)
- ctrl+g 显示当前行 ,显示文本信息
- *(数字)+G 跳转到第*行
- G 跳转到最后一行
- gg 跳转到第一行
- /+字符串 查找字符串 n---查找下一个 N---查找上一个
- ?+字符串 查找字符串(逆序查找)
- % 查找配对的括号
- s/旧字符/新字符 替换第一个字符 比如: s/tree/the
- s/旧字符/新字符/G 替换一行所有字符
- #,#s/旧字符/新字符/g 替换任意2行之间的所有字符 比如: 2,100/old/new/g(替换第2~100行中的所有old)
- %s/旧字符/新字符/g 替换全文中的字符
- %s/旧字符/新字符/gc 替换全文中的字符,每个字符都提示是否替换
- :! 输入外部命令
- w 文件名 保存为文件
- v 然后移动到其他行再按v 两行之间高亮,此时再输入:w 文件名 保存两行之间的内容
- :r 文件名 插入文件中的内容
- o 在光标下方新增一行并进入插入文本模式
- O 在光标上方新增一行并进入插入文本模式
- :set ic : set noic 忽略大小写/不忽略大小写
许多文本命令都是 操作符+数字+动作构成的
数字表示重复次数
比如 d---删除操作符
动作: w---从当前光标到下一个单词起始处,不包括第一个字符
e---从当前光标到单词末尾,不包括最后一个字符
$---从当前位置到行末
所以命令的组合有: dw ,de ,d$ ,3e ,2w ,d2w ,d5e , d2k ,9dd, 5k ,6l 等等
第五节
declare tmp 创建环境变量tmp
unset tmp 删除环境变量
tmp=shiyanlou 给环境变量tmp赋值
$tmp 读取变量tmp的值
source .zshrc 让环境变量立即生效
命令
set 显示当前shell的所有变量
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量(临时)。
添加永久变量: 在/etc/profile文件中添加永久变量
添加PATH环境变量: PATH=$PATH:/home/shiyanlou/mybin
echo > 覆盖内容
echo >> 追加内容
whereis 文件名 搜索文件位置
find 文件名 搜索文件位置
第六节
zip -r -1 -q -o 压缩文件名 原文件名
-r 递归打包包含子目录的全部内容
-1 压缩级别,9压缩包最大(速度最快),1压缩包最小(速度最慢)
-q 不向屏幕输出信息
-o 压缩后的文件名
unzip 文件名
第七节
df 查看磁盘容量
du 查看目录的大小
du -h 人性化展示数据
dd if=/dev/stdin of=/dev/stdout bs=10 count=1
if---输入文件
of---输出文件
bs---指定块大小
count---指定块数量
mkfs---格式化文件系统 例如:sudo mkfs.ext4 virtual.img
sudo mount---查看挂载的文件系统
第八节
内建命令:是 shell 程序的一部分,这些命令写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等
外部命令:需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
type 命令 获取命令的帮助信息 例如: type ls
man 命令 获取命令的帮助信息
help 命令 help 命令是用于显示 shell 内建命令的简要帮助信息
第九节
crontab -e 创建周期性任务
crontab -l 显示任务
crontab -r 删除任务
第十节
连续执行命令用 ; 分隔,比如: cat text.txt ; touch text2.txt
$? 获取上一条指令的执行状态 如果成功返回值是0
&& 上一条命令执行成功,那么执行后面的命令
例如: $ which cowsay>/dev/null && cowsay -f head-in ohch~
|| 上一条命令执行不成功,那么执行后面的命令
例如: $ which cowsay>/dev/null || echo "cowsay has not been install, please run 'sudo apt-get install cowsay' to install"
cut 打印每一行的某一字段
- $ cut /etc/passwd -c -5 前5个,包含第5个
- $ cut /etc/passwd -c 5- 前5个之后的所有字符
- $ cut /etc/passwd -c 5 第5个
- $ cut /etc/passwd -c 2-5 第2-5个
cut -d : -f 1 以:为分隔符,取第一个区域的内容
例如: cat t1.txt | cut -d ' ' -f -2 以空格为分隔符,取t1.txt文件的前2个区域的内容
| 管道: 将前一个进程的输出作为下一个进程的输入 比如: ls -al /etc | less
grep 查找匹配的字符串 例如:
-
-r
递归搜索子目录中的文件 -
-n
打印匹配项行号 -
-I
忽略二进制文件。
wc 统计并输出一个文件中行、单词和字节的数目
- $ wc -l /etc/passwd 行数
- $ wc -w /etc/passwd 单词数
- $ wc -c /etc/passwd 字节数
- $ wc -m /etc/passwd 字符数
- $ wc -L /etc/passwd 最长行字节数
sort 默认排序
- -r 反转排序
uniq 去掉连续重复行(只能去除相邻重复行,一般配合sort命令使用)
uniq -dc 可以去掉不连续的重复行,并显示重复数
history 查看历史命令
第十一节
tr 删除文本中的字符
- -d 删除指定的单个字符 比如 tr -d 'abc' 所有a,b,c字符都删除了
- -s 删除连续并重复的字符,保留一个, 比如 tr -d 'a',连续的baaab会变成bab
join 将两文件中相同的内容合并
paste 直接将文件内容合并
第十二节
永久重定向: exec 命令
例如: 把标准输出重定向到了somefile文件中
第十四节
apt-get install 软件名 安装一个软件
apt-get remove 软件名 卸载一个软件
第十五节
ps 查看进程信息
ctrl+z 将一个进程放到后台运行
jobs 查看正在执行的任务
kill -参数 %任务编号 干掉一个任务 比如: kill -9 %1
-参数 进程的pid值 干掉一个进程 比如: kill -9 1608
- -1 重新读取参数运行,类似与restart
- -2 如同 ctrl+c 的操作退出
- -9 强制终止该任务
- -15 正常的方式终止该任务
第十六节
top 进入进程管理界面
sudo service 程序名 start 开启软件服务
第十七节
日志分为系统日志和应用日志
存放路径: /var/log