欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

shell笔记1

时间:2023-07-24

1、cat
-n参数会给所有的行加上行号。
$ cat -n test1
1 hello
2
3 This is a test file.
4
5
6 That we’ll use to test the cat command.

这个功能在检查脚本时很有用。如果只想给有文本的行加上行号,可以用-b参数。$ cat -b test11 hello2 This is a test file.3 That we'll use to test the cat command.

3、tail
tail命令会显示文件最后几行的内容(文件的“尾部”)。默认情况下,它会显示文件的末尾10行。
可以向tail命令中加入-n参数来修改所显示的行数。在下面的例子中,通过加入-n 2使
tail命令只显示文件的最后两行:
$ tail -n 2 log_file
line19
Last line - line20

-f参数是tail命令的一个突出特性。它允许你在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态,并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。

4、mount/unmount
要手动在虚拟目录中挂载设备,需要以root用户身份登录,或是以root用户身份运行sudo命
令。下面是手动挂载媒体设备的基本命令:
mount -t type device directory
type参数指定了磁盘被格式化的文件系统类型。Linux可以识别非常多的文件系统类型。如
果是和Windows PC共用这些存储设备,通常得使用下列文件系统类型。
 vfat:Windows长文件系统。
 ntfs:Windows NT、XP、Vista以及Windows 7中广泛使用的高级文件系统。
 iso9660:标准CD-ROM文件系统。
大多数U盘和软盘会被格式化成vfat文件系统。而数据CD则必须使用iso9660文件系统类型。
后面两个参数定义了该存储设备的设备文件的位置以及挂载点在虚拟目录中的位置。比如
说,手动将U盘/dev/sdb1挂载到/media/disk,可用下面的命令:
mount -t vfat /dev/sdb1 /media/disk
媒体设备挂载到了虚拟目录后,root用户就有了对该设备的所有访问权限,而其他用户的访
问则会被限制。你可以通过目录权限(将在第7章中介绍)指定用户对设备的访问权限。

卸载设备的命令是umount(是的,你没看错,命令名中并没有字母n,这一点有时候很让人困惑)。umount命令的格式非常简单:umount [directory | device ]umount命令支持通过设备文件或者是挂载点来指定要卸载的设备。如果有任何程序正在使用设备上的文件,系统就不会允许你卸载它:[root@testbox mnt]# umount /home/rich/mntumount: /home/rich/mnt: device is busyumount: /home/rich/mnt: device is busy[root@testbox mnt]# cd /home/rich[root@testbox rich]# umount /home/rich/mnt[root@testbox rich]# ls -l mnttotal 0[root@testbox rich]#上例中,命令行提示符仍然在挂载设备的文件系统目录中,所以umount命令无法卸载该

5、df
有时你需要知道在某个设备上还有多少磁盘空间。df命令可以让你很方便地查看所有已挂载
磁盘的使用情况。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 18251068 7703964 9605024 45% /
/dev/sda1 101086 18680 77187 20% /boot
tmpfs 119536 0 119536 0% /dev/shm
/dev/sdb1 127462 113892 13570 90% /media/disk
$
df命令会显示每个有数据的已挂载文件系统。如你在前例中看到的,有些已挂载设备仅限系
统内部使用。命令输出如下:
 设备的设备文件位置;
 能容纳多少个1024字节大小的块;
 已用了多少个1024字节大小的块;
 还有多少个1024字节大小的块可用;
 已用空间所占的比例;
 设备挂载到了哪个挂载点上。
df命令有一些命令行参数可用,但基本上不会用到。一个常用的参数是-h。它会把输出中
的磁盘空间按照用户易读的形式显示,通常用M来替代兆字节,用G替代吉字节。

6、du
du命令可以显示某个特定目录(默认情况下是当前目录)的
磁盘使用情况。这一方法可用来快速判断系统上某个目录下是不是有超大文件。
默认情况下,du命令会显示当前目录下所有的文件、目录和子目录的磁盘使用情况,它会以
磁盘块为单位来表明每个文件或目录占用了多大存储空间。对标准大小的目录来说,这个输出会是一个比较长的列表
下面是能让du命令用起来更方便的几个命令行参数。
 -c:显示所有已列出文件总的大小。
 -h:按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字节。
 -s:显示每个输出参数的总计。

7、sort
sort -n 把数字识别成数字而不是字符,并且按值排序。
sort -M 识别三字符的月份名,并相应地排序
-k和-t参数在对按字段分隔的数据进行排序时非常有用,例如/etc/passwd文件。可以用-t
参数来指定字段分隔符,然后用-k参数来指定排序的字段。举个例子,要对前面提到的密码文件
/etc/passwd根据用户ID进行数值排序,可以这么做:
$ sort -t ‘:’ -k 3 -n /etc/passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin

-n参数在排序数值时非常有用,比如du命令的输出。$ du -sh * | sort -nr1008k mrtg-2.9.29.tar.gz972k bldg1888k fbs2.pdf760k Printtest

8、grep
grep [options] pattern [file]
grep命令会在输入或指定的文件中查找包含匹配指定模式的字符的行。grep的输出就是包
含了匹配模式的行。
下面两个简单的例子演示了使用grep命令来对4.3.1节中用到的文件file1进行搜索。
$ grep three file1
three
$ grep t file1
two
three
$

如果要进行反向搜索(输出不匹配该模式的行),可加-v参数。$ grep -v t file1onefourfive$如果要显示匹配模式的行所在的行号,可加-n参数。$ grep -n t file12:two3:three$如果只要知道有多少行含有匹配的模式,可用-c参数。$ grep -c t file12$如果要指定多个匹配模式,可用-e参数来指定每个模式。$ grep -e t -e f file1twothreefourfive$

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。