Linux下的常用基础指令
文章目录
一、目录相关指令
1 ls
作用:浏览查看指定目录下的文件信息,默认查看当前目录。
选项 | 含义 |
---|---|
-a | 查看该目录下隐藏文件 |
-l | 查看文件的详细信息 |
- 命名以
. 开头的文件
为隐藏文件。.
表示当前目录..
表示当前目录的上一层目录
(1)
[dev@localhost ~]$ ls
code_-connection_point install.sh project 公共 图片 音乐
gobang linux third_part 模板 文档 桌面
install mysql80-community-release-el7-3.noarch.rpm websocketpp 视频 下载
(2)查看当前目录下和当前上一层目录的文件信息。ls和ls . 查询结果一样:
[dev@localhost ~]$ ls .
code_-connection_point install.sh project 公共 图片 音乐
gobang linux third_part 模板 文档 桌面
install mysql80-community-release-el7-3.noarch.rpm websocketpp 视频 下载
[dev@localhost ~]$ ls ..
dev test
[dev@localhost ~]$
(3)查看上层目录的隐藏文件及其详细信息:
[dev@localhost ~]$ ls -al ..
总用量 8
drwxr-xr-x. 4 root root 29 6月 28 18:15 .
dr-xr-xr-x. 17 root root 4096 5月 29 18:05 ..
drwx------. 30 dev dev 4096 6月 23 18:29 dev
drwx------. 3 test test 78 2月 12 2019 test
2 pwd
作用:查看当前目录所在的路径。
Linux的目录结构:不管磁盘分区为多少,目录结构只有一个,为一个树形结构的目录,最底层就是/
根目录。
绝对路径:以 / 根目录作为起始的路径表示
相对路径:以 ./ 作为起始的路径表示
路径的表示方式:Linux下目录可能会有深度的嵌套,在表示路径的时候用/
作为目录间的间隔,且/
表示根目录。
[dev@localhost ~]$ pwd
/home/dev
(1)进入家目录的Linux目录下的ipc目录,ipc的相对路径为/home/dev/linux/ipc
,相对家目录来说,其路径为./linux/ipc/
,两者只是表示方式的不同,实际上都表示ipc目录路径,都表示ipc的层级所在。
[dev@localhost ~]$ ls
code_-connection_point install.sh project 公共 图片 音乐
gobang linux third_part 模板 文档 桌面
install mysql80-community-release-el7-3.noarch.rpm websocketpp 视频 下载
[dev@localhost ~]$ cd linux
[dev@localhost linux]$ ls
ipc makefile multi process pthread sig
[dev@localhost linux]$ cd ipc
[dev@localhost ipc]$ ls
makefile pipe1.c pipe2.c pipe3.c shmid_ds
[dev@localhost ipc]$ pwd
/home/dev/linux/ipc
[dev@localhost ipc]$ cd
[dev@localhost ~]$ ls ./linux/ipc/
makefile pipe1.c pipe2.c pipe3.c shmid_ds
[dev@localhost ~]$ ls /home/dev/linux/ipc
makefile pipe1.c pipe2.c pipe3.c shmid_ds
3 mkdir
作用:创建目录。
选项 | 含义 |
---|---|
-p | 多层级的创建目录,哪一层次不存在也会进行创建 |
(1)创建目录afile。
[dev@localhost ~]$ mkdir afile
[dev@localhost ~]$ ls
afile install mysql80-community-release-el7-3.noarch.rpm websocketpp 视频 下载
code_-connection_point install.sh project 公共 图片 音乐
gobang linux third_part 模板 文档 桌面
(2)递归创建,创建目录a,在目录a下创建目录b,目录b下创建目录c。
[dev@localhost ~]$ mkdir -p a/b/c
[dev@localhost ~]$ ls
a install project 模板 下载
afile install.sh third_part 视频 音乐
code_-connection_point linux websocketpp 图片 桌面
gobang mysql80-community-release-el7-3.noarch.rpm 公共 文档
[dev@localhost ~]$ ls a/
b
[dev@localhost ~]$ ls a/b/
c
4 rmdir
作用:删除空目录。
(1)递归创建testdir/newdir,删除testdir,提示删除错误。
[dev@localhost ~]$ mkdir -p testdir/newdir
[dev@localhost ~]$ ls
a install project 公共 文档
afile install.sh testdir 模板 下载
code_-connection_point linux third_part 视频 音乐
gobang mysql80-community-release-el7-3.noarch.rpm websocketpp 图片 桌面
[dev@localhost ~]$ ls testdir/
newdir
[dev@localhost ~]$ rmdir testdir
rmdir: 删除 "testdir" 失败: 目录非空
现将testdir下的newdir进行删除,testdir变为一个空目录时才可以删除:
[dev@localhost ~]$ rmdir testdir/newdir
[dev@localhost ~]$ ls testdir/
[dev@localhost ~]$ rmdir testdir
[dev@localhost ~]$ ls
a install project 模板 下载
afile install.sh third_part 视频 音乐
code_-connection_point linux websocketpp 图片 桌面
gobang mysql80-community-release-el7-3.noarch.rpm 公共 文档
5 rm
作用:删除文件,默认只能删除普通文件。
选项 | 含义 |
---|---|
-r | 递归删除指定目录下的所有文件,再删除该目录 |
-f | 忽略所有提示信息,直接进行删除操作 |
-i | 添加操作提示信息 |
(1)递归创建目录a,b,c,当直接删除目录a,删除操作出错。
[dev@localhost ~]$ mkdir -p a/b/c
[dev@localhost ~]$ rm a
rm: 无法删除"a": 是一个目录
(2)在递归删除a,b,c的过程中添加操作提示信息。
[dev@localhost ~]$ rm -ri a/b/c
rm:是否删除目录 "a/b/c"?y
[dev@localhost ~]$
不加-i选项就不会出现提示信息。
[dev@localhost ~]$ rm -r a/
6 cp
作用:拷贝一个文件到指定的位置,默认针对普通文件。
作用对象,一是待拷贝的文件,二是目标位置的路径。
选项 | 含义 |
---|---|
-r | 递归拷贝一个目录及目录中的所有文件到指定的路径下 |
(1)将根目录下路径为 /etc/passwd 的passwd文件拷贝一份到当前目录,即家目录。
[dev@localhost ~]$ cp /etc/passwd ./
[dev@localhost ~]$ ls
afile install.sh project 模板 下载
code_-connection_point linux third_part 视频 音乐
gobang mysql80-community-release-el7-3.noarch.rpm websocketpp 图片 桌面
install passwd 公共 文档
(2)cp指令只针对于普通文件说明。
拷贝一个目录到一个目录下:递归创建a,b,c目录,创建testdir目录,将a目录拷贝一份到testdir目录下,命令执行出错。
[dev@localhost ~]$ mkdir -p a/b/c
[dev@localhost ~]$ ls
a install passwd 公共 文档
afile install.sh project 模板 下载
code_-connection_point linux third_part 视频 音乐
gobang mysql80-community-release-el7-3.noarch.rpm websocketpp 图片 桌面
[dev@localhost ~]$ mkdir testdir
[dev@localhost ~]$ ls
a install passwd websocketpp 图片 桌面
afile install.sh project 公共 文档
code_-connection_point linux testdir 模板 下载
gobang mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
[dev@localhost ~]$ cp a testdir/
cp: 略过目录"a"
[dev@localhost ~]
(3)递归拷贝,将a目录即目录下的所有文件全部拷贝到testdir目录下。
[dev@localhost ~]$ mkdir -p a/b/c
[dev@localhost ~]$ mkdir testdir
[dev@localhost ~]$ cp -r a/ testdir/
[dev@localhost ~]$ ls testdir/
a
[dev@localhost ~]$ ls testdir/a/
b
[dev@localhost ~]$ ls testdir/a/b/
c
7 mv
作用:剪切,将一个文件移动到一个新的位置,原位置文件就不存在了。
将家目录下的passwd文件移动到目录c下去,即路径 testdir/a/b/c/
中去。
[dev@localhost ~]$ ls
afile install.sh project 公共 文档
code_-connection_point linux testdir 模板 下载
gobang mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install passwd websocketpp 图片 桌面
[dev@localhost ~]$ ls testdir/
a
[dev@localhost ~]$ ls testdir/a/
b
[dev@localhost ~]$ ls testdir/a/b/
c
[dev@localhost ~]$ mv passwd testdir/a/b/c/
[dev@localhost ~]$ ls testdir/a/b/c/
passwd
[dev@localhost ~]$
8 cd
作用:进入指定的目录,改变当前的工作目录。
(1)从家目录进入到目录c,c的路径为 ./testdir/a/b/c/
。
cd ~,从c目录回到当前用户的家目录,直接cd也可以直接回到家目录。
[dev@localhost ~]$ ls
afile install.sh testdir 模板 下载
code_-connection_point linux third_part 视频 音乐
gobang mysql80-community-release-el7-3.noarch.rpm websocketpp 图片 桌面
install project
[dev@localhost ~]$ ls testdir/
a
[dev@localhost ~]$ ls testdir/a/
b
[dev@localhost ~]$ ls testdir/a/b/
c
[dev@localhost ~]$ cd testdir/a/b/c/
[dev@localhost c]$ cd ~
[dev@localhost ~]$
(2)以回到上一层目录的方式回到家目录。
[dev@localhost ~]$ cd testdir/a/b/c/
[dev@localhost c]$ cd ..
[dev@localhost b]$ cd ..
[dev@localhost a]$ cd ..
[dev@localhost testdir]$ cd ..
[dev@localhost ~]$ cd testdir/a/b/c/
[dev@localhost c]$ cd ../../../..
[dev@localhost ~]$
二、文件操作相关指令
1 cat
作用:打印内容到终端进行显示。
选项 | 含义 |
---|---|
-n | 文件打印出来内容加上行号 |
适合打印短小的文件内容。
[dev@localhost ~]$ cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[dev@localhost ~]$ cat -n passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
2 touch
作用:刷新文件的时间属性,若文件不存在则会创建一个新文件。
(1)刷新passwd文件的时间属性。
[dev@localhost ~]$ ls -l
总用量 40
drwxrwxr-x. 4 dev dev 73 4月 21 17:59 code_-connection_point
drwxrwxr-x. 5 dev dev 50 6月 24 14:59 gobang
drwxrwxr-x. 4 dev dev 52 2月 12 2019 install
-rw-rw-r--. 1 dev dev 827 5月 30 15:49 install.sh
drwxrwxr-x. 8 dev dev 102 6月 26 15:36 linux
-rw-rw-r--. 1 dev dev 26024 4月 25 2019 mysql80-community-release-el7-3.noarch.rpm
-rw-r--r--. 1 dev dev 2497 6月 28 21:17 passwd
[dev@localhost ~]$ touch passwd
[dev@localhost ~]$ ls -l
总用量 40
drwxrwxr-x. 4 dev dev 73 4月 21 17:59 code_-connection_point
drwxrwxr-x. 5 dev dev 50 6月 24 14:59 gobang
drwxrwxr-x. 4 dev dev 52 2月 12 2019 install
-rw-rw-r--. 1 dev dev 827 5月 30 15:49 install.sh
drwxrwxr-x. 8 dev dev 102 6月 26 15:36 linux
-rw-rw-r--. 1 dev dev 26024 4月 25 2019 mysql80-community-release-el7-3.noarch.rpm
-rw-r--r--. 1 dev dev 2497 6月 28 21:22 passwd
(2)stat filename:查看文件的相关属性。
如:查看文件passwd的相关属性。
[dev@localhost ~]$ stat passwd
文件:"passwd"
大小:2497 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:35717273 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 1000/ dev) Gid:( 1000/ dev)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2023-06-28 21:22:52.345793894 +0800
最近更改:2023-06-28 21:22:52.345793894 +0800
最近改动:2023-06-28 21:22:52.345793894 +0800
创建时间:-
(3)刷新不存在文件afile的时间属性,不存在则创建。
[dev@localhost ~]$ touch afile
[dev@localhost ~]$ ls -l
总用量 40
-rw-rw-r--. 1 dev dev 0 6月 28 21:27 afile
[dev@localhost ~]$ stat afile
文件:"afile"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:35717304 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ dev) Gid:( 1000/ dev)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2023-06-28 21:27:26.986785164 +0800
最近更改:2023-06-28 21:27:26.986785164 +0800
最近改动:2023-06-28 21:27:26.986785164 +0800
创建时间:-
为啥有需要这些各种属性呢?
这是为了云备份项目,即把电脑上需要备份的文件(新文件,被修改过的文件)上传给服务器备份起来,文件在服务器上占据磁盘空间,而磁盘空间有限且需金钱成本,所以服务器会将不常访问的文件给压缩储存。而压缩哪些文件,哪个标准来说明文件不经常使用,这就得通过文件的时间属性来看。
3 more
作用:对文件内容进行分页显示。
对于那些冗长的文件,在一页中并不能全部显示完,这就得对文件进行分页显示。
使用 | 含义 |
---|---|
空格 | 对文件进行向下翻页 |
回车 | 向下按行滑动显示,显示到文件末尾自动退出 |
q | 文件退出 |
//对文件进行分页显示,选项键对文件进行浏览操作
more filename
4 less
作用:对文件内容进行分页显示。
使用 | 含义 |
---|---|
f | 向下翻页 |
b | 向上翻页 |
jk | 上下按行滚动 |
q | 退出 |
/ string | 向下查找string字符串 |
?string | 向上查找string字符串 |
//对文件进行分页显示,选项键对文件进行浏览操作
more filename
5 head
作用:显示文件的前n行内容(默认前10行)。
选项 | 表示 |
---|---|
-n | 后加数字,表示指定显示多少行 |
(1)默认显示passwd文件内容的前10行。
[dev@localhost ~]$ head passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
(2)显示passwd文件的前三行内容。
[dev@localhost ~]$ head -n 3 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
6 tail
作用:显示文件的末尾n行内容(默认末尾10行)。
选项 | 说明 |
---|---|
-f | 动态一直等待文件末尾新内容进行打印,一直打印到文件末尾 |
(1)默认显示passwd文件内容的末尾10行。
[dev@localhost ~]$ tail passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
dev:x:1000:1000:dev:/home/dev:/bin/bash
test:x:1001:1001::/home/test:/bin/bash
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
saned:x:988:982:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster:x:987:981:GlusterFS daemons:/run/gluster:/sbin/nologin
wen:x:1002:1002::/home/wen:/bin/bash
(2)显示passwd文件的最后三行内容。
[dev@localhost ~]$ tail -n 3 passwd
saned:x:988:982:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster:x:987:981:GlusterFS daemons:/run/gluster:/sbin/nologin
wen:x:1002:1002::/home/wen:/bin/bash
那如果我们想将获取passwd文件的第三行数据,即打印文件passwd的第三行内容。
这就需要管道符来进行命令的连接。
管道符
|
:
用于连接两个命令,将前面命令的输出结果作为后边命令的输入,让后面命令来进行处理。
实现需求:打印passwd文件的第三行内容。就可以将打印文件的前三行内容作为打印最后一行的输入来打印文件第三行内容。
[dev@localhost ~]$ head -n 3 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[dev@localhost ~]$ head -n 3 passwd | tail -n 1
daemon:x:2:2:daemon:/sbin:/sbin/nologin
当tail -n 1命令执行时,若未给出要操作的文件,默认从键盘输入来获取。
7 重定向符号
大多数命令的执行结果都是在终端进行显示出来,重定向就是告诉命令,不将结果打印到终端,而是将其写入到指定的文件。
> filename:将要打印的内容写入到指定文件中,写入前会将文件原内容清空后再写入。
>> filename :将要打印的内容写入到指定文件中,将写入内容追加在文件原内容之后。
(1)将家目录下所有文件的详细信息不在终端进行打印,而是写入到文件text.txt中。
[dev@localhost ~]$ ls -l > text.txt
[dev@localhost ~]$ ls
afile install.sh project 公共 文档
code_-connection_point linux text.txt 模板 下载
gobang mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install passwd websocketpp 图片 桌面
[dev@localhost ~]$ cat text.txt
总用量 40
-rw-rw-r--. 1 dev dev 0 6月 28 21:27 afile
drwxrwxr-x. 4 dev dev 73 4月 21 17:59 code_-connection_point
drwxrwxr-x. 5 dev dev 50 6月 24 14:59 gobang
drwxrwxr-x. 4 dev dev 52 2月 12 2019 install
-rw-rw-r--. 1 dev dev 827 5月 30 15:49 install.sh
drwxrwxr-x. 8 dev dev 102 6月 26 15:36 linux
-rw-rw-r--. 1 dev dev 26024 4月 25 2019 mysql80-community-release-el7-3.noarch.rpm
-rw-r--r--. 1 dev dev 2497 6月 28 21:22 passwd
drwxrwxr-x. 6 dev dev 83 3月 28 14:30 project
-rw-rw-r--. 1 dev dev 0 6月 28 23:22 text.txt
lrwxrwxrwx. 1 dev dev 58 2月 12 2019 third_part -> /home/dev/install/ThirdPartLibForCpp/el7.x86_64/third_part
drwxrwxr-x. 11 dev dev 4096 5月 30 15:30 websocketpp
drwxr-xr-x. 2 dev dev 6 2月 12 2019 公共
drwxr-xr-x. 2 dev dev 6 2月 12 2019 模板
drwxr-xr-x. 2 dev dev 6 2月 12 2019 视频
drwxr-xr-x. 2 dev dev 6 2月 12 2019 图片
drwxr-xr-x. 2 dev dev 6 2月 12 2019 文档
drwxr-xr-x. 2 dev dev 6 2月 12 2019 下载
drwxr-xr-x. 2 dev dev 6 2月 12 2019 音乐
drwxr-xr-x. 2 dev dev 6 5月 31 14:33 桌面
[dev@localhost ~]$ ls > text.txt
[dev@localhost ~]$ cat text.txt
afile
code_-connection_point
gobang
install
install.sh
linux
mysql80-community-release-el7-3.noarch.rpm
passwd
project
text.txt
third_part
websocketpp
公共
模板
视频
图片
文档
下载
音乐
桌面
可以看到,在再次写入内容之前,原文件内容并不存在被清空了。
(2)在(1)中的text.txt文件中追加passwd文件的前5行,再查看文件最后7行的内容。
[dev@localhost ~]$ head -n 5 passwd >> text.txt
[dev@localhost ~]$ tail -n 7 text.txt
音乐
桌面
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
三、文件解压缩指令
文件进行压缩存储,可节省磁盘空间,有多种算法将文件进行压缩,故而有了不同的压缩格式和其对应的压缩算法。
1 压缩与解压缩(zip/unzip、gzip/gunzip、bzip2/bunzip)
作用:对文件进行压缩和解压缩。
Windows下可将多种算法集合到某一个压缩工具中;Linux下,一个压缩算法对应了一个压缩指令,一个解压缩算法对应了一个解压缩指令。
windows下和Linux下文件的不同压缩格式:
windows | Linux |
---|---|
.zip 、 .rar 、.7z | gzip 、 bzip2 、 tar |
Linux下对应解压缩算法对应的解压缩指令:
指令 | 含义 |
---|---|
zip / unzip | zip格式的压缩与解压缩 |
gzip / gunzip | gzip格式的压缩与解压缩 |
bzip2 / bunzip2 | bzip2格式的压缩与解压缩 |
(1)将家目录下的图片文件 logo.png 用zip格式进行文件压缩。
压缩格式:
zip logo.png.zip logo.png
[dev@localhost ~]$ zip logo.png.zip logo.png
adding: logo.png (deflated 0%)
[dev@localhost ~]$ ls
install.sh mysql80-community-release-el7-3.noarch.rpm third_part 模板 下载
code_-connection_point linux passwd tmp.tar.gz 视频 音乐
gobang logo.png project websocketpp 图片 桌面
install logo.png.zip 公共 文档
当把文件进行压缩之后源文件还在。
(2)将家目录下的图片文件 logo.png 用gzip格式进行文件压缩或解压缩。
压缩格式:
gzip logo.png
[dev@localhost ~]$ ls
code_-connection_point linux project 公共 文档
gobang logo.png text.txt 模板 下载
install mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install.sh passwd websocketpp 图片 桌面
[dev@localhost ~]$ gzip logo.png
[dev@localhost ~]$ ls
code_-connection_point linux project 公共 文档
gobang logo.png.gz text.txt 模板 下载
install mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install.sh passwd websocketpp 图片 桌面
[dev@localhost ~]$
文件压缩完后源文件不存在,压缩包解压后原压缩包也不存在。
(3)将家目录下的图片文件 logo.png 用bzip2格式进行文件压缩或解压缩。
压缩格式:
bzip2 logo.png
[dev@localhost ~]$ ls
code_-connection_point linux project 公共 文档
gobang logo.png text.txt 模板 下载
install mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install.sh passwd websocketpp 图片 桌面
[dev@localhost ~]$ bzip2 logo.png
[dev@localhost ~]$ ls
code_-connection_point linux project 公共 文档
gobang logo.png.bz2 text.txt 模板 下载
install mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install.sh passwd websocketpp 图片 桌面
[dev@localhost ~]$ bunzip2 logo.png.bz2
[dev@localhost ~]$ ls
code_-connection_point linux project 公共 文档
gobang logo.png text.txt 模板 下载
install mysql80-community-release-el7-3.noarch.rpm third_part 视频 音乐
install.sh passwd websocketpp 图片 桌面
[dev@localhost ~]$
文件压缩完后源文件不存在,压缩包解压后原压缩包也不存在。
2 tar
作用:打包指令,在对文件进行打包的同时指定某种压缩算法进行压缩,也可指定某种解压缩算法进行解压。
选项 | 含义 |
---|---|
-c | 打包 |
-x | 解包 |
-v | 显示详细的打包解包过程 |
-z | 打包或解包的同时使用gzip格式进行压缩或解压缩 |
-j | 打包或解包的同时使用bzip2格式进行压缩或解压缩 |
-f | 放于指令之后,此选项后跟上压缩包的名称 |
//将a目录下的文件和testdir目录下的文件text.txt文件进行打包
//打包使用gzip格式进行压缩,且显示打包的过程,最后压缩包命名为tmp.tar.gz
tar -cvzf tmp.tar.gz a/passwd testdir/text.txt
添加-v选项,回车会显示打包的过程中都打包了哪些文件。
进行打包过程:
[dev@localhost ~]$ tar -cvzf tmp.tar.gz a/passwd testdir/text.txt
a/passwd
testdir/text.txt
[dev@localhost ~]$ ls
a install.sh project websocketpp 图片 桌面
code_-connection_point linux testdir 公共 文档
gobang logo.png third_part 模板 下载
install mysql80-community-release-el7-3.noarch.rpm tmp.tar.gz 视频 音乐
[dev@localhost ~]$
进行解包过程:
[dev@localhost ~]$ tar -xvzf tmp.tar.gz
a/passwd
testdir/text.txt
[dev@localhost ~]$
四、用户操作指令
1 su指令-切换用户
//从当前用户切换到root用户
su root;
在进行用户的切换时,切换用户成功后得回到该用户的家目录才可进行相关的指令操作。
2 用户的创建删除及设置密码
//添加用户,-m选项表示默认创建家目录
useradd -m username
//删除用户,-r选项表示将创建的家目录这些文件给删除掉
userdel -r username
//给用户设置密码
passwd username
五、匹配与查找指令
1 grep
作用:字符串匹配功能,在指定的文件中匹配包含有指定字符串的行。
选项 | 含义 |
---|---|
-i | 忽略大小写查找相应的字符或字符串 |
-R | 针对指定目录下的所有文件进行内容的匹配,操作对象为目录并非一个文件 |
//在文件名为filename的文件中找包含字符串abcd的所在所有行
grep 'abcd' filename
//在当前目录下忽略大小写查找tcp所在的段行
grep -i -R 'tcp'
2 find
作用:在指定目录下,查找符合指定规则的文件。
选项 | 含义 |
---|---|
-name | 通过文件名来进行查找 |
-size | 通过文件大小来进行查找 |
-mtime n | 查找文件数据最后一次修改时间在n*24h前的文件 |
-atime n | 查找最后一次访问在n*24h前的文件,文件至少在两天前被访问过 |
-ctime | 通过文件创建时间来进行查找 |
-type | 通过文件类型来进行查找 |
//在当前目录下查找名为passwd的文件
find ./ -name "passwd"
有两个路径有文件passwd。
[dev@localhost ~]$ find ./ -name "passwd"
./a/passwd
./passwd
[dev@localhost ~]$
当我们通过文件名去查找文件的时候并不知道文件名的全部时,可以通过以下操作来完成查找。
//*表示任意字符串
//查找以wd为结尾字符的文件名
find ./ -name "*wd"
//查找以pass为初始字符的文件名
find ./ -name "pass*"
//查找文件名中含有ass字符串的文件名
find ./ -name "*ass*"
六、shell命令及其运行原理
Linux严格意义上说的是一个操作系统,称之为“ 内核(kernel)“ ,但一般用户不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
shell被称为命令行解释器,其是用户与系统内核间的沟通桥梁。
shell被称为命令行解释器,主要包含:
- 将用户的命令翻译给内核进行处理。
- 之后又将核心的处理结果翻译反馈给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作,比如进入D盘的操作,我们通常是双击D盘盘符,或者运行起来一个应用程序。
shell 对于Linux,有相同的作用,主要是对用户指令进行解析,解析指令给Linux内核反馈结果再通过内核运行出结果,通过shell解析给用户。
本节完!!!