● 掌握 Linux 各类命令的使用方法;
● 熟悉 Linux 操作环境。
练习使用 Linux 常用命令,达到熟练应用的目的。
( 1)启动计算机,利用 root 用户登录到系统,进入字符提示界面。
( 2)用 pwd 命令查看当前所在的目录。
( 3)用 ls 命令列出此目录下的文件和目录。
( 4)用-a 选项列出此目录下包括隐藏文件在内的所有文件和目录。
( 5)用 man 命令查看 ls 命令的使用手册。
( 6)在当前目录下,创建测试目录 test。
( 7)利用 ls 命令列出文件和目录,确认 test 目录创建成功。
( 8)进入 test 目录,利用 pwd 查看当前工作目录。
( 9)利用 touch 命令,在当前目录创建一个新的空文件 newfile。
( 10)利用 cp 命令复制系统文件/etc/profile 到当前目录下。
( 11)复制文件 profile 到一个新文件 profile.bak,作为备份。
( 12)用 ll 命令以长格形式列出当前目录下的所有文件,注意比较每个文件的长度和创建时间的不同。
( 13)用 less 命令分屏查看文件 profile 的内容,并对 then 关键字查找。
less 使用参数
/字符串:向下搜索字符串的功能
?字符串:向上搜索字符串的功能
n:重复前一个搜索
N:反向重复前一个搜索
( 14)用 grep 命令在 profile 文件中对关键字 then 进行查询,并与上面的结果比较。
#grep then profile
( 15)给文件 profile 创建一个软链接 lnsprofile 和一个硬链接 lnhprofile。
-s 软链接(符号链接)
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
( 16)长格形式显示文件 profile、 lnsprofile 和 lnhprofile 的详细信息。注意比较 3 个文件链接数的不同。
( 17)删除文件 profile,用长格形式显示文件 lnsprofile 和 lnhprofile 的详细信息,比较文件 lnhprofile的链接数的变化。
( 18)用 less 命令查看文件 lnsprofile 的内容,看看有什么结果。
( 19)用 less 命令查看文件 lnhprofile 的内容,看看有什么结果。
( 20)删除文件 lnsprofile,显示当前目录下的文件列表,回到上层目录。
( 21)用 tar 命令把目录 test 打包到/root目录下。
打包:# tar cvf /root/ test.tar ./
打包查看:# tar tvf /root/ test.tar
在test目录下建立一个新文件eee,并添加该新文件到test.tar打包文件中。
# tar rvf /root/ test.tar eee (先在test目录下建立一个新文件eee)
添加后查看:# tar tvf /root/ test.tar
删除打包内的文件eee,并查看删除结果:
# tar --delete -f /root/ test.tar eee
# tar tvf /root/ test.tar
解包:# tar xvf /root/ test.tar -C ./xtest
(先在test目录下建立一个子目录xtest)
(注:tar是打包,不是压缩!)
压缩:# tar zcvf /root/ test.tar.gz ./
解压:# tar zxvf /root/ test.tar.gz -C ./ztest
(先在test目录下建立一个子目录ztest)
( 22)用 gzip 命令把打好的包进行压缩。
压缩:# gzip /root/test.tar (先删除/root/test.tar.gz文件)
解压1:# gunzip -c /root/ test.tar.gz > ./gtest/test.tar
(先建立子目录gtest)
解压2:# gzip -d -c /root/ test.tar.gz > ./gtest/test.tar
( 23)把文件 test.tar.gz 改名为 backup.tar.gz。
( 24)显示当前目录下的文件和目录列表,确认重命名成功。
( 25)把文件 backup.tar.gz 移动到 test 目录下。
( 26)显示当前目录下的文件和目录列表,确认移动成功。
( 27)进入 test 目录,显示目录中的文件列表。
( 28)把文件 backup.tar.gz 解包。
( 29)显示当前目录下的文件和目录列表,复制 test 目录为 testbak 目录作为备份。
( 30)查找 root 用户自己主目录下的所有名为 newfile 的文件。
find命令可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。 不管当前路径是什么,如果想要在自己的根目录 H O M E 中 查 找 文 件 名 符 合 ∗ . l o g 的 文 件 , 使 用 作 为 ′ p a t h n a m e ′ 参 数 , 波 浪 号 代 表 了 你 的 HOME中查找文件名符合*.log的文件,使用~作为 'pathname'参数,波浪号~代表了你的 HOME中查找文件名符合∗.log的文件,使用 作为′pathname′参数,波浪号 代表了你的HOME目录。
#find ~ -name "*.log" -print
想要在当前目录及子目录中查找所有的‘ *.log‘文件,可以用:
#find . –name "*.log" -print
想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:
#find . -name "[A-Z]*" -print
想要在/etc目录中查找文件名以host开头的文件,可以用:
#find /etc -name "host*" -print
想要查找$HOME目录中的文件,可以用:
#find ~ -name "*" -print
( 1)利用 date 命令显示系统当前时间,并修改系统的当前时间。
date -s 时间字符串
如只修改系统的日期,不修改时间(时分秒)
$ date -s 2016-08-02
或只修改时间不修改日期
$ date -s 10:08:00
也可同时修改日期和时间
$ date -s "2016-05-18 04:53:00"
( 2)显示当前登录到系统的用户状态。
who:列举出当前已登录系统的用户名称。
输出:用户名、tty号、时间日期、主机地址。
tty(终端)设备:包括虚拟控制台(计算机显示器通常被称为控制台终端 (Console)),串口以及伪终端设备。 tty[1-6] :ctr+alt+f[1-6]切换虚拟控制台。
pty设备:伪终端,逻辑上的终端设备,多用于模拟终端程序。如,在X Window下打开的终端,及在Windows使用telnet 或ssh等方式登录Linux主机,此时就是在使用pty设备。pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。
如:某人使用telnet程序连接到你的计算机,则telnet程序可能是:
TELNET(网络) —> pts (s: slave) —> ptmx (m: master) —> GETTY(本地)
$ who
ramesh pts/0 2016-03-28 22:57 (dev-db-server)
如只列出用户,使用如下语句:
$ who | cut –d ' ' -f1 | sort | uniq
ramesh
w:显示已登录系统的用户名称,及正执行的程序。
输出:
用户名称
用户的机器名称或tty号
远程主机地址
用户登录系统的时间
空闲时间
tty(终端)上运行的进程所用时间
当前进程所用时间
用户当前正使用的命令
# w
23:04:27 up 29 days, 7:51, 2 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
john pts/2 dev-db-server 23:04 0.00s 0.00s 0.00s w
whoami:显示登入的用户名
$ whoami
john
( 3)利用 free 命令显示内存的使用情况。
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-s<间隔秒数>:持续观察内存使用状况;
# free -m
total used free shared buffers cached
Mem: 2016 1973 42 0 163 1497
-/+ buffers/cache: 312 1703
Swap: 4094 0 4094
缓冲区buffer:位于内存区域。用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。
高速缓存cache:位于CPU与内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用。
第一部分Mem:
total:内存总数; used:已经使用的内存数; free:空闲的内存数; shared:当前共享; buffers Buffer:缓存内存数; cached:缓存内存数。
关系:total = used + free
第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached (+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached
-buffers/cache反映的是被程序实际占用的内存,而+buffers/cache反映的是可以挪用的内存总数。
第三部分:
交换分区。
( 4)利用 df 命令显示系统的硬盘分区及使用状况。
示例:
以更易读的方式显示磁盘使用情况
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 8.7G 1007M 7.3G 12% /
tmpfs 935M 0 935M 0% /dev/shm
/dev/sda1 194M 27M 158M 15% /boot
/dev/sda5 9.0G 149M 8.4G 2% /doiido
显示系统所有的分区
# df -a
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 9071088 1030988 7579300 12% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
tmpfs 957244 0 957244 0% /dev/shm
/dev/sda1 198337 26817 161280 15% /boot
/dev/sda5 9351388 151940 8724416 2% /doiido
none 0 0 0 - /proc/sys/fs/binfmt_misc
显示inode索引节点使用情况
索引节点:储存文件的元信息区域,如文件的创建者、文件的创建日期、文件的大小等等。这个区域叫inode(索引节点)。
硬盘格式化时,操作系统自动将硬盘分两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
查看方法: #dumpe2fs -h /dev/hda | grep “inode size”
dumpe2fs :显示ext2/ext3/ext4文件系统信息。
查看inode-table 中某一项数据
# stat filetime.txt
File: `filetime.txt'
Size: 39 Blocks: 8 IO Block: 4096 Regular File
Device: 802h/2050d Inode: 17 Links: 1
Access: (0644/-rw-r--r--) Uid: (0/root) Gid: (0/root)
Access: 2009-08-04 15:13:44.000000000 +0800
Modify: 2009-08-04 15:13:44.000000000 +0800
Change: 2009-08-04 15:13:44.000000000 +0800
ls -i命令,可看到文件名对应的inode号:
# ls -i test.txt
6970 test.txt
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda2 577088 32829 544259 6% /
tmpfs 239311 1 239310 1% /dev/shm
/dev/sda1 51200 38 51162 1% /boot
/dev/sda5 594512 11 594501 1% /doiido
以k为单位显示磁盘使用情况
# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 9071088 1030992 7579296 12% /
tmpfs 957244 0 957244 0% /dev/shm
/dev/sda1 198337 26817 161280 15% /boot
/dev/sda5 9351388 151940 8724416 2% /doiido
显示文件系统的类型。
# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda2 ext4 9071088 1030992 7579296 12% /
tmpfs tmpfs 957244 0 957244 0% /dev/shm
/dev/sda1 ext4 198337 26817 161280 15% /boot
/dev/sda5 ext4 9351388 151940 8724416 2% /doiido
显示指定类型磁盘
# df -t ext2
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 9071088 1030992 7579296 12% /
/dev/sda1 198337 26817 161280 15% /boot
/dev/sda5 9351388 151940 8724416 2% /doiido
( 5)显示当前目录下各级子目录的硬盘占用情况。
如:
-h:以人类可读的方式显示
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
–max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。