Linux 文本处理等指令

文本处理

cat file1 file2 ... | command
<> file1_in.txt_or_file1_out.txt general syntax for text manipulation
using PIPE, STDIN and STDOUT

cat file1 | command( sed,
grep, awk, grep, etc...) > result.txt    合并一个文件的详细说明文本,并将简介写入一个新文件中

cat file1 | command( sed,
grep, awk, grep, etc...) >> result.txt   合并一个文件的详细说明文本,并将简介写入一个已有的文件中

grep Aug /var/log/messages          在文件 '/var/log/messages'中查找关键词"Aug"

grep ^Aug /var/log/messages            在文件 '/var/log/messages'中查找以"Aug"开始的词汇

grep [0-9] /var/log/messages           选择 '/var/log/messages' 文件中所有包含数字的行

grep Aug -R /var/log/*              在目录 '/var/log' 及随后的目录中搜索字符串"Aug"

sed 's/stringa1/stringa2/g'
example.txt       将example.txt文件中的 "string1" 替换成 "string2"

sed '/^$/d' example.txt 从example.txt     文件中删除所有空白行

sed '/ *#/d; /^$/d' example.txt
从example.txt    文件中删除所有注释和空白行

echo 'esempio' | tr
'[:lower:]' '[:upper:]'   合并上下单元格内容

sed -e '1d' result.txt             从文件example.txt 中排除第一行

sed -n '/stringa1/p'               查看只包含词汇 "string1"的行

sed -e 's/ *$//' example.txt           删除每一行最后的空白字符

sed -e 's/stringa1//g'
example.txt        从文档中只删除词汇 "string1" 并保留剩余全部

sed -n '1,5p;5q' example.txt           查看从第一行到第5行内容

sed -n '5p;5q' example.txt         查看第5行

sed -e 's/00*/0/g'
example.txt         用单个零替换多个零

cat -n file1                标示文件的行数

cat example.txt | awk
'NR%2==1'        删除example.txt文件中的所有偶数行

echo a b c | awk '{print $1}'
         查看一行第一栏

echo a b c | awk '{print
$1,$3}'       查看一行的第一和第三栏

paste file1 file2               合并两个文件或两栏的内容

paste -d '+' file1 file2           合并两个文件或两栏的内容,中间用"+"区分

sort file1 file2            排序两个文件的内容

sort file1 file2 | uniq         取出两个文件的并集(重复的行只保留一份)

sort file1 file2 | uniq -u         删除交集,留下其他的行

sort file1 file2 | uniq -d         取出两个文件的交集(只留下同时存在于两个文件中的文件)

comm -1 file1 file2      比较两个文件的内容只删除 'file1' 所包含的内容

comm -2 file1 file2      比较两个文件的内容只删除 'file2' 所包含的内容

comm -3 file1 file2      比较两个文件的内容只删除两个文件共有的部分

 

返回顶部索引 ^

 

 

字符设置和文件格式转换

dos2unix filedos.txt
fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX

unix2dos fileunix.txt
filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS

recode ..HTML < page.txt
> page.html   将一个文本文件转换成html

recode -l | more         显示所有允许的转换格式

 

返回顶部索引 ^

 

文件系统分析

badblocks -v /dev/hda1   检查磁盘hda1上的坏磁块

fsck /dev/hda1       修复/检查hda1磁盘上linux文件系统的完整性

fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性

e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性

e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性

fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性

fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性

fsck.msdos /dev/hda1     修复/检查hda1磁盘上dos文件系统的完整性

dosfsck /dev/hda1    修复/检查hda1磁盘上dos文件系统的完整性

 

返回顶部索引 ^

 

初始化一个文件系统

mkfs /dev/hda1           在hda1分区创建一个文件系统

mke2fs /dev/hda1     在hda1分区创建一个linux ext2的文件系统

mke2fs -j /dev/hda1      在hda1分区创建一个linux ext3(日志型)的文件系统

mkfs -t vfat 32 -F /dev/hda1    创建一个 FAT32 文件系统

fdformat -n /dev/fd0        格式化一个软盘

mkswap /dev/hda3     创建一个swap文件系统

 

返回顶部索引 ^

 

SWAP文件系统

mkswap /dev/hda3     创建一个swap文件系统

swapon /dev/hda3     启用一个新的swap文件系统

swapon /dev/hda2 /dev/hdb3 启用两个swap分区

 

返回顶部索引 ^

 

备份

dump -0aj -f /tmp/home0.bak
/home 制作一个 '/home' 目录的完整备份

dump -1aj -f /tmp/home0.bak
/home 制作一个 '/home' 目录的交互式备份

restore -if /tmp/home0.bak      还原一个交互式备份

rsync -rogpav --delete /home
/tmp 同步两边的目录

rsync -rogpav -e ssh --delete
/home ip_address:/tmp     通过SSH通道rsync

rsync -az -e ssh --delete
ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录

rsync -az -e ssh --delete
/home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录

dd bs=1M if=/dev/hda | gzip |
ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作

dd if=/dev/sda of=/tmp/file1       备份磁盘内容到一个文件

tar -Puf backup.tar
/home/user     执行一次对 '/home/user' 目录的交互式备份操作

( cd /tmp/local/ &&
tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p'       通过ssh在远程目录中复制一个目录内容

( tar c /home ) | ssh -C
user@ip_addr 'cd /home/backup-home && tar x -p'         通过ssh在远程目录中复制一个本地目录

tar cf - . | (cd /tmp/backup
; tar xf - )                          本地将一个目录复制到另一个地方,保留原有权限及链接

find /home/user1 -name
'*.txt' | xargs cp -av --target-directory=/home/backup/ --parents   从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录

find /var/log -name '*.log' |
tar cv --files-from=- | bzip2 > log.tar.bz2           查找所有以 '.log' 结尾的文件并做成一个bzip包

dd if=/dev/hda of=/dev/fd0
bs=512 count=1     做一个将 MBR (Master Boot Record)内容复制到软盘的动作

dd if=/dev/fd0 of=/dev/hda bs=512
count=1     从已经保存到软盘的备份中恢复MBR内容

 

返回顶部索引 ^

 

光盘

cdrecord -v gracetime=2
dev=/dev/cdrom -eject blank=fast -force           清空一个可复写的光盘内容

mkisofs /dev/cdrom >
cd.iso                             在磁盘上创建一个光盘的iso镜像文件

mkisofs /dev/cdrom | gzip
> cd_iso.gz                       在磁盘上创建一个压缩了的光盘iso镜像文件

mkisofs -J
-allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd
   创建一个目录的iso镜像文件

cdrecord -v dev=/dev/cdrom
cd.iso         刻录一个ISO镜像文件

gzip -dc cd_iso.gz | cdrecord
dev=/dev/cdrom -       刻录一个压缩了的ISO镜像文件

mount -o loop cd.iso /mnt/iso
            挂载一个ISO镜像文件

cd-paranoia -B                     从一个CD光盘转录音轨到 wav 文件中

cd-paranoia -- "-3"
               从一个CD光盘转录音轨到 wav 文件中(参数-3)

cdrecord --scanbus                 扫描总线以识别scsi通道

dd if=/dev/hdc | md5sum            校验一个设备的md5sum编码,例如一张 CD

 

返回顶部索引 ^

 

网络 - (以太网和WIFI无线)

ifconfig eth0               显示一个以太网卡的配置

ifup eth0            启用一个 'eth0' 网络设备

ifdown eth0 禁用一个 'eth0'        网络设备

ifconfig eth0 192.168.1.1
netmask 255.255.255.0 控制IP地址

ifconfig eth0 promisc              设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)

dhclient eth0                   以dhcp模式启用 'eth0'

route -n show routing table

route add -net 0/0 gw IP_Gateway
configura default gateway

route add -net 192.168.0.0
netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network
'192.168.0.0/16'

route del 0/0 gw IP_gateway
remove static route

echo "1" >
/proc/sys/net/ipv4/ip_forward activate ip routing

hostname show hostname of
system

host www.example.com lookup
hostname to resolve name to ip address and viceversa(1)

nslookup www.example.com
lookup hostname to resolve name to ip address and viceversa(2)

ip link show show link status
of all interfaces

mii-tool eth0 show link
status of 'eth0'

ethtool eth0 show statistics
of network card 'eth0'

netstat -tup show all active
network connections and their PID

netstat -tupl show all
network services listening on the system and their PID

tcpdump tcp port 80 show all
HTTP traffic

iwlist scan show wireless
networks

iwconfig eth1 show
configuration of a wireless network card

hostname show hostname

host www.example.com lookup
hostname to resolve name to ip address and viceversa

nslookup www.example.com
lookup hostname to resolve name to ip address and viceversa

whois www.example.com lookup
on Whois database

 

GO TOP INDEX ^

Microsoft Windows networks
(SAMBA)

nbtscan ip_addr netbios name
resolution

nmblookup -A ip_addr netbios
name resolution

smbclient -L ip_addr/hostname
show remote shares of a windows host

smbget -Rr
smb://ip_addr/share like wget can download files from a host windows via smb

mount -t smbfs -o
username=user,password=pass //WinClient/share /mnt/share mount a windows
network share

时间: 2024-11-25 23:24:57

Linux 文本处理等指令的相关文章

linux基础-linux文本模式显示问题

问题描述 linux文本模式显示问题 比如cal 2013,只能看到后面九个月的,前面三个月的看不到,怎么切换呢,是分辨率的原因,还是需要设置或者指令什么的呢?求大神指导...

《Linux指令从入门到精通》——4.4 Linux下的文本编辑指令

4.4 Linux下的文本编辑指令 4.4.1 col指令:过滤控制字符学会滤除控制字符 col [-可选参数] col指令过滤控制字符,可以将文件的内容转换为纯文本模式,可处理man指令的输出数据.同时col指令还能使用多个空格代替tab,能用于转存nroff和tbl的输出. 可选参数及其说明如下: 范例425 过滤控制字符,并保存为文本文件. [root@localhost yy]# man cat > h.txt [root@localhost yy]# cat h.txt CAT(1)

优秀的Linux文本编辑器

优秀的Linux文本编辑器想要挑起狂热Linux爱好者之间的激烈争辩吗?那就问问他们最喜欢的文本编辑器是什么吧.在开源社区中,选择一个用来写文本,或者更进一步,用来写代码的编辑器,比选择一个球队或者游戏控制器还要重要.但是任何一个Linux新手都不该为过多的建议和各种各样的煽动而感到焦虑不安,取而代之,先去试着熟悉熟悉一堆不同的文本编辑器吧.所以今天我将要给你建议一个简单主题的列表,里面的编辑器都可以在Linux下编辑文本.这个列表不包括那些成熟的只用来编程的IDE,也不包括那些专门进行LaTe

linux shell编程 sed指令问题

问题描述 linux shell编程 sed指令问题 在同一个目录下有两个文件oracle-ds.xml,postgresql-ds.xml 我分别执行指令 sed -n '/^ */p' oracle-ds.xml sed -n '/^ */p' postgresql-ds.xml 为什么oracle-ds.xml 的可以匹配到,而postgresql-ds.xml无法匹配到,两个文件都有 查了半天没弄懂,求指点 我粘下文件内容: oracle-ds.xml: Oracle9i 2330201

最优秀的5个Linux文本编辑器

导读:作者aaabz写了一篇文章<最优秀的5个Linux文本编辑器>,作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了约200个反馈.基于这个数据,最优秀的Linux文本编辑器: Vi/Vim Editor  Vim以绝对优势获胜在大家的意料之中.如果你不熟悉最好的5个Linux文本编辑器中的任何一个,阅读本文剩下的部分对那些编辑器多点了解. Fig:Favorite Linux Text Editor Voting Results 1.Vim

linux文本界面下如何关闭pc喇叭?

linux文本界面下如何关闭pc喇叭? 1 将/etc/inputrc中的set bell-style none 前的#去掉: 2 echo "set bell-style none" >> ~/.bashrc: 3 去除vi的铃声,echo "set vb t_vb=" >> ~/.vimrc

一天一个shell命令 linux文本内容操作系列-awk命令详解_linux shell

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

观察Linux系统时钟的指令

Hertz: Linux核心每隔固定周期会发出timer interrupt (IRQ 0),HZ是用来定义每一秒有几次timer interrupts.用这个指令可以查看(可能需要root权限,或有版本要求): # cat /boot/config-`uname -r` | grep '^CONFIG_HZ=' 如果上述指令不能用,可用下面这个来观察: #cat /proc/interrupts | grep timer && sleep 1 && cat /proc/i

查看Linux服务器状态的指令

首次接触一台Linux服务器时,都有哪些指令可以帮我了解情况?用博客记录下来,备忘.其中有些指令下次再用真不知道是什么时候呢. 系统版本: $ cat /proc/version $ lsb_release -a $ cat /etc/redhat-release CPU是32位还是64位:$ getconf LONG_BIT 查看CPU更多的信息:$ cat /proc/cpuinfo 全部内存信息:$ cat /proc/meminfo 一条内存信息(本例查看MemTotal):$ grep