1.文件及目录操作命令
(1)练习常用shell命令
date、bc、echo、last、history等。
练习:
xushicheng@ubuntu:~$ date #显示系统时间
Sun Apr 28 03:40:10 PDT 2019
xushicheng@ubuntu:~$ bc -l #bc 命令是任意精度计算器语言,通常在linux下当计算器用。-l: #定义使用的标准数学库
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
obase=16 /*定义输出进制为16*/
32378 /*输入32378 */
7E7A /*输出结果为7E7A*/
12345 /*输入12345*/
3039 /*输出3039*/
2+3
5
3.5+3.6
7.1
8.99*3.2
28.768
xushicheng@ubuntu:~$ pi=$(echo "scale=10; 4*a(1)" | bc -l)
xushicheng@ubuntu:~$ pi=`echo "scale=10; 4*a(1)" | bc -l`
xushicheng@ubuntu:~$ echo $pi
3.1415926532
xushicheng@ubuntu:~$ echo 'hello'
hello
xushicheng@ubuntu:~$ last #last 命令用于显示用户最近登录信息。
xushiche pts/0 :0.0 Sun Apr 28 03:40 still logged in
xushiche tty1 Sun Apr 28 03:38 still logged in
xushiche tty1 Sun Apr 28 03:38 - 03:38 (00:00)
xushiche tty7 :0 Sun Apr 28 03:37 still logged in
reboot system boot 2.6.32-21-generi Sun Apr 28 03:37 - 03:46 (00:09)
xushiche tty1 Wed Apr 24 03:25 - down (00:01)
xushiche tty1 Wed Apr 24 03:25 - 03:25 (00:00)
xushiche tty7 :0 Wed Apr 24 03:24 - down (00:02)
reboot system boot 2.6.32-21-generi Wed Apr 24 03:08 - 03:26 (00:18)
xushiche pts/0 :0.0 Sun May 13 06:41 - 06:51 (00:10)
xushiche tty7 :0 Sat May 12 19:51 - down (229+01:39)
reboot system boot 2.6.32-21-generi Sat May 12 19:35 - 20:31 (229+01:55)
wtmp begins Sat May 12 19:35:30 2018
xushicheng@ubuntu:~$ history #用于显示历史记录和执行过的指令命令。
1 ps -aux
2 ps -aux|more
3 ps -6678
4 kill -6678
5 kill -9 4904
6 kill -9 6678
7 clear
8 exit
9 man sudo
10 date
11 bc
12 man bc
13 clear
14 echo
15 echo 'hello'
16 last
17 history
(2)练习文件及目录常用的管理命令
ls find cat grep sort comm diff cp rm mv wc;
mkdir rmdir ln pwd cd 。
练习:
xushicheng@ubuntu:~$ ls #ls命令用于显示指定工作目录下之内容
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
xushicheng@ubuntu:~$ find newfile #find命令用来在指定目录下查找文件。
newfile
newfile/testfind
xushicheng@ubuntu:~/newfile$ cat hello #cat 命令用于连接文件并打印到标准输出设备上。
Hello World!
xushicheng@ubuntu:~$ grep -i 'hello world' newfile/hello |wc -l #grep命令用于查找文件里符合条件的字符串。
1
xushicheng@ubuntu:~/newfile$ sort testsort #sort命令用于将文本文件内容加以排序。
10
2
3
5
6
8
9
xushicheng@ubuntu:~/newfile$ sort -n testsort
2
3
5
6
8
9
10
xushicheng@ubuntu:~/newfile$ comm --nocheck-order testcomm1 testcomm2 #comm命令用于比较两个已排过序的文件。
1
3
6
5
2
4
9
8
3
5
6
2
xushicheng@ubuntu:~/newfile$ diff testdiff1 testdiff2 #diff命令用于比较文件的差异。
1,2c1,2 #表示两个文件的定义
< 123456
< 654321
---
> 789456
> 456789
xushicheng@ubuntu:~/newfile$ cp testcp1 testcp2 #cp命令主要用于复制文件或目录。
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testsort
testcomm1 testcp1 testdiff1 testfind
xushicheng@ubuntu:~/newfile$ cat testcp1
testcp123
xushicheng@ubuntu:~/newfile$ cat testcp2
testcp123
xushicheng@ubuntu:~/newfile$ touch testrm #touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testrm
testcomm1 testcp1 testdiff1 testfind testsort
xushicheng@ubuntu:~/newfile$ rm testrm #rm命令用于删除一个文件或者目录。
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testsort
testcomm1 testcp1 testdiff1 testfind
xushicheng@ubuntu:~/newfile$
xushicheng@ubuntu:~/newfile$ touch testmv1
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testmv1
testcomm1 testcp1 testdiff1 testfind testsort
xushicheng@ubuntu:~/newfile$ mv testmv1 testmv2 # mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testmv2
testcomm1 testcp1 testdiff1 testfind testsort
xushicheng@ubuntu:~/newfile$
xushicheng@ubuntu:~/newfile$ wc testwc #wc命令用于计算字数。
1 1 37 testwc
xushicheng@ubuntu:~/newfile$ ls -l | wc -l
12
xushicheng@ubuntu:~/newfile$
xushicheng@ubuntu:~/newfile$ mkdir testmkdir #mkdir命令用于建立名称为 dirName 之子目录。
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testmkdir testsort
testcomm1 testcp1 testdiff1 testfind testmv2 testwc
xushicheng@ubuntu:~/newfile$ mkdir testrmdir
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testmkdir testrmdir testwc
testcomm1 testcp1 testdiff1 testfind testmv2 testsort
xushicheng@ubuntu:~/newfile$ rmdir testrmdir #rmdir命令删除空的目录。
xushicheng@ubuntu:~/newfile$ ls
hello testcomm2 testcp2 testdiff2 testmkdir testsort
testcomm1 testcp1 testdiff1 testfind testmv2 testwc
xushicheng@ubuntu:~/newfile$
xushicheng@ubuntu:~/newfile$ ln -s testln1 testln2/testln2 #为某一个文件在另外一个位置建立一个同步的链接。-s表示建立软链接
xushicheng@ubuntu:~/newfile$ cd testln2
xushicheng@ubuntu:~/newfile/testln2$ ls
testln2
xushicheng@ubuntu:~/newfile/testln2$ ll #ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。
total 8
drwxr-xr-x 2 xushicheng xushicheng 4096 2019-04-28 06:20 ./
drwxr-xr-x 5 xushicheng xushicheng 4096 2019-04-28 06:17 ../
lrwxrwxrwx 1 xushicheng xushicheng 7 2019-04-28 06:20 testln2 -> testln1
xushicheng@ubuntu:~/newfile/testln2$ pwd #pwd命令用于显示工作目录。
/home/xushicheng/newfile/testln2
xushicheng@ubuntu:~$ cd newfile
xushicheng@ubuntu:~/newfile$ cd ..
xushicheng@ubuntu:~$
(3)重定向和管道命令:
输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。
wc< /etc/passwd
xushicheng@ubuntu:~$ wc < /etc/passwd
34 56 1682
输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。
ls >directory.out
ls >>directory.out
xushicheng@ubuntu:~$ ls >directory.out
xushicheng@ubuntu:~$ ls >>directory.out
利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能.
例:统计/usr/bin目录下的文件个数:
ls /usr/bin>/tmp/dir
wc –w/tmp/dir
xushicheng@ubuntu:/$ wc -w
将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起;另一种是Linux所提供的管道功能。这种方法比前一种方法更好。
ls /usr/bin|wc -w
root@ubuntu:/# ls /usr/bin|wc -w
1397
管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。
cat sample.txt|grep “High”|wc –l
root@ubuntu:/# vi sample.txt
root@ubuntu:/# cat sample.txt
High
A
A
High aaa bbb ccc High
root@ubuntu:/# cat sample.txt | grep "High" | wc -l
2
2.联机帮助命令命令
(1)man
man [选项] 命令名称
(2)whereis
whereis [选项] 命令名
xushicheng@ubuntu:~$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
五、 思考问题
1、硬链接与符号链接有什么区别?
答:1.硬链接 和 源文件 是同一个文件;软链接 和 源文件 是2个不同的文件。
2.大部分系统不能创建 目录 的硬链接,软链接没有这个限制。
3.硬链接不能跨文件系统(分区),软链接没有这个限制。