文件管理
cp
cp SRC DEST:SRC是文件
DEST不存在,复制并改名
DEST存在是文件,覆盖,root不覆盖
cp -i:不覆盖,root默认cp为cp -i别名
DEST存在是目录,复制到目录下
cp SRC... DEST:SRC...为多个文件,DEST必须为目录
cp -r 目录 DEST:递归复制目录
DEST不存在,复制并改名
DEST存在(必须为目录),复制到DEST下
cp -a:归档,复制时保存软链接,保存所有属性信息
cp -p:保存基本属性
cp -f:强制覆盖
mv
mv SRC DEST:SRC是文件
DEST不存在,移动并改名
DEST存在是文件,覆盖,root不覆盖
mv -i:不覆盖,root默认mv为mv -i别名
DEST存在是目录,移动到目录下
mv SRC... DEST:SRC...为多个文件,DEST必须为目录
mv SRC DEST:SRC是目录,DEST不能为文件
DEST存在,移动到DEST下
DEST不存在,移动并改名
mv -f:强制覆盖
rm
-i:交互式,root默认rm是rm -i别名
-f:强制删除
-r:递归删除
文本编辑器:nano
bash基本特性(2)
alias:命令别名,显示系统中别名
alias 别名='命令':设置别名
命令行定义别名,仅对当前shell进程有效
~/bashrc:定义别名对当前用户有效
/etc/bashrc:定义别名所有用户有效
source /config-file | . /config-file:重新读取配置文件
unalias 别名:撤消别名
unalias -a:撤消所有别名
\命令:如果命令为一个别名,将不执行别名,直接执行命令
glob(globbing):bash中实现文件名通配(现在已没这个命令)
通配符
*:任意长度的任意字符
?:任意一个字符
[]:匹配指定范围内的任意一个字符
[0-9]:任意一个数据
[a-z]:任意一个字母,不区分大小写
[A-Z]:任意一个大写字母
[^]:匹配指定范围外的任意一个字符
[^0-9]:除数字外任意一个字符
[[:digit:]]:任意数字
[[:lower:]]:任意小写字母
[[:upper:]]:任意大写字母
[[:alpha:]]:任意大小写字母
[[:alnum:]]:任意字母和数字
[[:space:]]:任意空格
[[:punct:]]:任意标点符号
bash快捷键
ctrl+l:清屏,clear
ctrl+a:跳转到命令开头处
ctrl+e:跳转到命令结尾处
ctrl+c:取消命令执行
ctrl+u:删除光标前所有内容
ctrl+k:删除光标后所有内容
bash的I/O重定向及管道
每一个打开的文件都有一个fd:file descriptor(文件描述符),为数字,方便内核查找文件
标准输入:keyboard键盘,描述符0
标准输出:monitor显示器,描述符1
标准错误输出:monitor,描述符2
错误输出:命令执行错误输出显示
I/O重定向:改变标准输入、输出
command > 文件:重定向并覆盖
set -C:禁止覆盖重定向
set +C:允许覆盖重定向(默认允许)
command >> 文件:重定向并追加到文件里面
command >| 文件:强制覆盖重定向
command 2> 文件:覆盖重定向错误输出
command 2>> 文件:追加重定向错误输出
command > 文件1 2> 文件2:如果执行正确输出到1,错误输出到2
command &> 文件:执行正常和错误都输出到文件(可覆盖、可追加)
command > 文件 2> &1:正常和错误都输出到文件(可覆盖、可追加)
command < 文件:文件输入重定向给命令
cat << EOF:键盘输入字符,当遇到EOF字符时把之前所有字符,重定向给cat命令(EOF默认使用,可变字符)
cat >> 文件 <<EOF:当遇到EOF字符时把之前所有字符,重定向给cat命令,再输出重定向至文件
tr命令:转换或删除字符
tr abc ABC:键盘输入字符后所有单个字符为a,b,c的对应转换为A,B,C
tr def DEF < /etc/fstab:把fstab中所有d转换D,e转换为E,f转换为F
tr -d abc:删除键盘输入的所有a,b,c字符
管道
command | command ...:把前面命令的输出送给后面命令(最后一个命令在当前shell的子shell里运行)
tee:输出数据输出到标准输出并输出到文件
tee 文件:由键盘输入,显示到屏幕并保存覆盖到文件
cat 文件1 | tee 文件2 | tr a A:保存文件并交给tr命令
文件处理工具
wc 文件:显示行数、以空白分隔的词数、字节数、文件名
-l:只显示行数
-w:只显示单词数
-c:只显示字节数
cut:以指定分隔符把文件内容切割成N列
cut -d' ' -f 1 文件:以空格切割显示第一列
-d'符号':以指明符号分割
-f 1,3:第一和三列
-f 1-3:第一到三列,可以1-3,5
--output-delimiter=符号:输出时更换以前分隔符
sort:排序
-f:忽略字符大小写
-r:以逆序排序
-t符号 -k数字:以符号为分隔,取第几列来排序
-n:以数字大小排序
-u:排序并去除重复
uniq:去除连续重复的行
-c:去重并显示重复次数
-d:去重并只显示重复的行
-u:去重并只显示没有重复的行
cp
cp SRC DEST:SRC是文件
DEST不存在,复制并改名
DEST存在是文件,覆盖,root不覆盖
cp -i:不覆盖,root默认cp为cp -i别名
DEST存在是目录,复制到目录下
cp SRC... DEST:SRC...为多个文件,DEST必须为目录
cp -r 目录 DEST:递归复制目录
DEST不存在,复制并改名
DEST存在(必须为目录),复制到DEST下
cp -a:归档,复制时保存软链接,保存所有属性信息
cp -p:保存基本属性
cp -f:强制覆盖
mv
mv SRC DEST:SRC是文件
DEST不存在,移动并改名
DEST存在是文件,覆盖,root不覆盖
mv -i:不覆盖,root默认mv为mv -i别名
DEST存在是目录,移动到目录下
mv SRC... DEST:SRC...为多个文件,DEST必须为目录
mv SRC DEST:SRC是目录,DEST不能为文件
DEST存在,移动到DEST下
DEST不存在,移动并改名
mv -f:强制覆盖
rm
-i:交互式,root默认rm是rm -i别名
-f:强制删除
-r:递归删除
文本编辑器:nano
bash基本特性(2)
alias:命令别名,显示系统中别名
alias 别名='命令':设置别名
命令行定义别名,仅对当前shell进程有效
~/bashrc:定义别名对当前用户有效
/etc/bashrc:定义别名所有用户有效
source /config-file | . /config-file:重新读取配置文件
unalias 别名:撤消别名
unalias -a:撤消所有别名
\命令:如果命令为一个别名,将不执行别名,直接执行命令
glob(globbing):bash中实现文件名通配(现在已没这个命令)
通配符
*:任意长度的任意字符
?:任意一个字符
[]:匹配指定范围内的任意一个字符
[0-9]:任意一个数据
[a-z]:任意一个字母,不区分大小写
[A-Z]:任意一个大写字母
[^]:匹配指定范围外的任意一个字符
[^0-9]:除数字外任意一个字符
[[:digit:]]:任意数字
[[:lower:]]:任意小写字母
[[:upper:]]:任意大写字母
[[:alpha:]]:任意大小写字母
[[:alnum:]]:任意字母和数字
[[:space:]]:任意空格
[[:punct:]]:任意标点符号
bash快捷键
ctrl+l:清屏,clear
ctrl+a:跳转到命令开头处
ctrl+e:跳转到命令结尾处
ctrl+c:取消命令执行
ctrl+u:删除光标前所有内容
ctrl+k:删除光标后所有内容
bash的I/O重定向及管道
每一个打开的文件都有一个fd:file descriptor(文件描述符),为数字,方便内核查找文件
标准输入:keyboard键盘,描述符0
标准输出:monitor显示器,描述符1
标准错误输出:monitor,描述符2
错误输出:命令执行错误输出显示
I/O重定向:改变标准输入、输出
command > 文件:重定向并覆盖
set -C:禁止覆盖重定向
set +C:允许覆盖重定向(默认允许)
command >> 文件:重定向并追加到文件里面
command >| 文件:强制覆盖重定向
command 2> 文件:覆盖重定向错误输出
command 2>> 文件:追加重定向错误输出
command > 文件1 2> 文件2:如果执行正确输出到1,错误输出到2
command &> 文件:执行正常和错误都输出到文件(可覆盖、可追加)
command > 文件 2> &1:正常和错误都输出到文件(可覆盖、可追加)
command < 文件:文件输入重定向给命令
cat << EOF:键盘输入字符,当遇到EOF字符时把之前所有字符,重定向给cat命令(EOF默认使用,可变字符)
cat >> 文件 <<EOF:当遇到EOF字符时把之前所有字符,重定向给cat命令,再输出重定向至文件
tr命令:转换或删除字符
tr abc ABC:键盘输入字符后所有单个字符为a,b,c的对应转换为A,B,C
tr def DEF < /etc/fstab:把fstab中所有d转换D,e转换为E,f转换为F
tr -d abc:删除键盘输入的所有a,b,c字符
管道
command | command ...:把前面命令的输出送给后面命令(最后一个命令在当前shell的子shell里运行)
tee:输出数据输出到标准输出并输出到文件
tee 文件:由键盘输入,显示到屏幕并保存覆盖到文件
cat 文件1 | tee 文件2 | tr a A:保存文件并交给tr命令
文件处理工具
wc 文件:显示行数、以空白分隔的词数、字节数、文件名
-l:只显示行数
-w:只显示单词数
-c:只显示字节数
cut:以指定分隔符把文件内容切割成N列
cut -d' ' -f 1 文件:以空格切割显示第一列
-d'符号':以指明符号分割
-f 1,3:第一和三列
-f 1-3:第一到三列,可以1-3,5
--output-delimiter=符号:输出时更换以前分隔符
sort:排序
-f:忽略字符大小写
-r:以逆序排序
-t符号 -k数字:以符号为分隔,取第几列来排序
-n:以数字大小排序
-u:排序并去除重复
uniq:去除连续重复的行
-c:去重并显示重复次数
-d:去重并只显示重复的行
-u:去重并只显示没有重复的行