cp命令
选项:
-r #递归复制 复制目录
-d #保持软链接
-p #保持属性不变
-a === -pdr
-i #如果文件存在,提示是否覆盖 系统自带别名
-t #把原位置和目标位置的位置进行调换
复制文件或者拷贝文件 [root@sh-qls ~]# cp --help
cp [OPTION]... SOURCE... DIRECTORY #正常写法
cp [OPTION]... -t DIRECTORY SOURCE...
[root@sh-qls ~]# cp /etc/hosts ./ #将/etc/hosts文件拷贝到当前目录下 [root@sh-qls ~]# ll
total
4 -rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
[root@sh-qls ~]# cp /opt ./test #拷贝目录失败
cp: omitting directory ‘/opt’
[root@sh-qls ~]# cp -r /opt ./test #-r 递归复制 将/opt拷贝当前目录,并改 名为test
[root@sh-qls ~]# ll
total
4 -rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
drwxr-xr-x. 2 rootroot 6 Jun 15 12:16 test
[root@sh-qls ~]# cp -a /opt/ ./ # -a == -pdr
[root@sh-qls ~]# ll
total
4 lrwxrwxrwx. 1 root root 7 Jun 9 19:55 bin -> usr/bin
lrwxrwxrwx. 1 root root 22 Jun 15 12:21 grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
drwxr-xr-x. 2 root root 23 Jun 15 12:22 test
[root@sh-qls ~]# ll
total 12
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
drwxr-xr-x. 2 root root 23 Jun 15 12:22 test
[root@sh-qls ~]# cp /etc/hosts ./ #文件已经存在时,会提示是否覆盖 y 覆盖 n 不 覆盖
cp: overwrite ‘./hosts’? n
[root@sh-qls ~]# cp -i /etc/hosts ./
cp: overwrite ‘./hosts’? n
[root@sh-qls ~]# alias alias cp='cp -i
[root@sh-qls ~]# cp -t ./ /etc/passwd #把目标位置和原位置进行调换 [root@sh-qls ~]# ll
total 16
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd
drwxr-xr-x. 2 root root 23 Jun 15 12:22 test
[root@sh-qls ~]# cp /etc/passwd ./
cp: overwrite‘./passwd’? n
[root@sh-qls ~]#
mv命令
选项:
-f #移动的时候,文件存在时,强制覆盖
-i #文件存在时,提示是否覆盖 系统自带的别名
-t #把原位置跟目标位置进行调换
\ #临时取消别名的含义
#移动或者重命名文件
[root@sh-qls ~]# mv --help
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
[root@sh-qls ~]# mv hosts /opt #移动文件 ,原位置的文件已经存在
[root@sh-qls ~]# ll
total 12
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd
drwxr-xr-x. 2 root root 23 Jun 15 12:22 test
[root@sh-qls ~]# ll /opt/
total 4
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
[root@sh-qls ~]# mv test/ /opt/ #移动目录 不需要加任何选项 [root@sh-qls ~]# ll
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd
[root@sh-qls ~]# ll /opt/
total 4
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
drwxr-xr-x. 2 root root 23 Jun 15 12:22 test
[root@sh-qls ~]# cp /etc/hosts ./
[root@sh-qls ~]# ll
total 16
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg
-rw-r--r--. 1 root root 158 Jun 16 09:05 hosts
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd
[root@sh-qls ~]# mv hosts /opt/ #文件已经存在时,提示是否覆盖
mv: overwrite ‘/opt/hosts’? n
[root@sh-qls ~]# mv -i hosts /opt/
mv: overwrite ‘/opt/hosts’? n
[root@sh-qls ~]# mv -i hosts /opt/
mv: overwrite ‘/opt/hosts’?
[root@sh-qls ~]# alias
alias cp='cp -i'
aliasegrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto' alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
aliasls='ls --color=auto'
alias mv='mv -i' #系统自带的别名
[root@sh-qls ~]# mv -f hosts /opt/ #强制覆盖
[root@sh-qls ~]# ll
total 12
[root@sh-qls ~]# \cp /etc/passwd ./ #临时取消别名的作用
[root@sh-qls ~]# mv -t ./ /opt/hosts #把原位置跟目标位置进行调换
#重命名
[root@sh-qls ~]# mv grub2.cfg 123.txt
rename命令
#重命名的命令 用到的非常少,几乎不用 了解即可
假如有test.txt
举例 rename test 123 test.txt 得出这个123.txt文件
命令 文件 文件 针对这个个文件重命名文件
rm命令
选项:
-r 递归删除
-f 强制删除不提示
#删除文件或者目录
[root@sh-qls ~]# rm 123.txt #提示你是否确认删除
为什么会提示
[root@sh-qls ~]# alias
alias rm='rm -i' #提示是否删除文件
#-i就是提示你是否删除
[root@sh-qls ~]# rm -f 123.txt #强制删除不提示
[root@sh-qls ~]# rm -f test/
rm: cannot remove ‘test/’: Is a directory #这是个目录
[root@sh-qls ~]# rm -rf test/ #递归删除目录
[root@sh-qls ~]# rm -rf ./ #删除当前所在位置的目录 注意看自己在什么位置
[root@sh-qls ~]# rm -rf ./* #删除一个目录下的所有内容 排除隐藏文件 确认好自己在 那里
[root@sh-qls ~]# rm -rf /* #禁止执行此命令 执行了准备跑路
echo命令
#打印你所要输出的内容 打印变量的值 创建新文件 修改文件 输出加上颜色 脚本中使用的多
选项:
-n #不自动换行
-e #支持一些特殊字符的使用
\n #换行符
\t #tab键
[root@qls ~]# echo hello world
hello world
[root@qls ~]# echo -n hello world
hello world[root@qls ~]#
#定义和打印变量
[root@qls ~]# Name=qls
[root@qls ~]# Name
-bash: Name: command not found
[root@qls ~]# echo $Name
qls
[root@qls ~]# echo $PWD
/root
[root@qls ~]# cd /opt/
[root@qls opt]# echo $PWD
/opt
#创建新文件
> #标准输出重定向 如果文件不存在,会自动创建,如果文件存在,会首先把文件的内容清空,然后再把你要输出的内容重定向进去
[root@qls ~]# echo 1 > test.txt
(文件内容) (文件名)
[root@qls ~]# ll
total 8
-rw-------. 1 root root 1429 Jul 6 02:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 2 Jul 9 10:56 test.txt
[root@qls ~]# cat test.txt
1
[root@qls ~]# echo 2 > test.txt
[root@qls ~]# cat test.txt
2
>> #标准输出追加重定向 如果文件不存在,会自动创建,如果文件存在,会把你要输出的内容追加到文件的底部
[root@qls ~]# echo 3 >> test.txt
[root@qls ~]# cat test.txt
2
3
[root@qls ~]# echo -e "hello\nworld"
hello
world
[root@qls ~]# echo -e "1\n2\n3"
1
2
3
[root@qls ~]# echo -e "1\n2\n3" > oldboy.txt
[root@qls ~]# cat oldboy.txt
1
2
3
字颜色:30—–37
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
字背景颜色范围:40—–47
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
cat命令
#显示文件内容 把文件内容全部显示出来 创建新文件 修改文件 合并文件
选项:
-n #显示文件时,显示文件的行号
-A #给显示的文件内容的每行结尾加上一个标识符
[root@qls ~]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
[root@qls ~]# cat -n passwd 显示行号
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
[root@qls ~]# cat -A passwd 显示结尾有没有空格
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$
adm:x:3:4:adm:/var/adm:/sbin/nologin$
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
sync:x:5:0:sync:/sbin:/bin/sync$
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$
举例: 显示结尾有没有空格
[root@qls ~]# echo "123456 " >> pass.txt
[root@qls ~]# cat pass.txt
123456
[root@qls ~]# cat -A pass.txt
123456 $
[root@qls ~]# hostname -I
10.0.0.100
[root@qls ~]# hostname -I | cat -A
10.0.0.100 $
# << 标识符限定输入重定向 命令从标准输入中输入,直到遇到标识符的分解符结束
[root@qls ~]# cat >123.txt<<EOF
> 123
> 456
> 789
> EOF
[root@qls ~]# cat 123.txt
123
456
789
>> #标准输出追加重定向 如果文件不存在,会自动创建,如果文件存在,会把你要输出的内容追加到文件的底部
[root@qls ~]# cat >>123.txt<<oldboy
> 000
> oldboy
[root@qls ~]# cat 123.txt
123
456
789
000
cat >456.txt<<EOF
123
456
789
EOF
#将多个文件合并为一个文件
[root@qls ~]# cat pass.txt
123456
[root@qls ~]# cat test.txt
2
3
[root@qls ~]# cat pass.txt test.txt
123456
2
3
[root@qls ~]# cat pass.txt test.txt > new.txt
[root@qls ~]# cat new.txt
123456
2
3
源文件还在 内容也在
more命令
#分页显示文件内容 文件显示完成之后,会自动退出
选项:
-num #num是数字 指定一页显示多少行
+num #num是数字 指定从第几行开始显示文件内容
空格或者f键 #向下翻页
b键 #向上翻页
回车 #向下一行
h #帮助信息
q #退出
/xxx #搜索你要搜索的内容 搜索出来的内容不会高亮显示
n #向下查找 不能向上查找
= #显示当前光标所在的行号
先拷贝 cp /etc/services ./
[root@qls ~]# more -1 services 只显示一行
# /etc/services:
--More--(0%)
[root@qls ~]# more +5 services 指定从几行开始显示
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
less命令
#分页显示文件内容 文件显示完成之后,不会自动退出
选项:
-N #显示文件内容的时候,加上行号
-i #在搜索的时候,忽略大小写
空格或者f键 #向下翻页
b键 #向上翻页
回车 #向下一行
q #退出
h #显示帮助
/xxxx #搜索指定的内容 会把搜索出来的内容高亮显示
n #向下查找
N #向上查找
= #显示当前页的内容是由哪些行组成的 显示总行数
显示文件从开头到当前行总共显示了多少字节内容 总字节大小
[root@qls ~]# less -N services显示行号
[root@qls ~]# less -i services 在里面搜索时忽略大小写
head命令
head #显示文件的头部信息 默认显示文件的前十行内容
选项: -n # 取消默认输出
-c #显示文件的最前面的字符
[root@gaofeng ~]# head passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@gaofeng ~]#
举例2:
[root@gaofeng ~]# head -n 2 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@qls ~]# head -2 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
举例3:
[root@gaofeng ~]# head -20 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
举例4:
[root@gaofeng ~]# head -c5 passwd
root:[root@gaofeng ~]#
tail命令
#显示文件的尾部信息,默认显示文件最后10行
选项:
-n #取消默认输出
-c #显示最后几个字符
-f #实时显示文件的尾部变化信息
-F #实时更新文件的内容,当文件不存在,不会退出,会一直尝试读取这个文件,直到文件存在
[root@gaofeng ~]# tail passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@gaofeng ~]# tail -n 1 passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
===
[root@gaofeng ~]# tail -1 passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@qls ~]# tail -c5 passwd #显示最后5个字符,只能看见4个,另外一个是换行符
ogin
[root@qls ~]#
[root@gaofeng ~]# tail -f passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
hello
#另外一个窗口进行测试
[root@gaofeng ~]# echo 'hello' >> passwd
[root@gaofeng ~]# tail -f test.log
tail: cannot open ‘test.log’ for reading: No such file or directory
tail: no files remaining
[root@qls ~]# tail -F test.log
tail: cannot open ‘test.log’ for reading: No such file or directory
tail: ‘test.log’ has appeared; following end of new file
test
tailf命令
实时更新文件的内容
tailf ==== tail -f
当文件内容没有发生变化时,tailf不会去读取磁盘中的信息,减少磁盘的读写 ,tail -f 当文件内容没有发生变化时,会一直向磁盘进行读取
选项:
-n #取消默认输出
locate命令
#根据本地的数据库进行查找文件,不会查找到最新的文件
[root@gaofeng ~]# yum install -y mlocate
选项:
-i #不区分大小写
-r #简单使用正则表达式 $ 结尾
/var/lib/mlocate/mlocate.db
[root@gaofeng ~]# updatedb #更新数据库
#把系统中所有文件名称包含passwd的文件全部查找出来
root@gaofeng ~]# locate passwd
/etc/.passwd.swp
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/root/passwd
/root/1.txt/passwd
/usr/bin/gpasswd
#查找以hostname 结尾的文件
[root@gaofeng ~]# locate -r hostname$
/etc/hostname
/etc/selinux/targeted/active/modules/100/hostname
/usr/bin/hostname
/usr/bin/nmtui-hostname
/usr/lib64/gettext/hostname
#不区分大小写
root@gaofeng ~]# locate -i hostnamectl
/root/HOSTNAMECTL
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl
which命令
查找命令的绝对路径
[root@gaofeng ~]# which ping
/usr/bin/ping
#查找命令的绝对路径时,是通过PATH环境变量中的路径进行查找
[root@gaofeng ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#不使用which的别名进行查找命令的绝对路径
[root@gaofeng ~]# \which cp
/usr/bin/cp
[root@gaofeng ~]# rpm -qf `which ping`
iputils-20160308-10.el7.x86_64
[root@gaofeng ~]# rpm -qf /usr/bin/ping
iputils-20160308-10.el7.x86_64
whereis命令
#查找系统二进制程序、man帮助文件、源代码文件 查找不到自己创建的文件
选项:
-b #只查找二进制程序文件
-m #查找man帮助文件
-s #查找源代码文件
[root@gaofeng ~]# whereis ping
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz
[root@gaofeng ~]# whereis -b ping
ping: /usr/bin/ping
[root@gaofeng ~]# whereis -m ping
ping: /usr/share/man/man8/ping.8.gz
type命令
#显示命令的类型
选项:
-a #显示内置命令的绝对路径
-p #只显示命令的绝对路径
help命令可以显示系统中所有的内置命令
[root@gaofeng ~]# type ping
ping is /usr/bin/ping
[root@gaofeng ~]# type cp
cp is aliased to `cp -i'
[root@gaofeng ~]# type -a cd
cd is a shell builtin
cd is /usr/bin/cd
[root@qls ~]# type -p ping
/usr/bin/ping
[root@qls ~]# type -ap cd
/usr/bin/cd
find命令
#查找和搜索文件
选项:
-type #根据文件类型进行查找
f #普通文件
d #目录
l #软连接文件
s #socket文件 套接字文件
p #管道文件
-name #根据名称进行查找
-iname #查找的时候忽略大小写
语法:
find /etc -type f -name"hostname" 默认打印
命令 地区 类型 名称 动作
#在/etc目录下进行查找 查找类型为普通文件 名称为 ifcfg-eth0 精确查找
[root@gaofeng ~]# find / -type f -name "ifcfg-eth0"
/etc/sysconfig/network-scripts/ifcfg-eth
查找 以ifcfg-eth0开头的文件
[root@gaofeng ~]# find / -type f -name "*ifcfg-eth0"
/etc/sysconfig/network-scripts/ifcfg-eth
查找 以ifcfg-eyh0 结尾的的文件
oot@gaofeng ~]# find / -type f -name "ifcfg-eth0*"
/etc/sysconfig/network-scripts/ifcfg-eth
查找文件名称包含了 ifcfg-eth的文件
oot@gaofeng ~]# find / -type f -name "*ifcfg-eth0*"
/etc/sysconfig/network-scripts/ifcfg-eth
#查找所有文件,包括隐藏文件
[root@gaofeng ~]# find / -type f -name "*ifcfg-eth0*"
/etc/sysconfig/network-scripts/ifcfg-eth0
/root/.ifcfg-eth0
查找文件名称包括ifcfg-eth0的文件
[root@gaofeng ~]# find / -type d -name "*ifcfg-eth0*"
/root/ifcfg-eth0
/opt/ifcfg-eth0
rz命令
#将本地的文件上传到Linux操作系统
#不能上传目录,需要将目录打成一个压缩包进行上传 只能上传 4G以下的文件
[root@gaofeng ~]# yum install lrzsz -y
选项:
-E #当上传的文件已经存在时,系统会进行重命名 会在原来的文件名称后面加上.数字 从0开始
#执行命令,会跳出一个Windows界面的窗口,选择你要上传的文件
[root@gaofeng ~]# rz
[root@gaofeng ~]# ll
total 16
-rw-r--r--. 1 root root 13140 Jul 7 12:23 day03.md
[root@gaofeng ~]# rz -E
[root@gaofeng ~]# ll
total 32
-rw-r--r--. 1 root root 13140 Jul 7 12:23 day03.md
-rw-r--r--. 1 root root 13140 Jul 7 12:23 day03.md.0
sz命令
#将Linux系统的文件下载到本地
[root@gaofeng ~]# sz /etc/hosts
wget命令
[root@gaofeng ~]# yum install -y wget
#联网下载软件包
选项:
-O #指定下载的路径和名称
-q #静默输出
--limit-rate=10k #限制下载的速率 k ===KB m == MB
下载百度页面
root@gaofeng ~]# wget www.baidu.com
--2020-07-10 15:36:00-- http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 112.80.248.76, 112.80.248.75
Connecting to www.baidu.com (www.baidu.com)|112.80.248.76|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’
100%[===================================>] 2,381 --.-K/s in 0s
2020-07-10 15:36:00 (457 MB/s) - ‘index.html’ saved [2381/2381]
#-O用法指定下载的路径和名称
[root@gaofeng ~]# wget -O /opt/nginx.tar.gz http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 15:40:16-- http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘/opt/nginx.tar.gz’
45% [===============> ] 467,889 19.5KB/s eta 20s ^C
#静默输出 不显示
[root@gaofeng ~] wget -q http://nginx.org/download/nginx-1.19.1.tar.gz
#限制下载的速率
[root@gaofeng ~] wget --limit-rate=10k http://nginx.org/download/nginx-1.18.0.tar.gz
curl命令
#通过url规则进行文件传输工具
#测试网站使用的命令
选项:
-o #将访问的数据内容写入到指定的文件中
-s #静默输出
[root@gaofeng ~]# curl -o ./baidu.html www.baidu.com
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2381 100 2381 0 0 311 0 0:00:07 0:00:07 --:--:-- 657
[root@gaofeng ~]# curl -s -o ./nginx.tar.gz http://nginx.org/download/nginx-1.18.0.tar.gz
sotr命令
sotr:#排序 将不相同的行进行排序在一起 默认是根据第一列进行排序 默认是以空白字符为分割符 默认以字母进行排序
语法:
sort -rnk2 sort.txt
命令 选项 文件名
选项:
-k #指定哪一列为分隔符
-n #以数值大小的方式进行排序
-r #倒叙排序
-t #指定分割符
举例1:以第一列字母进行排序
[root@qls ~]# cat sort.txt
b 5
c 3
a 11
f 2
d 9
举例2:以第二列数字进行排列 只看第一个数字
[root@qls ~]# sort -k2 sort.txt
a 11
f 2
c 3
b 5
d 9
举例3:以第二列数字大小进行排列
[root@qls ~]# sort -nk2 sort.txt
f 2
c 3
b 5
d 9
a 11
举例5 以第二列数字大小倒叙进行排列
[root@qls ~]# sort -rnk2 sort.txt
a 11
d 9
b 5
c 3
f 2
uniq命令
uniq:#去重 去除重复的行 只能去除相同相邻的行 统计 将重复的行的次数统计出来 跟sort结合使用
| #管道 将前面命令的执行结果交给后面的命令继续执行 操作的是数据
sort file.txt | uniq -c | sort -n
命令 文件名 管道符 命令 选项 管道符 命令 选项
选项:
-c #统计重复的行的次数
举例1:以第一列进行排序
[root@qls ~]# sort file.txt
123
123
123
456
abc
abc
edf
2 去掉重复的行
[root@qls ~]# sort file.txt | uniq
123
456
abc
edf
3统计重复行的次数
[root@qls ~]# sort file.txt | uniq -c
3 123
1 456
2 abc
1 edf
4:统计重复行以数值大小的方式进行排序
[root@qls ~]# sort file.txt | uniq -c | sort -n
1 456
1 edf
2 abc
3 123
5:统计重复行以数值大小的方式进行倒叙排序
[root@qls ~]# sort file.txt | uniq -c | sort -rn
3 123
2 abc
1 edf
1 456
cut命令
cut: awk命令的小弟 默认的分隔符为tab键
选项:
-d #指定分隔符
-f #取出指定的列
-c #取出指定的字符 按照行进行处理的
语法:
cut -d ":" -f 1,7 6.txt
命令 指定分隔符 取出指定的列 文件名
#查看文件
[root@gaofeng ~]# cat 6.txt
root:x:0:0:root:/root:/bin/bash
#取出第七列
[root@gaofeng ~]# cut -d ":" -f7 6.txt
/bin/bash
#取出第一列和第七列
[root@gaofeng ~]# cut -d ":" -f1,7 6.txt
root:/bin/bash
#取出第五列到第七列
[root@gaofeng ~]# cut -d ":" -f5-7 6.txt
root:/root:/bin/bash
#取出passwd文件中的第七咧 以冒号为分割符 以第一列进行排序 统计重复的行的次数 以数值的大小进行排序排序
[root@gaofeng ~]# cut -d ":" -f7 passwd | sort | uniq -c | sort -rn
#取出不同的字符
[root@gaofeng ~]# cut -c 7 passwd
:
1
:
3
:
:
w
:
:
o
x
1
:
d
:
d
:
x
#取出不同的字符
[root@qls ~]# cut -c 6,8 test.txt
x0
#取出连续的字符
[root@qls ~]# cut -c 1-4 test.txt
root
#取出ip地址
[root@gaofeng ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.250 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::5356:2ac5:e050:737a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:61:38:85 txqueuelen 1000 (Ethernet)
RX packets 1142 bytes 101353 (98.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 781 bytes 85028 (83.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@gaofeng ~]# ifconfig eth0 |head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.250 netmask 255.255.255.0 broadcast 10.0.0.255
[root@gaofeng ~]# ifconfig eth0 |head -2 |tail -1
inet 10.0.0.250 netmask 255.255.255.0 broadcast 10.0.0.255
[root@gaofeng ~]# ifconfig eth0 |head -2 |tail -1|cut -d " " -f10
10.0.0.250
tr命令
tr #替换 删除 sed的小弟 只能单对单的替换
选项:
-d #删除指定的字符
语法:
tr old new < file
命令 旧字符 新字符 文件名
#查看源文件
[root@gaofeng ~]# cat 6.txt
root:x:0:0:root:/root:/bin/bash
< #标准输入重定向
# 替换指定字符 只能单对单的替换
[root@gaofeng ~]# tr "o" "1" <6.txt
r11t:x:0:0:r11t:/r11t:/bin/bash
#删除指定字符
[root@gaofeng ~]# tr -d "o" < 6.txt
rt:x:0:0:rt:/rt:/bin/bash
# 查看ip地址 取出前三行 在取出倒数第一行 把/替换成空格 在以空格为分隔符取出ip
[root@gaofeng ~]# ip a s eth0 |head -3 |tail -1 | tr '/' ' '| cut -d " " -f6
10.0.0.250
wc命令
wc #统计 行数 字节数 列数 行的长度
选项:
-l #统计行数
-w #统计列数,默认以空白字符为分隔符
-c #统计字节数
-L #统计文件中最长的行的长度
语法:[root@gaofeng ~]# wc -wlc passwd
命令 选项 文件名
#统计行数 ,列数(默认以空白字符为分隔符 )字节数 #统计文件中最长的行的长度
[root@gaofeng ~]# wc -lwcL passwd
18 26 798 68 passwd
#统计行数
[root@gaofeng ~]# wc -l passwd
18 passwd
#统计列数,默认以空白字符为分隔符
[root@gaofeng ~]# wc -w passwd
26 passwd
#统计字节数
root@gaofeng ~]# wc -c passwd
798 passwd
#统计文件中最长的行的长度
[root@gaofeng ~]# wc -L passwd
68 passwd