Linux的指令(三)
1.grep指令
功能:
在文件中搜索字符串,将找到的行打印出来
-i:忽略大小写的不同,所以大小写视为一样
-n:顺便输出行号
-v:反向选择,就是显示出没有你输入要搜索内容的内容
代码示例:
root@iZbp1be068ksa92vuf0kbdZ:~# nano temp.txt
root@iZbp1be068ksa92vuf0kbdZ:~# cat temp.txt
abcd
ABCD
hello
zym
1234
root@iZbp1be068ksa92vuf0kbdZ:~# grep "abcd" temp.txt
abcd
root@iZbp1be068ksa92vuf0kbdZ:~# grep -i "abcd" temp.txt
abcd
ABCD
root@iZbp1be068ksa92vuf0kbdZ:~# grep -ni "abcd" temp.txt
1:abcd
2:ABCD
root@iZbp1be068ksa92vuf0kbdZ:~# grep -v "abcd" temp.txt
ABCD
hello
zym
1234
root@iZbp1be068ksa92vuf0kbdZ:~# grep -nv "abcd" temp.txt
2:ABCD
3:hello
4:zym
5:1234
root@iZbp1be068ksa92vuf0kbdZ:~# grep -nvi "abcd" temp.txt
3:hello
4:zym
5:1234
2.zip/unzip指令
功能:
将目录文件或文件压缩成zip格式
-r:递归处理,将指定目录下的所有文件和子目录一并处理
代码示例:
将path1压缩:zip path1.zip path1
解压到/root:unzip path1.zip -d /root
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# zip -r path1.zip path1 //压缩文件
adding: path1/ (stored 0%)
adding: path1/path2/ (stored 0%)
adding: path1/path2/path/ (stored 0%)
adding: path1/path2/path/3/ (stored 0%)
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# tree ./
./
├── myfile
│ ├── a.txt
│ └── hh
├── myfile.zip
├── path1
│ └── path2
│ └── path
│ └── 3
└── path1.zip
6 directories, 3 files
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# mv path1.zip ..
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# cd ..
root@iZbp1be068ksa92vuf0kbdZ:~/a# ls
b path1.zip
root@iZbp1be068ksa92vuf0kbdZ:~/a# unzip path1.zip ./
Archive: path1.zip
caution: filename not matched: ./
root@iZbp1be068ksa92vuf0kbdZ:~/a# ls
b path1.zip
root@iZbp1be068ksa92vuf0kbdZ:~/a# unzip path1.zip //解压文件
Archive: path1.zip
creating: path1/
creating: path1/path2/
creating: path1/path2/path/
creating: path1/path2/path/3/
root@iZbp1be068ksa92vuf0kbdZ:~/a# ls
b path1 path1.zip
root@iZbp1be068ksa92vuf0kbdZ:~/a# unzip path1.zip -d /root //解压到指定地方
Archive: path1.zip
creating: /root/path1/
creating: /root/path1/path2/
creating: /root/path1/path2/path/
creating: /root/path1/path2/path/3/
root@iZbp1be068ksa92vuf0kbdZ:~/a# cd /rrot
-bash: cd: /rrot: No such file or directory
root@iZbp1be068ksa92vuf0kbdZ:~/a# cd /root
root@iZbp1be068ksa92vuf0kbdZ:~# ls
2 aaa c dir1 file22 path1 temp.txt test.c yy
a b dir file mystudy snap test1.c y zz
root@iZbp1be068ksa92vuf0kbdZ:~#
3.rz和sz
功能:
这个工具用于windows机器和远端的Linux机器通过XShell传输文件,安装完毕后可以通过拖拽的方式将文件上传。
sz可以把压缩的文件送到指定地方
rz可以接受指定的压缩文件
补充:
scp指令可以把压缩包传另一台机器上
示例:
4.tar指令
打包:把多个文件和目录放到一起但不压缩
压缩:把大文件进行压缩减少大小
参数:
-c:建立一个压缩文件的参数指令
-x:解开一个压缩文件的参数指令
-t:查看tarfile里面的文件
-z:是否同时具有gzip属性,或者是否需要用gzip压缩
-v:压缩过程显示文件(常用)
-f:使用档名,f之后要接档名,不要加别的参数
-C:解压到指定目录
代码示例:
//打包(后缀为tar)并压缩文件(后缀为gz)
root@iZbp1be068ksa92vuf0kbdZ:~# tar -cvf temp.txt.tar temp.txt
temp.txt
root@iZbp1be068ksa92vuf0kbdZ:~# ls
2 aaa c dir1 file22 path1 temp.txt test1.c y zz
a b dir file mystudy snap temp.txt.tar test.c yy
root@iZbp1be068ksa92vuf0kbdZ:~# tar -zcvf temp.txt.tar.gz temp.txt
temp.txt
root@iZbp1be068ksa92vuf0kbdZ:~# ls
2 aaa c dir1 file22 path1 temp.txt temp.txt.tar.gz test.c yy
a b dir file mystudy snap temp.txt.tar test1.c y zz
//解压到指定目录
root@iZbp1be068ksa92vuf0kbdZ:~# tar -zxvf temp.txt.tar.gz -C /root/aaa
temp.txt
root@iZbp1be068ksa92vuf0kbdZ:~# cd aaa
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# ls
a b temp.txt
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# tree ./
./
├── a
│ └── b
│ └── c
│ └── d
├── b
│ └── c
│ └── d
└── temp.txt
7 directories, 1 file
5.bc指令
功能:
进行浮点数计算
代码示例:
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
1.1+3
4.1
13/2
6
^C
(interrupt) use quit to exit.
c
0
^C
(interrupt) use quit to exit.
quit
6.uname-r指令
功能:uname用来获取电脑和操作系统的相关信息
-a:详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理类型,硬件平台类型,操作系统名称
代码示例:
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# uname -r
5.15.0-122-generic
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# uname -ra
Linux iZbp1be068ksa92vuf0kbdZ 5.15.0-122-generic #132-Ubuntu SMP Thu Aug 29 13:45:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@iZbp1be068ksa92vuf0kbdZ:~/aaa#
tap键
功能:
输入一部分指令,可以通过快速连按tap键俩次,会显示跟你输入有相同部分的指令,以便找到要输入的指令
代码示例:
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# wh
whatis which while who
whereis which.debianutils whiptail whoami
root@iZbp1be068ksa92vuf0kbdZ:~/aaa# whi
which which.debianutils while whiptail
7.shell命令及运行原理
Linus严格意义上是一个操作系统,称为“核心”(kernel),但一般用户不能直接使用kernel。而是通过kernel的"外壳"程序,也就是shell来与kernel进行沟通。
shell简单定义:命令行解释器(将使用者的命令翻译给核心处理,并把核心处理的结果翻译给使用者)
子进程错误不影响进程
8.Linus权限的概念
Linux下有俩种用户:超级用户(root),普通用户
超级用户:可以在Linux做任何事情
普通用户:做有限事情
超级用户的命令行提示符是#,普通用户是¥
命令:su
功能:切花用户
从root用户到普通用户就可以用su user
从普通用户到超级用户则su root,这时还要输入root用户的口令。
代码示例:
root@iZbp1be068ksa92vuf0kbdZ:~/aaa/a/b/c# adduser zym
Adding user `zym' ...
Adding new group `zym' (1000) ...
Adding new user `zym' (1000) with group `zym' ...
Creating home directory `/home/zym' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for zym
Enter the new value, or press ENTER for the default
Full Name []: zym
Room Number []: z^H111
Work Phone []: 111
Home Phone []: 111
Other []: 111
chfn: room number with non-ASCII characters: '111'
Is the information correct? [Y/n] y
root@iZbp1be068ksa92vuf0kbdZ:~/aaa/a/b/c# su zym
zym@iZbp1be068ksa92vuf0kbdZ:/root/aaa/a/b/c$ su root
Password:
root@iZbp1be068ksa92vuf0kbdZ:~/aaa/a/b/c#