❶ linux shell怎么查找文件中指定字符串,并把该字符串和下一行的内容写到另一个文件中
有两种写入方式:
1、grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txt
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
2、awk '/aaa/{getline var;print $1"
" var}' 1.txt >2.txt
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。
❷ Linux中shell命令相关问题求助大佬
Linux Shell常用shell命令
一、文件、目录操作命令
1、ls命令
功能:显示文件和目录的信息
ls以默认方式显示当前目录文件列表
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)
ls -lt 显示文件,按照修改时间排序
2、cd命令
功能:改名目录
cd dir切换到当前目录下的dir目录
cd /切换到根目录
cd ..切换到到上一级目录
cd ../..切换到上二级目录
cd ~切换到用户目录,比如是root用户,则切换到/root下
根目录与家目录的区别:
根目录是系统的一级文件结构,家目录只是非root用户控制目录。相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。
根目录是设备的最顶层目录,用 / 表示
家目录是每个用户登录系统后所在的目录,通常在 /home 下,以用户名作为目录,可以用 ~ 表示。
cd / 进入根目录
cd ~/ 进入家目录
当然,也可以用 /home/someone 进入someone的家目录
3、cp命令
功能:文件
cp source target将文件source复制为target
cp /root /source .将/root下的文件source复制到当前目录
eg:cp /home/open_038_dev/external_files/test/test.sh .
cp –av soure_dir target_dir将整个目录复制,两目录完全一样
4、rm命令
功能:删除文件或目录
rm file删除某一个文件
rm -f file 删除时候不进行提示。可以于r参数配合使用
rm -rf dir删除当前目录下叫dir的整个目录
5、mv命令
功能:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令
mv source target将文件source更名为target
命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
实例一:文件改名
命令:
mv test.log test1.txt
实例二:移动文件
命令:
mv test1.txt test3
将文件log1.txt,log2.txt,log3.txt移动到目录test3中。
mv log1.txt log2.txt log3.txt test3
将文件log1.txt log2.txt log3.txt异动到/opt/soft/test/test4目录下
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
移动当前文件夹下的所有文件到上一级目录
mv * ../
6、diff
功能:比较文件内容
diff dir1 dir2比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff file1 file2比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
comm file1 file2比较文件,显示两个文件不相同的内容
7、ln命令
功能:建立链接。windows的快捷方式就是根据链接的原理来做的
ln source_path target_path 硬连接
ln -s source_path target_path 软连接
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less
http://www.cnblogs.com/joeblackzqq/archive/2011/03/20/1989625.html
二、查看文件内容命令
1、cat命令
显示文件的内容,和DOS的type相同
cat file
2、more命令
功能:分页显示命令
morefile
more命令也可以通过管道符(|)与其他的命令一起使用,例如:
ps ux|more
ls|more
3、tail 命令
功能:显示文件的最后几行
tail -n 100 aaa.txt 显示文件aaa.txt文件的最后100行
4、vi命令
vi file编辑文件file
vi 原基本使用及命令:
输入命令的方式为先按[ESC]键,然后输入:w(写入文件),:w!(不询问方式写入文件),:wq保存并退出,:q退出,q!不保存退出
5、touch命令
功能:创建一个空文件
touch aaa.txt 创建一个空文件,文件名为aaa.txt
三、基本系统命令
1、man命令
功能:查看某个命令的帮助,如果你不知道某个命令的用法不懂,可以问他,他知道就回告诉你
例如:
man ls 显示ls命令的帮助内容
2、w命令
功能:显示登录用户的详细信息
例如:
Sarge:~# w
22:06:51 up 43 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
zhoulj pts/0 10.140.0.109 21:24 0.00s 0.85s 0.09s sshd: zhoulj [priv]
3、who命令
功能:显示登录用户
例如:
Sarge:~# who
zhoulj pts/0 Mar 13 21:24 (10.140.0.109)
4、last命令
功能:查看最近那些用户登录系统
例如:
Sarge:~# last
zhoulj pts/0 10.140.0.109 Mon Mar 13 21:24 still logged in
reboot system boot 2.6.8-2-386 Mon Mar 13 21:23 (00:43)
zhoulj pts/0 10.140.0.105 Sun Mar 12 22:51 - down (00:00)
zhoulj pts/0 10.140.0.105 Sun Mar 12 22:51 - 22:51 (00:00)
root tty1 Sun Mar 12 22:50 - down (00:01)
root tty1 Sun Mar 12 22:46 - 22:48 (00:02)
root tty1 Sun Mar 12 22:43 - 22:46 (00:02)
reboot system boot 2.6.8-2-386 Mon Mar 13 06:34 (-7:-41)
wtmp begins Mon Mar 13 06:34:11 2006
5、date命令
功能:系统日期设定
date显示当前日期时间
date -s 20:30:30设置系统时间为20:30:30
date -s 2002-3-5设置系统时期为2003-3-5
date -s "060520 06:00:00"设置系统时期为2006年5月20日6点整。
6、clock命令
功能:时钟设置
clock –r对系统Bios中读取时间参数
clock –w将系统时间(如由date设置的时间)写入Bios
7、uname命令
功能:查看系统版本
uname -R显示操作系统内核的version
例如:
Sarge:~# uname -a
Linux Sarge 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux
8、关闭和重新启动系统命令
reboot 重新启动计算机
shutdown -r now 重新启动计算机,停止服务后重新启动计算机
shutdown -h now 关闭计算机,停止服务后再关闭系统
halt 关闭计算机
一般用shutdown -r now,在重启系统是,关闭相关服务,shutdown -h now也是如此。
9、su命令
功能:切换用户
su - 切换到root用户
su - zhoulj 切换到zhoulj用户,
注意:- ,他很关键,使用-,将使用用户的环境变量
http://man.linuxde.net/su
四、监视系统状态命令
1、top命令
功能:查看系统cpu、内存等使用情况
2、free命令
功能:查看内存和swap分区使用情况
例如:
Sarge:~# free -tm
total used free shared buffers cached
Mem: 187 42 145 0 6 16
-/+ buffers/cache: 19 167
Swap: 243 0 243
Total: 430 42 388
3、uptime
功能:现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载
例如:
Sarge:~# uptime
21:54:46 up 31 min, 1 user, load average: 0.00, 0.00, 0.00
4、vmstat命令
功能:监视虚拟内存使用情况
例如:
# vmstat
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 63704 8100 32272 0 0 8 3 103 17 0 1 98 1
5、ps命令
功能:显示进程信息
ps ux 显示当前用户的进程
ps uxwww 显示当前用户的进程的详细信息
ps aux 显示所有用户的进程
ps ef 显示系统所有进程信息
6、kill命令
功能:干掉某个进程,进程号可以通过ps命令得到
kill -9 1001将进程编号为1001的程序干掉
kill all -9 apache将所有名字为apapche的程序杀死,kill不是万能的,对僵死的程序则无效。
五、磁盘操作命令
1、df命令
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
参数 功能
-a 列出全部目录
-Ta 列出全部目录,并且显示文件类型
-B 显示块信息
-i 以i节点列出全部目录
-h 按照日常习惯显示(如:1K、100M、20G)
-x [filesystype] 不显示[filesystype]
例如:
# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext3 265M 64M 187M 26% /
tmpfs tmpfs 94M 0 94M 0% /dev/shm
/dev/sda6 ext3 714M 8.1M 667M 2% /home
/dev/sda8 ext3 956M 215M 691M 24% /usr
/dev/sda7 ext3 714M 57M 619M 9% /var
2、命令
功能:检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间。
参数 功能
-s [dirName] 显示目录占用总空间
-sk [dirName] 显示目录占用总空间,以k为单位
-sb [dirName] 显示目录占用总空间,以b为单位
-sm [dirName] 显示目录占用总空间,以m为单位
-sc [dirName] 显示目录占用总空间,加上目录统计
-sh [dirName] 只统计目录大小
例如:
# -sh /etc
1.3M /etc
3、mount命令
功能:使用mount命令就可在Linux中挂载各种文件系统。
格式:mount -t 设备名 挂载点
(1)、mount /dev/sda1 /mnt/filetest
mount -t vfat /dev/hda /mnt/fatfile
mount -t ntfs /dev/hda /mnt/ntfsfile
mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -o 设备名 挂载点
(2)、使用usb设备
modprobe usb-storage
mkdir /mnt/usb
mount -t auto /dev/sdx1 /mnt/usb
umount /mnt/usb
4、mkswap命令
功能:使用mkswap命令可以创建swap空间,如:
debian:~# mkswap -c /dev/hda4
debian:~# swapon /dev/hda4 #启用新创建的swap空间,停用可使用swapoff命令
5、fdisk命令
功能:对磁盘进行分区
fdisk /dev/xxx 格式化xxx设备(xxx是指磁盘驱动器的名字,例如hdb,sdc)
fdisk -l 显示磁盘的分区表
6、mkfs命令
功能:格式化文件系统,可以指定文件系统的类型,如ext2、ext3、fat、ntfs等
格式1:mkfs.ext3 options /dev/xxx
格式2:mkfs -t ext2 options /dev/xxx
参数 功能
-b 块大小
-i 节点大写
-m 预留管理空间大小
例如:
debian:~#mkfs.ext3 /dev/sdb1
7、e2fsck命令
功能:磁盘检测
e2fsck /dev/hda1检查/dev/hda1是否有文件系统错误,提示修复方式
e2fsck -p /dev/hda1检查/dev/hda1是否有错误,如果有则自动修复
e2fsck -y /dev/hda1检查错误,所有提问均于yes方式执行
e2fsck -c /dev/hda1检查磁盘是否有坏区
8、tune2fs命令
功能:调整ext2/ext3文件的参数
参数 功能
-l 查看文件系统信息
-c 设置强制自检的挂载次数
-i 设置强制自检的间隔时间,单位天
-m 保留块的百分比
-j 将ext2文件系统转换成ext3格式
# tune2fs -l /dev/sda1
9、dd命令
功能:功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。
跟DOS下的disk命令的作用类似。
dd if=/dev/fd0 of=floppy.img将软盘的内容复制成一个镜像
dd if=floppy.img of=/dev/fd0将一个镜像的内容复制到软盘,做驱动盘的时候经常用。
六、用户和组相关命令
1、groupadd命令
功能:添加组
groupadd test1 添加test1组
groupadd -g 1111 test2 添加test2组,组id为1111
2、useradd命令
功能:添加用户
useradd user1 添加用户user1,home为/home/user1,组为user1
useradd -g test1 -m -d /home/test1 test1 添加用户test1,home为/home/test1,组为test1
user list显示已登陆的用户列表
3、passwd命令
功能:更改用户密码
passwd user1修改用户user1的密码
passwd -d root将root用户的密码删除
4、userdel命令
功能:删除用户
userdel user1删除user1用户
5、chown命令
功能:改变文件或目录的所有者
chown user1 /dir将/dir目录设置为user1所有
chown -R user1.user1 /dir将/dir目录下所有文件和目录,设置为user1所有,组为user1。-R递归到下面的每个文件和目录
6、chgrp命令
功能:改变文件或目录的所有组
chgrp user1 /dir将/dir目录设置为user1所有
7、chmod命令
功能:改变用户的权限
chmod a+x file将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bash file才能执行
chmod 666 file将文件file设置为可读写
chmod 750 file 将文件file设置为,所有者为完全权限,同组可以读和执行,其他无权限
8、id命令
功能:显示用户的信息,包括uid、gid等
# id zhoulj
uid=500(zhoulj) gid=500(zhoulj) groups=500(zhoulj)
9、finger命令
功能:显示用的信息
注意:debian下没有该命令。
# finger zhoulj
Login: zhoulj Name:
Directory: /home/zhoulj Shell: /bin/bash
On since Sun May 21 07:59 (CST) on pts/0 from 192.168.1.4
No mail.
No Plan.
七、压缩命令
1、gzip格式命令
功能:压缩文件,gz格式的
注意:生成的文件会把源文件覆盖
gzip -v 压缩文件,并且显示进度
-d 解压缩
gunzip -f 解压缩
例如:
# gzip a.sh
#ll
-rwxr-xr-x 1 root root 71 12月 18 21:08 a.sh.gz
# gzip -d a.sh.gz
#ll
-rwxr-xr-x 1 root root 48 12月 18 21:08 a.sh
2、zip格式命令
功能:压缩和解压缩zip命令
zip
unzip
例如:
将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:
zip -q -r html.zip /home/Blinux/html
(-q:不显示指令执行过程 -r:递归处理,将指定目录下的所有文件和子目录一并处理)
# zip a.sh.zip a.sh
adding: a.sh (stored 0%)
# ll
-rw-r--r-- 1 root root 188 5月 21 10:37 a.sh.zip
# unzip a.sh.zip
Archive: a.sh.zip
replace a.sh? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: a1.sh
extracting: a1.sh
# ll
-rwxr-xr-x 1 root root 48 12月 18 21:08 a1.sh
3、bzip2根式命令
功能:bzip2格式压缩命令,
注意:生成的文件会把源文件覆盖
bzip2
bunzip2
例如:
# bzip2 a.sh
# ll
-rwxr-xr-x 1 root root 85 12月 18 21:08 a.sh.bz2
# bunzip2 a.sh.bz2
# ll
-rwxr-xr-x 1 root root 48 12月 18 21:08 a.sh
4、tar命令
功能:归档、压缩等,比较重要,会经常使用。
-cvf 压缩文件或目录
-xvf 解压缩文件或目录
-zcvf 压缩文件或,格式tar.gz
-zxvf 解压缩文件或,格式tar.gz
-zcvf 压缩文件或,格式tgz
-zxvf 解压缩文件或,格式tgz
举例:
# tar cvf abc.tar *.sh
# tar xvf abc.tar
# tar czvf abc.tar.gz *.sh
# ll
-rw-r--r-- 1 root root 20480 5月 21 10:50 abc.tar
-rw-r--r-- 1 root root 1223 5月 21 10:53 abc.tar.gz
# tar xzvf abc.tar.gz
八、网络相关命令
1、ifconfig命令
功能:显示修改网卡的信息
ifconfig 显示网络信息
ifconfig eth0 显示eth0网络信息
修改网络信息:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 设置网卡1的地址192.168.1.1,掩码为255.255.255.0
ifconfig eth0:1 192.168.1.2 捆绑网卡1的第二个地址为192.168.1.2
ifconfig eth0:x 192.168.1.n 捆绑网卡1的第n个地址为192.168.1.n
例如:
# ifconfig eth0:1 192.168.1.11
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:06:9C:24
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4220 errors:0 dropped:0 overruns:0 frame:0
TX packets:3586 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:342493 (334.4 Kb) TX bytes:469020 (458.0 Kb)
Interrupt:9 Base address:0x1400
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:06:9C:24
inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:9 Base address:0x1400
2、route命令
功能:显示当前路由设置情况
route 显示当前路由设置情况,比较慢一般不用。
route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254 添加静态路由
route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254 添加静态路由
route add default gw 192.168.1.1 metric1 设置192.168.1.1为默认的路由
route del default 将默认的路由删除
举例:
# route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.0.0 192.168.1.254 255.255.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
# route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
3、netstat命令
功能:显示网络状态
netstat -an 查看网络端口信息
netstat -nr 查看路由表信息,比route快多了,
4、启动网络的命令
redhat族的命令:
/etc/init.d/network
debian命令:
/etc/init.d/networking
例如:
/etc/init.d/network stop 停止网络,
/etc/init.d/network start 启动网络,
5、手工修改网络配置
(1)、debian系统
配置文件位置为:/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0 eth1
iface eth0 inet static
address 10.4.5.6
netmask 255.255.255.0
network 10.4.5.0
broadcast 10.4.5.255
iface eth1 inet static
address 219.25.5.60
netmask 255.255.255.192
network 219.25.5.0
broadcast 219.25.5.63
gateway 219.25.5.30
修改后保存配置后,运行
/etc/init.d/networking restart
网络配置就改变了
(2)、redhat系统
配置文件位置为:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.5
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.254
ONBOOT=yes
TYPE=Ethernet
修改后保存配置后,运行
/etc/init.d/network restart
或者
service network restart
网络配置就改变了。
默认DNS的文件的位置为:/etc/resolv.conf
#cat /etc/resolv.conf
search test.com.cn
nameserver 192.168.1.11
6、网络排错
(1)、ping命令
功能:不说了,不知道就用干这行了。
ping
(2)、traceroute命令
功能:路由跟踪
traceroute
traceroute 207.68.173.7
(3)、nslookup命令
功能:域名解析排错
例如:
$ nslookup
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
>
Server: 192.168.1.11
Address: 192.168.1.11#53
Non-authoritative answer:
Name:
Address: 202.118.66.66
> server 202.118.66.6
Default server: 202.118.66.6
Address: 202.118.66.6#53
>
Server: 202.118.66.6
Address: 202.118.66.6#53
Non-authoritative answer: canonical name =
.
Name:
Address: 202.108.22.5
九、其他命令
1、ssh命令
功能:远程登陆到其他UNIX主机
ssh -l user1 192.168.1.2 使用用户名user1登陆到192.168.1.2
ssh
使用用户名user1登陆到192.168.1.2
2、scp命令
功能:安全
例如:
scp abc.tar.gz
:~ 将本地的abc.tar.gz 复制到 192.168.1.5的user1用户的根(/home/user1)下。
3、telnet命令
功能:登陆到远程主机
例如:
telnet 192.168.1.5
————————————————
版权声明:本文为CSDN博主「Sunshine~L&H」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LH0912666/article/details/87897629
❸ Linux鏌ョ湅鏂囦欢linux涓嬫煡鐪嬫枃浠
linux濡備綍鏌ョ湅闅愯棌鏂囦欢锛
鏌ョ湅闅愯棌鏂囦欢鐨勬柟娉曟湁寰堝氾紝鍒椾妇鍏朵腑鐨勫嚑涓甯哥敤鐨勬柟娉曪細
ll-a
鏄剧ず褰撳墠鐩褰曟墍鏈夋枃浠躲佹枃浠跺す鐨勮︾粏淇℃伅锛屽寘鎷鏉冮檺銆佸ぇ灏忋佺敤鎴枫佺粍绛
ls-a
鏄剧ず褰撳墠鐩褰曚笅鎵鏈夋枃浠躲佹枃浠跺す鐨勭畝鐣ヤ俊鎭锛屽彧鏈夋枃浠(澶)鐨勫悕绉帮紝浠"."寮澶寸殑閮芥槸闅愯棌鏂囦欢銆
l.锛堣繖鏄涓鍛戒护鍒鍚嶏紝瀹為檯鍛戒护涓簂s-d.*--color=auto锛
鏄剧ず褰撳墠鐩褰曚笅鐨勬墍鏈夐殣钘忔枃浠讹紝鍙鏄剧ず鍚嶇О锛屼笉鏄剧ず璇︽儏
linux鎬庝箞鏌ョ湅zip鏂囦欢锛
1銆侀栧厛锛岃繛鎺ョ浉搴攍inux涓绘満锛岃繘鍏ュ埌linux鍛戒护琛岀姸鎬佷笅锛岀瓑寰呰緭鍏shell鎸囦护銆
2銆佸叾娆★紝鍦╨inux鍛戒护琛屼腑杈撳叆锛歶nzip-ltest.zip銆
3銆佹渶鍚庯紝鎸変笅鍥炶溅閿鎵ц宻hell鎸囦护锛屾ゆ椂浼氱湅鍒皌est.zip涓鍏辨湁1.txt鍜2.txt杩欎袱涓鏂囦欢銆
linux鏌ョ湅rar鏂囦欢锛
linux涓嬫煡鐪媟ar鏂囦欢锛岄渶鍏堝畨瑁卹arforlinux鐨勫畨瑁呭寘锛屽畨瑁呭悗锛屼娇鐢╮arv鍛戒护鏌ョ湅鍘嬬缉鍖呭懡浠わ紝涔熷彲浠ョ洿鎺ヤ娇鐢╱nrar瑙e帇鍘嬬缉鍖呮煡鐪嬫枃浠躲
LINUX涓锛屾煡鐪嬫枃浠跺唴瀹圭殑鏂规硶鍙婂垎椤垫樉绀虹殑鍔炴硶锛
LINUX涓鏌ョ湅鏂囦欢鍐呭圭殑鎸囦护寰堝氾紝涓嬮潰鍒嗗埆浠嬬粛涓涓嬶細
catfile1??
cat鐨勬湰鏉ョ殑鎰忔濇槸杩炴帴锛屽氨鎶婃墍鏈夋枃浠剁殑鍐呭瑰叏閮ㄦ樉绀哄湪涓璧凤紝绾靛悜鎺掑垪
pastefile1??
涓巆at鐨勭敤娉曚竴鑷达紝浣嗘槸鏄鎶婃墍鏈夋枃浠剁殑鍐呭规í鍚戠殑杩炴帴鍦ㄤ竴璧
tail-nfile1
琛ㄧず鏄剧ず鏂囦欢鐨勬渶鍚巒琛岋紝濡傛灉涓嶅姞榛樿ゆ槸鏈鍚10琛
head-nfile1
琛ㄧず鏄剧ず鏂囦欢鐨勬渶鍓嶉潰n鐢燂紝濡傛灉涓嶅姞榛樿ゆ槸鏈寮濮10琛
less,more
鏄鍒嗛〉鏌ョ湅鏂囦欢
褰撶劧涔熷彲浠ユ妸杩欎簺鎸囦护缁勫悎璧锋潵浣跨敤銆
鎬庝箞鏌ョ湅linux鏂囦欢澶逛笅鏈夊氬皯涓鏂囦欢锛
1銆侀栧厛鎵撳紑linux绯荤粺锛岃繘鍏ュ埌鍥惧舰鐣岄潰涓鍘伙細2銆佺劧鍚庡彸閿鍦ㄦ岄潰鐐瑰嚮锛岀偣鍑绘岄潰鑿滃崟涓鐨勭粓绔锛屾墦寮缁堢绔鍙o細3銆佹渶鍚庤緭鍏ュ懡浠も渓s~|wc-w鈥濓紝鍏朵腑wc鐢ㄦ潵璁$畻缁熻℃枃浠剁殑鏁版嵁锛屽洖杞﹀悗鍗冲彲鐪嬪埌鐩褰曟暟銆
浠ヤ笂灏辨槸鏌ョ湅linux鏂囦欢澶逛笅鏂囦欢鏁扮洰鐨勬搷浣滄柟娉曪細❹ shell 查看一个文件text.txt里是否包含多个字符串比如A1和A2,如果是,输出yes,不是输出no
一个awk语句解决:
awk 'BEGIN{RS=""}{if($0~"A1" && $0~"A2" && $0~"A3" && $0~"A4" && $0~"A5" && $0~"A6" && $0~"A7")print "yes";else print "no"}' text.txt
思路就是:
1)awk是按记录(默认为一行文件内容)处理文本的,现在将awk的记录分隔符RS清空(默认是换行符),这样整个文件就会被认为是一条记录。
2)判断该条记录(即整个文件内容)是否匹配A1~A7,都匹配,则打印yes,否则打印no。
不过不知道awk的buffer里能放多少内容,如果文件较大会不会有问题,这种情况有待验证。
————————————————————————————
还有一种跟楼上类似的方式,更容易看懂。
#!/bin/bash
flag=0
for i in {1..7}
do
cat text.txt|grep -q "A$i"
[ $? -ne 0 ] && flag=1
done
if [ $flag -eq 0 ]; then
echo yes
else
echo no
fi
考虑性能的话,我觉得awk的方式会更快,因为只需要读一次文件,读入awk的buffer中,然后再分别匹配A1~A7。而第二种方式需要循环读文件。文件操作是最慢的了。
❺ 利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容
1、在linux目录/root下建来立一个txt文件,内容源如下,使用|竖线分割,作为我们的实验数据样本。
❻ 如何用Shell逐行读取文件
这个的话写一个for循环就可以了 假设你的文件是file,里面有n行 在bash环境中 for i in `cat file`doecho $idone!
❼ 关于linux,shell脚本中怎样判断文件是否有内容
可以用“test 条件表达式”进行测试,如:test -f /etc/fstab 测试文件/etc/fstab文件是否存在
-e File 如果文件File存在(Exist),则为True
-s File 如果文件File存在且文件大小(Size)大于零,则为True
-f File 如果文件File存在且是普通文件(File),则为True
-d File 如果文件File存在且是目录(Directory),则为True
-b File 如果文件File存在且是块(Block)特殊文件,则为True
-c File 如果文件File存在且是字符(Character)特殊文件,则为True
-L File 如果文件File存在且是符号链接(Link)文件,则为True
-r File 如果文件File存在且是可读的(Readable),则为True
-w File 如果文件File存在且是可写的(Writable),则为True
-x File 如果文件File存在且是可执行的(Executable),则为True
-O File 如果文件File存在且属于当前用户(Owner),则为True
-G File 如果文件File存在且属于当前用户组(Group),则为True
File1 -nt File2 如果文件File1新于(Newer Then) File2,则为True
File2 -ot File2 如果文件File1旧于(Older Then) File2,则为True