【Linux】1.0常见指令以及权限理解(上)

1.Linux简介

1.1 Linux内核介绍

Linux 是一款开源的操作系统,它刚刚发行出来时仅仅由一万行代码编写,相比闭源的Windows和Macos操作系统来说他非常单薄。但是正是因为开源这一特性,使得全世界的程序员看到了改变世界的希望,大量高端工程师无偿加入Linux的编写。使得Linux操作系统高速完善,成为当今世界最为稳定高效的一款操作系统

查看内核版本
指令: uname -a/r
指令:cat /proc/version

1.2Centos操作系统介绍

Centos 7.6操作系统是我们接下来代码运行的操作系统,它是一款搞“管理”的软件,主要管理,软件加硬件。它是Linux操作系统的一种发行版本,Linux也有很多其他的发行版本,这里就不一一细说了。同时Linux也有自己的版本,我们称之为Linux内核。发行版本是基于Linux内核上开发的操作系统,以承担现实生活中不同的工作环境。

2.Linux 常见指令

1. ls 指令

语法: ls 【选项】【目录或文件】
功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,
常用选项
1 - l 显示更多属性信息
2.- a 显示隐藏文件(在Linux中以.开头的文件是隐藏文件)
3.- d 显示当前目录信息
4.-R 递归显示目录下的全部内容

-l 和 -a
drwxrwxr-x 3 clx clx 4096 Jul  8 23:18 Lesson_Linux
[clx@VM-20-6-centos ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .cquery  Lesson_Linux  .LfCache  .local  .pki  .vim  .VimForCpp  .vimrc  .ycm_extra_conf.py
[clx@VM-20-6-centos ~]$ ls -l
total 4
drwxrwxr-x 3 clx clx 4096 Jul  8 23:18 Lesson_Linux
[clx@VM-20-6-centos ~]$ ls -al
total 60
drwx------  9 clx  clx   4096 Jul  8 23:17 .
drwxr-xr-x. 4 root root  4096 Jun 14 22:49 ..
-rw-------  1 clx  clx  11805 Jul  9 17:35 .bash_history
-rw-r--r--  1 clx  clx     18 Apr  1  2020 .bash_logout
-rw-r--r--  1 clx  clx    193 Apr  1  2020 .bash_profile
-rw-r--r--  1 clx  clx    389 Jun 15 13:01 .bashrc
drwxrwxr-x  3 clx  clx   4096 Jun 14 22:50 .cache
drwxrwxr-x  3 clx  clx   4096 Jun 15 13:02 .config
lrwxrwxrwx  1 clx  clx     48 Jun 15 13:02 .cquery -> /home/clx/.VimForCpp/cquery/config/cquery.config
drwxrwxr-x  3 clx  clx   4096 Jul  8 23:18 Lesson_Linux
drwxrwxr-x  3 clx  clx   4096 Jun 15 12:29 .LfCache
drwx------  3 clx  clx   4096 Jun 15 12:29 .local
drwxrw----  3 clx  clx   4096 Jun 14 23:06 .pki
lrwxrwxrwx  1 clx  clx     24 Jun 15 13:02 .vim -> /home/clx/.VimForCpp/vim
drwxrwxr-x  8 clx  clx   4096 Jun 15 13:01 .VimForCpp
lrwxrwxrwx  1 clx  clx     33 Jun 15 13:02 .vimrc -> /home/clx/.VimForCpp/vim/init.vim
lrwxrwxrwx  1 clx  clx     38 Jun 15 13:02 .ycm_extra_conf.py -> /home/clx/.VimForCpp/ycm_extra_conf.py

```c
-d
[clx@VM-20-6-centos ~]$ ls -d
.
[clx@VM-20-6-centos ~]$ ls -ald
drwx------ 9 clx clx 4096 Jul  8 23:17 .
[clx@VM-20-6-centos ~]$ ls -ald Lesson_Linux
drwxrwxr-x 3 clx clx 4096 Jul  8 23:18 Lesson_Linux

-R
[clx@VM-20-6-centos ~]$ ls -R Lesson_Linux
Lesson_Linux:
dir  lesson1_7_08

Lesson_Linux/dir:
a.cpp  a.txt

Lesson_Linux/lesson1_7_08:

2.pwd 指令

//对普通用户
[clx@VM-20-6-centos ~]$ pwd -- 显示当前我所处的目录对应的路径
/home/clx                   -- /home/XXX 就叫做XXX用户的主工作目录,一般在登录后是默认的
//对于root用户
[root@VM-20-6-centos ~]# pwd
/root

在Linux中路径分割符是 /(斜杠)
在Windows中路径分割符是 \(反斜杠)

3.cd 指令

[clx@VM-20-6-centos ~]$ ll --显示当前目录下的文件
total 4
drwxrwxr-x 3 clx clx 4096 Jul  8 23:18 Lesson_Linux
[clx@VM-20-6-centos ~]$ cd Lesson_Linux --进入Lesson_Linux目录
[clx@VM-20-6-centos Lesson_Linux]$ pwd --显示当前路径
/home/clx/Lesson_Linux --说明我们确实进入了Lesson_Linux目录

隐藏文件:Linux配置文件,可以隐藏起来,保护文件防止用户误操作

[clx@VM-20-6-centos Lesson_Linux]$ ls -al
total 12
drwxrwxr-x 3 clx clx 4096 Jul  8 23:18 .  -- 当前目录
drwx------ 9 clx clx 4096 Jul  8 23:17 .. -- 上级目录
drwxrwxr-x 2 clx clx 4096 Jul  8 23:18 lesson1_7_08

在Linux中任何目录下,都默认存在两个目录: . (当前目录) 和 … (上级目录)

[clx@VM-20-6-centos Lesson_Linux]$ pwd
/home/clx/Lesson_Linux
[clx@VM-20-6-centos Lesson_Linux]$ cd ..
[clx@VM-20-6-centos ~]$ pwd
/home/clx
我们可以通过cd .. 操作来返回上级目录,实现回退功能

/ :根目录

当我们不断进行回退,我们发现到了/目录下就没有效果了
/是根目录是Linux的起始目录处
[clx@VM-20-6-centos ~]$ pwd
/home/clx
[clx@VM-20-6-centos ~]$ cd ..
[clx@VM-20-6-centos home]$ pwd
/home
[clx@VM-20-6-centos home]$ cd ..
[clx@VM-20-6-centos /]$ pwd
/
[clx@VM-20-6-centos /]$ cd ..
[clx@VM-20-6-centos /]$ pwd
/

Linux的目录结构和文件组织形式是以多叉树的形式组织的! 树形结构便于查找,因为所有的文件,都必须要有唯一的标识方式
在树形结构中,根节点到某一个叶子结点的路径一定是唯一的,便于文件定位
Linux 当中,可能要进行一些路径配置:优先使用绝对路径

此外我们还有两个cd指令的用法

  1. cd -(返回上一次跳转的目录)
[clx@VM-20-6-centos ~]$ cd /      --首先跳转至根目录
[clx@VM-20-6-centos /]$ pwd 
/
[clx@VM-20-6-centos /]$ cd -      --返回上一次所在的目录
/home/clx
[clx@VM-20-6-centos ~]$ pwd
/home/clx

2.cd ~(直接跳转到当前用户的主工作目录当中)

[clx@VM-20-6-centos Lesson_Linux]$ pwd
/home/clx/Lesson_Linux
[clx@VM-20-6-centos Lesson_Linux]$ cd ~
[clx@VM-20-6-centos ~]$ pwd
/home/clx

4.touch指令

功能:创建文件

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ touch a.txt
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
-rw-rw-r-- 1 clx clx 0 Jul  9 18:56 a.txt

5.mkdir指令

功能:创建目录

在当前目录下创建一个dir目录
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
-rw-rw-r-- 1 clx clx 0 Jul  9 18:56 a.txt
[clx@VM-20-6-centos lesson1_7_08]$ mkdir dir
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 4
-rw-rw-r-- 1 clx clx    0 Jul  9 18:56 a.txt
drwxrwxr-x 2 clx clx 4096 Jul  9 18:58 dir
在上级目录下创建一个dir目录
[clx@VM-20-6-centos lesson1_7_08]$ mkdir ../dir
[clx@VM-20-6-centos lesson1_7_08]$ ll ..
total 8
drwxrwxr-x 2 clx clx 4096 Jul  9 19:00 dir
drwxrwxr-x 3 clx clx 4096 Jul  9 18:58 lesson1_7_08

创建多层级目录 mkdir -p

mkdir -p 创建一个dir1/dir2/dir3的目录
[clx@VM-20-6-centos lesson1_7_08]$ mkdir -p dir1/dir2/dir3
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 4
-rw-rw-r-- 1 clx clx    0 Jul  9 18:56 a.txt
drwxrwxr-x 3 clx clx 4096 Jul  9 19:14 dir1
[clx@VM-20-6-centos lesson1_7_08]$ ls -R dir1
dir1:
dir2

dir1/dir2:
dir3

dir1/dir2/dir3:

6.rmdir指令

功能:用来删除空目录

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 8
drwxrwxr-x 2 clx clx 4096 Jul  9 19:19 dir    --空目录
drwxrwxr-x 3 clx clx 4096 Jul  9 19:14 dir1   --dir1/dir2/dir3
[clx@VM-20-6-centos lesson1_7_08]$ rmdir dir
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 4
drwxrwxr-x 3 clx clx 4096 Jul  9 19:14 dir1 --发现可以直接删除空目录
[clx@VM-20-6-centos lesson1_7_08]$ rmdir dir1
rmdir: failed to remove ‘dir1’: Directory not empty --删除非空目录出错
[clx@VM-20-6-centos lesson1_7_08]$ rm -r dir1   --rm -r可删除非空目录
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ mkdir -p dir1/dir2/dir3
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 4
drwxrwxr-x 3 clx clx 4096 Jul  9 19:21 dir1
[clx@VM-20-6-centos lesson1_7_08]$ rmdir -r dir1 --rmdir-r删除非空目录
rmdir: invalid option -- 'r'
Try 'rmdir --help' for more information.  --出错

经过上述实验我们发现
rmdir 可以删除空目录 但不能删除有内容的目录
rm -r 可以删除多重目录 (-r 表示递归)(rm -r 表示递归删除)

7. rm指令

功能:删除文件
常用选项
1.rm -r 进行递归删除,删除目录以及子目录下的所有内容

[clx@VM-20-6-centos lesson1_7_08]$ mkdir -p dir1/dir2/dir3
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 4
drwxrwxr-x 3 clx clx 4096 Jul  9 19:21 dir1
[clx@VM-20-6-centos lesson1_7_08]$ rm -r dir1   --rm -r可删除非空目录
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0

2.rm -f 强制指令,当发生权限冲突时,编译器可能会发出询问。-f表示强制,阻止其询问

到这里想必大家都可以理解所谓rm -rf/的意义了,从根目录开始强制执行递归删除,虽然有些文件可能正在运行无法删除,但是大部分文件都会被删。使用rm -rf/之后这台机器大概率是报废了。而且在Linux系统下删除是不可逆的。所以要慎重使用rm -rf指令

  1. rm * 删除当前目录下所有文件
rm 是不会删除目录的 *代表的是当前目录下
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ touch a b
[clx@VM-20-6-centos lesson1_7_08]$ mkdir c d 
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 8
-rw-rw-r-- 1 clx clx    0 Jul  9 19:39 a --文件 
-rw-rw-r-- 1 clx clx    0 Jul  9 19:39 b --文件
drwxrwxr-x 2 clx clx 4096 Jul  9 19:40 c --目录
drwxrwxr-x 2 clx clx 4096 Jul  9 19:40 d --目录 
[clx@VM-20-6-centos lesson1_7_08]$ rm *
rm: cannot remove ‘c’: Is a directory
rm: cannot remove ‘d’: Is a directory
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 8
drwxrwxr-x 2 clx clx 4096 Jul  9 19:40 c
drwxrwxr-x 2 clx clx 4096 Jul  9 19:40 d --文件都被删掉了,但是目录并没有

若我们想要将目录也都删除 ,需要带上-r选项
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 8
drwxrwxr-x 2 clx clx 4096 Jul  9 19:40 c
drwxrwxr-x 2 clx clx 4096 Jul  9 19:40 d
[clx@VM-20-6-centos lesson1_7_08]$ rm -r *
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0


8.man指令

功能:Linux自带的参考手册

[clx@VM-20-6-centos lesson1_7_08]$man man
[clx@VM-20-6-centos lesson1_7_08]$man whoami
[clx@VM-20-6-centos lesson1_7_08]$man 2 man
[clx@VM-20-6-centos lesson1_7_08]$man 3 whoami

最多使用的是3号仓库,里面主要是库函数解释,假如加上数字的话,默认调用1号仓库

9.cp指令

功能:复制粘贴

cp a.txt ..
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ touch a.txt --创建a.txt 文件
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
-rw-rw-r-- 1 clx clx 0 Jul  9 19:56 a.txt
[clx@VM-20-6-centos lesson1_7_08]$ cp a.txt .. --将a.txt 复制粘贴到上级目录 
[clx@VM-20-6-centos lesson1_7_08]$ ls -al ..
total 16
drwxrwxr-x 4 clx clx 4096 Jul  9 19:57 .
drwx------ 9 clx clx 4096 Jul  8 23:17 ..
-rw-rw-r-- 1 clx clx    0 Jul  9 19:57 a.txt
drwxrwxr-x 2 clx clx 4096 Jul  9 19:00 dir
drwxrwxr-x 2 clx clx 4096 Jul  9 19:56 lesson1_7_08


cp -rf *
当我们需要拷贝目录时我们需要使用-r选项完成递归拷贝
同时我们也可以cp -rf * 将当前目录下所有东西进行打包拷贝

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ touch a.txt
[clx@VM-20-6-centos lesson1_7_08]$ touch b.txt
[clx@VM-20-6-centos lesson1_7_08]$ mkdir dir1
[clx@VM-20-6-centos lesson1_7_08]$ mkdir -p dir2/dir3
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 8
-rw-rw-r-- 1 clx clx    0 Jul  9 20:01 a.txt
-rw-rw-r-- 1 clx clx    0 Jul  9 20:01 b.txt
drwxrwxr-x 2 clx clx 4096 Jul  9 20:01 dir1
drwxrwxr-x 3 clx clx 4096 Jul  9 20:01 dir2
[clx@VM-20-6-centos lesson1_7_08]$ cp -r * ..
[clx@VM-20-6-centos lesson1_7_08]$ ls -l ..
total 16
-rw-rw-r-- 1 clx clx    0 Jul  9 20:02 a.txt
-rw-rw-r-- 1 clx clx    0 Jul  9 20:02 b.txt
drwxrwxr-x 2 clx clx 4096 Jul  9 19:00 dir
drwxrwxr-x 2 clx clx 4096 Jul  9 20:02 dir1
drwxrwxr-x 3 clx clx 4096 Jul  9 20:02 dir2
drwxrwxr-x 4 clx clx 4096 Jul  9 20:01 lesson1_7_08

*通配符还可以筛选目录下的内容
*.txt 可以选择当前目录下后缀为.txt 的文件进行打包

10.mv指令

功能:剪贴

mv *.txt ../
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ touch a.txt b.txt
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
-rw-rw-r-- 1 clx clx 0 Jul  9 20:10 a.txt
-rw-rw-r-- 1 clx clx 0 Jul  9 20:10 b.txt
[clx@VM-20-6-centos lesson1_7_08]$ mv *.txt ../
[clx@VM-20-6-centos lesson1_7_08]$ ls -l ../
total 8
-rw-rw-r-- 1 clx clx    0 Jul  9 20:10 a.txt
-rw-rw-r-- 1 clx clx    0 Jul  9 20:10 b.txt
drwxrwxr-x 2 clx clx 4096 Jul  9 19:00 dir
drwxrwxr-x 2 clx clx 4096 Jul  9 20:10 lesson1_7_08
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ 


mv也可以用来剪切目录,但是和cp不同的是,mv剪切目录不需要使用-r选项
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ mkdir -p dir1/dir2/dir3
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 4
drwxrwxr-x 3 clx clx 4096 Jul  9 20:13 dir1
[clx@VM-20-6-centos lesson1_7_08]$ mv dir1 ../
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ ll -l ..
total 12
drwxrwxr-x 2 clx clx 4096 Jul  9 19:00 dir
drwxrwxr-x 3 clx clx 4096 Jul  9 20:13 dir1
drwxrwxr-x 2 clx clx 4096 Jul  9 20:13 lesson1_7_08

11.more指令

功能:查看文件

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 0
[clx@VM-20-6-centos lesson1_7_08]$ touch file.txt --创建文件file.txt ,在其中打印一万行hello 100 Linux
[clx@VM-20-6-centos lesson1_7_08]$ count=0; while [ $count -le 10000 ]; do echo "hello 100 Linux $count"; let count++; done >> file.txt
我们可以使用more指令进行文件查看
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ more file.txt
hello 100 Linux 0
hello 100 Linux 1
hello 100 Linux 2
hello 100 Linux 3
hello 100 Linux 4
hello 100 Linux 5
hello 100 Linux 6
hello 100 Linux 7
hello 100 Linux 8
hello 100 Linux 9
hello 100 Linux 10
hello 100 Linux 11
hello 100 Linux 12
hello 100 Linux 13
hello 100 Linux 14
hello 100 Linux 15
hello 100 Linux 16
hello 100 Linux 17
hello 100 Linux 18
hello 100 Linux 19
hello 100 Linux 20
hello 100 Linux 21
hello 100 Linux 22
hello 100 Linux 23
hello 100 Linux 24
hello 100 Linux 25

特性:从文件开始进行查看,一次看一页.不支持上翻

12.less指令

功能:和more相近,不过可以进行上下翻

less file.txt

13.head指令

功能:将文本从开头进行打印(默认打印十行),当然我们可以手动添加行数,控制打印范围

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ head file.txt
hello 100 Linux 0
hello 100 Linux 1
hello 100 Linux 2
hello 100 Linux 3
hello 100 Linux 4
hello 100 Linux 5
hello 100 Linux 6
hello 100 Linux 7
hello 100 Linux 8
hello 100 Linux 9
[clx@VM-20-6-centos lesson1_7_08]$ head -3 file.txt
hello 100 Linux 0
hello 100 Linux 1
hello 100 Linux 2
[clx@VM-20-6-centos lesson1_7_08]$ head -n3 file.txt
hello 100 Linux 0
hello 100 Linux 1
hello 100 Linux 2

14.tail指令

功能:将文本从末尾开始打印

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ tail file.txt
hello 100 Linux 9991
hello 100 Linux 9992
hello 100 Linux 9993
hello 100 Linux 9994
hello 100 Linux 9995
hello 100 Linux 9996
hello 100 Linux 9997
hello 100 Linux 9998
hello 100 Linux 9999
hello 100 Linux 10000
[clx@VM-20-6-centos lesson1_7_08]$ tail -3 file.txt
hello 100 Linux 9998
hello 100 Linux 9999
hello 100 Linux 10000

15.echo指令

功能:将标准输入直接打印在标准输出上,并且也可以读取输入写入文件

echo "Hello Linux" > a.txt 
>为输出重定向符号(每次写入先会清空), 意思为将字符串写入a.txt,改变数据的流向
>> 为追加重定向符号(每次写入追加在文本后)
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ touch a.txt
[clx@VM-20-6-centos lesson1_7_08]$ echo "Hello Linux" > a.txt
[clx@VM-20-6-centos lesson1_7_08]$ cat a.txt
Hello Linux

接下来我们可以通过追加重定向来进行文件写入
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 212
-rw-rw-r-- 1 clx clx     12 Jul  9 20:58 a.txt
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ echo "Hello Linux" >> a.txt
[clx@VM-20-6-centos lesson1_7_08]$ cat a.txt
Hello Linux
Hello Linux

Linux中一切皆文件,这是Linux的一种设计哲学

16.cat指令

功能:读取文件

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 212
-rw-rw-r-- 1 clx clx     24 Jul  9 21:10 a.txt
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ cat a.txt  --使用cat来读取文件
Hello Linux
Hello Linux

还可以进行以下操作
[clx@VM-20-6-centos lesson1_7_08]$ cat < a.txt --cat后面接的大多是文件名字 可以和输出重定向联合使用
Hello Linux
Hello Linux

[clx@VM-20-6-centos lesson1_7_08]$ cat --也可以直接使用cat,不过这就是从标准输入读取数据打印到标准输出
a
a
b
b
^C --可以使用Ctrl + C 退出打印

到目前为止我们学了较多的文本读取指令,现在我们来实现一下一万行文本中1000行到1010行数据的读取

[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt  --创建一个中间文件
-rw-rw-r-- 1 clx clx      0 Jul  9 21:22 temp.txt
[clx@VM-20-6-centos lesson1_7_08]$ head -1010 file.txt > temp.txt  --将前1010行数据读取到中间文件中
[clx@VM-20-6-centos lesson1_7_08]$ tail temp.txt        --打印中间文件最后十行数据即是我们的目标数据
hello 100 Linux 1000
hello 100 Linux 1001
hello 100 Linux 1002
hello 100 Linux 1003
hello 100 Linux 1004
hello 100 Linux 1005
hello 100 Linux 1006
hello 100 Linux 1007
hello 100 Linux 1008
hello 100 Linux 1009

这样我们就实现了目标数据的打印,但是过程中我们创建了一个临时文件,这样的方法有点麻烦

我们可以直接使用 | (管道) 来对数据进行筛选
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ head -1010 file.txt | tail -10
hello 100 Linux 1000
hello 100 Linux 1001
hello 100 Linux 1002
hello 100 Linux 1003
hello 100 Linux 1004
hello 100 Linux 1005
hello 100 Linux 1006
hello 100 Linux 1007
hello 100 Linux 1008
hello 100 Linux 1009

我们还可已通过管道来对数据进行处理
在此段代码中,我们增加了| tac 对读取数据进行了反向读取,改变了数据输出的顺序
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ head -1010 file.txt | tail -10 |tac
hello 100 Linux 1009
hello 100 Linux 1008
hello 100 Linux 1007
hello 100 Linux 1006
hello 100 Linux 1005
hello 100 Linux 1004
hello 100 Linux 1003
hello 100 Linux 1002
hello 100 Linux 1001
hello 100 Linux 1000

17.date指令

与时间相关,用来读取时间,日期等数据
date指令的使用
[clx@VM-20-6-centos lesson1_7_08]$ date
Sat Jul  9 21:35:41 CST 2022

date指令读取的数据进行格式化处理,增强可读性
[clx@VM-20-6-centos lesson1_7_08]$ date +%Y/%m/%d --通过Y,m,d确定读取的数据,/用于分隔读取数据
2022/07/09

时间的打印
[clx@VM-20-6-centos lesson1_7_08]$ date +%Y/%m/%d/%H:%M:%S
2022/07/09/21:40:22

时间戳:1970/1/1 00.00 到现在所度过的秒数

读取时间戳
[clx@VM-20-6-centos lesson1_7_08]$ date +%s
1657374177

使用时间戳得到时间
[clx@VM-20-6-centos lesson1_7_08]$ date -d@1657374177
Sat Jul  9 21:42:57 CST 2022

18.Cal指令

作用:调出日历查看日期

[clx@VM-20-6-centos lesson1_7_08]$ cal
      July 2022     
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

还可以打印前后三个月的时间
[clx@VM-20-6-centos lesson1_7_08]$ cal -3
      June 2022             July 2022            August 2022    
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
          1  2  3  4                  1  2      1  2  3  4  5  6
 5  6  7  8  9 10 11   3  4  5  6  7  8  9   7  8  9 10 11 12 13
12 13 14 15 16 17 18  10 11 12 13 14 15 16  14 15 16 17 18 19 20
19 20 21 22 23 24 25  17 18 19 20 21 22 23  21 22 23 24 25 26 27
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30 31         
                      31                                        

19.find指令

功能:查找目标文件(可以查找任何文件)

~代表当前目录下 -name代表通过名字查找 
[clx@VM-20-6-centos lesson1_7_08]$ find ~ -name clx
/home/clx --返回查找到的数据的绝对路径

还可以通过大小查找 
find ~ -size 1000 //表示查找当前工作目录下所有大小小于1000的数据
find ~ +size 1000 -size 1001//表示查找当前工作目录下大于1000小于1001大小的数据

还可以进行目录查找
find ~ -name test type d //查找名字包含test并且类型是目录数据文件

真正的要在文件系统中进行查找->直接访问磁盘->效率比较低,但是最真实,找到则在磁盘中一定存在

20.which指令

功能:查找目标文件(查找命令文件)

[clx@VM-20-6-centos lesson1_7_08]$ which pwd
/usr/bin/pwd
返回命令文件存储的绝对路径

并非在磁盘上查找,文件名会以一种缓存的形式存储起来,查找会比较快,但是可能文件在磁盘上不存在

21.grep指令

功能:行过滤工具,查找指定内容

1.grep 基本使用方式
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ grep '9999' file.txt
hello 100 Linux 9999

2.grep -n 可以获取目标数据的行号
[clx@VM-20-6-centos lesson1_7_08]$ grep -n '9999' file.txt
10000:hello 100 Linux 9999

3.grep -nv 将指定内容剔除,打印其他数据
[clx@VM-20-6-centos lesson1_7_08]$ ll
total 208
-rw-rw-r-- 1 clx clx      0 Jul 10 08:41 a.txt
-rw-rw-r-- 1 clx clx 208912 Jul  9 20:23 file.txt
[clx@VM-20-6-centos lesson1_7_08]$ echo "hello Linux" > a.txt
[clx@VM-20-6-centos lesson1_7_08]$ echo "hello C++" >>a.txt
[clx@VM-20-6-centos lesson1_7_08]$ cat a.txt
hello Linux
hello C++
[clx@VM-20-6-centos lesson1_7_08]$ grep -nv 'Linux' a.txt
2:hello C++

4.grep -i 忽略大小写查找
[clx@VM-20-6-centos lesson1_7_08]$ grep -i 'linux' a.txt
hello Linux

5.在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容
grep -E ^a try_grep


3.Linux添加用户

1.使用root账户登录
[root@VM-20-6-centos ~]# ll
total 0
[root@VM-20-6-centos ~]# pwd
/root

2.新增用户
[root@VM-20-6-centos ~]# adduser temp  --新增用户
[root@VM-20-6-centos ~]# passwd temp   --设置用户密码
Changing password for user temp.
New password: 
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password: 
passwd: all authentication tokens updated successfully.
到这用户已经添加完成,可以退出root用户进行普通用户进行登录

注意:Linux系统下密码是不回显的,虽然光标没有动但是你确实已经输入了密码,并且密码必须要长于8位

4.Linux删除用户

1.切换到root用户
假如你正在使用普通用户可以使用 su - 指令进行切换至root用户
[root@VM-20-6-centos ~]# whoami
root
2.删除用户
[root@VM-20-6-centos ~]# userdel -r temp --使用userdel -r 指令删除temp
此时我们就完成了用户的删除

注意:root密码和用户密码不要设置成一样的
1.安全问题:泄漏一个密码就相当于泄漏了很多账户,若连root账户密码都泄漏了,等于这台机器是别人的了。它可以更改所有账户密码,并访问删除所有该机器上的文件
2.权限问题:作为一个学生,自己的账号基本只有自己使用,安全隐患比较小。但是,假如root用户和普通用户密码相同,将不利于我们接下来对权限的理解和学习,因为提升权限等操作要频繁输入密码。此密码可能是用户的也可能是root的,假如两者相同,则很容易产生理解偏差。导致进入公司,使用他人的机器无法选择输入哪个用户的密码造成麻烦

以上即是【Linux】1.0常见指令以及权限理解(上)的全部内容,感谢大家的观看

下一篇:【Linux】1.0常见指令以及权限理解(下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白在进击

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值