cp [options] source1 source2 ... destdirectory
-a 连同文件的属性包括文件的权限的拥有者,创建时间
-f 强制的意思
-i 交互模式,删除之前会询问用户
-r 递归复制
-u 目标文件和源文件有差异时,才会进行覆盖(常用来检测新旧文件的覆盖情况)
mv [options] source1 source2 ... destdirectory
-u 目标文件和源文件有差异时,才会进行覆盖(常用来检测新旧文件的覆盖情况)
-i 交互模式
-f 强制操作,不进行询问,和i相反
basename 得到当前路径中的文件名
dirname 得到当前路径中的最后一个目录的名字(路径)
basename /etc/sysconfig/network ---> network
dirname /ect/sysoconfig/network ---> /etc/sysconfig
cat [options] file
-n 显示行号
-E 将结尾的换行符以$进行显示
-v 列出一些看不见的特殊符号
-A 等于-EvT 组合
-T 将tab按键以^I显示出来
cat -An yun.conf
tac 和 cat 展示的内容是相反的
nl [options] file
-b a 空行显示行号
-b t 空行不显示行号
-n ln|rn|rz 行号的显示的位置
-w ? ?号为行号
nl -n rz -w 3 /etc/issue
more 翻页查看
less 翻页查看
/? 按内容进行搜索
N 上一处
n 下一处
head -n 20 file 查看某个文件的前面20行内容
tail -n 20 file 查看某个文件的最后20行内容
-f
od [options] file --->这里特指的是查看二进制类的文件
-t a:使用默认的字符来显示内容
c:使用ASCII的编码的方式来显示内容
od -t c passwd
date 日期
cal 日历
bc 计算器
scale=3 浮点数为3
umask 以数字形式展示文件或目录的权限
-S 以ugo的形式进行显示
umask 003 进行更新默认的umask设置
which [options] filename(完成的可执行的文件名)
-a 展示所有符合要求的
找的默认的是path路径下
whereis [options] 文件名或目录
-b 搜索二进制
-m 搜索在帮助文件manual的文件
loacte 文件名(部分或全部名称)
--->/var/lib/slocate <---数据库位置
--->/etc/upatedb.conf <---数据库的二进制文件
find [PATH] [options] [action]
chattr [-+=] [options] fileordirectory
+a 设置了之后此文件只能增加内容,而不能进行删除。而且只有root用户才能设置这个权限。
+i i的作用很大,它可以让一个文件无法进行删除,改名,设置连接,无法写入内容。
chattr +ai reademe.txt
lsattr [options] file
-R 递归展示其子目录
-a 将隐藏的属性一起展示出来
chmod 7666 1.txt
---> -rwSrwSrwT 1.txt
SUID --- 4
GUID --- 2
Sticky Bit ---- 1
s,t(S,T) ---> 替换的x的位置
find ./ -size +1000k 查询当前目录文件大于1000k的文件
find ./ -mtime 0 查询最近24小时内修改的文件
find ./ -perm 600 -exec ls -l {} \; 查查询文件属性等于600的,并将它们列出来。
df [options] file
-a 列出所有的文件系统,包括特有的。/proc
-h 以kb,mb,gb显示
-k 以kb为单位显示文件系统
-i 不用硬盘的容量,而使用inode的数量来进行显示
du [options] file
-a 统计所有文件和目录,因为默认是仅统计目录下的文件而已
-k 以kb的方式显示
-m 以mb的方式显示
-h 以人们易读的方式列出
compress [-dc] file 早期的压缩文件命令
uncompress
解压的文件的命令
gzip [options] 文件名
-d 解压的参数
-c 将压缩的数据流输入到屏幕上,使其可用通过导向进行处理
-# 范围是-9到-1 ---> 压缩等级 -1最快,压缩比最差;-9最慢,压缩比最好
gzip -c -5 1.txt readme.md > hehe.gzip
zcat 查看压缩文件中内容
zcat demo.gz
bzip2 [options] file
bzcat 文件名
bzip2 的参数和用法和gzip一样,进行类似联系即可
tar [options] file | directory ...
-c create,打包
-x 解压
-t 查看
c.x.t一个参数只能出现一个
-z 打包的时候以gzip进行压缩
-j 打包的时候以bzip2的进行压缩
-v 显示压缩过程中文件
-f 使用文件名,出现f后,立马就要跟文件名
-p permission权限的意思,就是使用文件的原来的权限
-P 可以使用绝对路径要压缩
-N ‘2017/1/1’比这个yyyy/MM/dd新的文件才会被打包
--exclude FILE :---> 压缩的过程中不要讲FIFE文件进行打包
tar --exclude ./demo -zcvf tmp.tar.gz ./*
tar -tvf tmp.tar.gz
tar -cvf - /etc | tar -xvf - --->这里的输入文件是-,输出文件也是-
cp -r /etc /tmp/test
tar -cvf - /tmp/test | tar -xvf /tmp/aa
dd 备份
dd [if,of] [count]
if 输入文件
of 输入文件
count 多少bs的意思
dd if='/etc/passwd' of='/tmp/test/passwd.back' count=1
cpio [options] >/< [file|devedive]
---> 备份
---< 还原
-o 将数据复制到文件或设备中
-v 让存储过程中文件显示在屏幕上
-d 自动建立好目录
-c 一种较新的文件的存储过程的文件
-B 让默认的块增加5120字节
vi vim
0 数字“0”,移到这一行的最前面的一个字符
$ 移到这一行的最后一个字符
H 移到当前屏幕的子最上限
M 移到当前屏幕的中间
L 移到当前屏幕的最底部
G 移到这个文件的的最后一行
nG 移到这个文件的第n行
n<enter> 向下移动n行
dd 删除光标所在的那一行
ndd 从光标所在行开始,向下删除n行
yy 赋值光标所在行
nyy 从光标所在行向下复制n行
p 粘贴复制内容到光标所在行的下一行
P 黏贴复制内容到光标所在行的上一行
a 从当前光标所在的文件的下一个字符进行输入
echo $PATH 查看当前变量的内容
gyoomi=myname ---> 进行自定义变量进行设置
unset myname 取消自定义变量的设置
type command-name 查看当前的命令是否是bash(Bouruce Again SHell)还是alias(别名)
examples:
--->name=Gyoomi
export name
bash
--->开启子程序
echo $name --->显示结果是Gyoomi
exit --->退出子程序
set 查看系统的其他变量(非环境变量)
几个重要的其他变量
echo $PS1 命令提示符
echo $$ 代表当前shell的pid
echo $? 上一个执行的回传码
locale 语系变量
read [optins] variable
-t 等待的秒数
-p 后面可以跟提示符
read -t 5 aaa
echo $aaa
read -p 'please keyin yourname:' yourname
echo $yourname
declare/typeset 声明变量的类型
declare [options] variable
-i 声明成数字类型
-a 声明成数组
-x 设置成环境变量
-r 设置成只读属性
declare -i sum
sum=100+90-20
echo $sum
declare -x sum
declare -r sum
arr[0]='hehe'
arr[1]='heihei'
arr[2]=‘jiji’
echo "${arr[1]},${arr[2]}"
alias lm='ls -h | more' 别名
unalias=lm
history 历史
>覆盖 >>追加
0标准输入 <,<<
1标准输出 >,>>
2标准错误输出 2>,2>>
ll -h /home >/tmp/home.file
ll /etc/sysconfig >> /tmp/home.file
ls ./ testing* > list 2> erro
ls ./ testing* > list 2>/dev/null
ls ./ testing* > list 2> list 错误写法
ls ./ testing* > list 2>&1 正确写法
< --->把其他文件的内容添加到其中取
cat > catfile < tempfile
<< ---> 表示结束字符
cat > catfile <<end
> this is my catfile content
> haha
> end <=== 输入这个就立马结束, 不用输入crtl+d键
&& --->前面的执行正确才会执行后面的命令
|| --->前面的命令有误才会执行后面的命令、
常用的形式是: command1 && command2 || command3
example:
ls ./ testing* && echo "exist" || echo "not exist"
cut [options]
-d 后面跟分隔符
-f 根据-d的分割开来的进行取
-c 以字符为单位来取出数据
echo $PATH | cut -d : -f 4
echo $PATH | cut -c 12-20
grep [options]
grep java
sort [options] [file or stdin]
默认按照第一个字段来排序
-t 分隔符 默认是按照tab键来进行划分的
-k 按照 那个字段来进行排序
-u 相同的数据只出现一次 等于 uniq
cat /etc/passwd | sort 默认按照第一个来进行排序
cat /etc/passwd | sort -t ':' -k 3
last | cut -d ' ' -f 6 | sort 将最近登录的用户的用户名进行排序
uniq [options]
-i 忽略大小写
last | cut -d ' ' -f1 | sort | uniq
wc 显示行数,字数,字符数
cat /etc/passwd | wc
tee [options] file 双向重导向
-a 追加,而不是覆盖(默认是覆盖)
last| tee /last.list | cut -d ' ' -f1 将文件追加到last.list文件中;并且进行分割
ls -l /etc | tee ~/homefile | more 将etc下面的文件覆盖到homefile文件里,同时输出到屏幕上进行查看
tr --->translate or delete charactors 转换或删除字符
tr [options] set1 [set2]
-d 删除消息中set1中的消息字符
last | tr 'a-z' 'A-Z' 将输出消息中的所有小写字符转换未大写字母
echo $PATH | tr -d ':' 将输出消息中的所有:删除掉