Linux统计,高级命令

管道符

将一个命令的标准输出重定向为另一个命令的标准输入(也可以理解为有一个AND的作用)

查看file1文件的前5行的内容,并编号
[root@localhost Desktop]# cat -n file1 | head -5
     1	hello:csvs:fsdfv
     2	111:vsd
     3	
     4	linux   linux
     5	ecnjsdkv:vsv:devc

计算1+2  将输出的1+2交给bc去执行,bc是一个简易计算器
[root@localhost Desktop]# echo 1+2 | bc
3

计算从1加到100
首先输出1-100
[root@localhost Desktop]# echo {1..100}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
接着可以将空格转换为+
再用bc计算
[root@localhost Desktop]# echo {1..100} | tr ' ' '+' | bc
5050

重定向

标准输出重定向
>file       以覆盖的形式将正确输出结果输入到file文件中
>>file      以追加的形式将正确输出结果输入到file文件中

[root@localhost Desktop]# ls
2.txt  A  AAA  file1  file2  names.txt
[root@localhost Desktop]# ls >1
[root@localhost Desktop]# cat 1
1
2.txt
A
AAA
file1
file2
names.txt

[root@localhost Desktop]# echo vvvvvvv >>1
[root@localhost Desktop]# cat 1
1
2.txt
A
AAA
file1
file2
names.txt
vvvvvvv
错误输出重定向
>file     覆盖
>>file    追加

[root@localhost Desktop]# LS 2>1
[root@localhost Desktop]# cat 1
bash: LS: command not found...
Similar command is: 'ls'

正确输出和错误输出同时保存

执行完命令不会再屏幕上输出任何信息

>file 2>&1    覆盖
>>file 2>&1   追加

正确输出和错误输出分开保存

>file_1 2>file_2    覆盖
>>file_1 2>>file_2   追加

不想将输出结果显示到屏幕上,也不想保存到文件中

command >/dev/null

输入重定向
创建两个文件,并写上内容
[root@localhost Desktop]# echo 111111111111 > file1
[root@localhost Desktop]# echo 222222222222 > file2

将names.txt的内容传递给cat
[root@localhost Desktop]# echo -e "file1\nfile2" > names.txt
[root@localhost Desktop]# cat names.txt 
file1
file2

使用xargs将文本内容转化为命令参数,可以输出文件中的内容
[root@localhost Desktop]# xargs cat < names.txt 
111111111111
222222222222

wc

用来统计内容

-l:统计行数

-w:统计字数(单词数),单词以空格或换行符分隔

-c:统计字节数

-m:统计字符数

-L:显示最长一行的长度(字符数)

[root@localhost Desktop]# cat 1
vnrv
bvdfb

bfdb
bdfr
bvfg

统计文件行数 6行 1为文件名
[root@localhost Desktop]# wc -l 1
6 1
字节数  
[root@localhost Desktop]# wc -c 1
27 1
单词数
[root@localhost Desktop]# wc -w 1
5 1

统计有多少个用户
[root@localhost Desktop]# wc -l /etc/passwd
43 /etc/passwd

统计/bin 一共有多少个命令
[root@localhost Desktop]# ls /bin/ | wc -l
1748

别名

which

查找命令的路径,用于确定某个命令的可执行文件在系统中的具体位置

检测命令是否存在

识别别名:若某个命令是别名,which会显示别名的信息

alias:查看别名列表

unalias:可以移除别名

创建别名
将ll定义为执行s -l --color=auto命令,显示彩色的长列表格式
alias ll='ls -l --color=auto'

查看所有已定义的别名 alias
[root@localhost Desktop]# alias
alias cp='cp -i'
alias egrep='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'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

查看特定别名
[root@localhost Desktop]# alias ll
alias ll='ls -l --color=auto'

取消别名 unalias
[root@localhost Desktop]# unalias ll
[root@localhost Desktop]# alias ll
bash: alias: ll: not found

删除别名 unalias -a

禁用临时别名 \命令名

永久生效的别名,要将命令写入用户的~/.bashrc

打开~/.bashrc
nano ~/.bashrc

将命令写入文件,保存后,运行下面命令生效
bash
复制代码
souce ~/.bashrc

使用type命令来检测命令是内部命令还是外部命令

内部命令直接由shell处理,外部命令通常为可执行文件,存储在系统文件路径中(/bin等)

[root@localhost Desktop]# type cat
cat is hashed (/usr/bin/cat)        外部
[root@localhost Desktop]# type echo
echo is a shell builtin             内部
[root@localhost Desktop]# type touch
touch is /usr/bin/touch             外部

压缩归档tar

归档只是将文件或目录打包成一个文件,并不进行压缩。常用tar归档位.tar文件

-c:创建归档文件

-x:解压归档文件

-z:使用gzip压缩或解压

-j:使用bzip2压缩或解压

-v:显示详细操作过程

-f:指定归档文件的名称

-k:解压时保留源文件

压缩是将文件进行编码以减少其占用的内存空间。常用gzip-->.gz文件、bzip-->.bz2文件、xz-->.xz文件

[root@localhost Desktop]# dd if=/dev/zero of=/tmp/test bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.253933 s, 413 MB/s

验证文件大小
[root@localhost Desktop]# du -sh /tmp/test
100M	/tmp/test

压缩速度快,压缩率低
[root@localhost Desktop]# cd /tmp/
[root@localhost tmp]# gzip test
用ls列出会看到红色的test.gz

解压
参数解压 gzip -d test.gz
命令解压 gunzip test.gz

速度慢,压缩率高
bzip test

解压
bzip2 -d test.bz2
bunzip2 test.bz2

你可能感兴趣的:(网络安全学习,linux,服务器,网络)