Linux 是一款开源的操作系统,它刚刚发行出来时仅仅由一万行代码编写,相比闭源的Windows和Macos操作系统来说他非常单薄。但是正是因为开源这一特性,使得全世界的程序员看到了改变世界的希望,大量高端工程师无偿加入Linux的编写。使得Linux操作系统高速完善,成为当今世界最为稳定高效的一款操作系统。
Centos 7.6操作系统是我们接下来代码运行的操作系统,它是一款搞“管理”的软件,主要管理,软件加硬件。它是Linux操作系统的一种发行版本,Linux也有很多其他的发行版本,这里就不一一细说了。同时Linux也有自己的版本,我们称之为Linux内核。发行版本是基于Linux内核上开发的操作系统,以承担现实生活中不同的工作环境。
语法: 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:
//对普通用户
[clx@VM-20-6-centos ~]$ pwd -- 显示当前我所处的目录对应的路径
/home/clx -- /home/XXX 就叫做XXX用户的主工作目录,一般在登录后是默认的
//对于root用户
[root@VM-20-6-centos ~]# pwd
/root
在Linux中路径分割符是 /(斜杠)
在Windows中路径分割符是 \(反斜杠)
[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指令的用法
[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
功能:创建文件
[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
功能:创建目录
在当前目录下创建一个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:
功能:用来删除空目录
[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 表示递归删除)
功能:删除文件
常用选项
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指令
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
功能: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号仓库
功能:复制粘贴
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 的文件进行打包
功能:剪贴
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
功能:查看文件
[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
特性:从文件开始进行查看,一次看一页.不支持上翻
功能:和more相近,不过可以进行上下翻
less file.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]$ 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
功能:将文本从末尾开始打印
[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
功能:将标准输入直接打印在标准输出上,并且也可以读取输入写入文件
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的一种设计哲学
功能:读取文件
[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
与时间相关,用来读取时间,日期等数据
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
作用:调出日历查看日期
[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
功能:查找目标文件(可以查找任何文件)
~代表当前目录下 -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并且类型是目录数据文件
真正的要在文件系统中进行查找->直接访问磁盘->效率比较低,但是最真实,找到则在磁盘中一定存在
功能:查找目标文件(查找命令文件)
[clx@VM-20-6-centos lesson1_7_08]$ which pwd
/usr/bin/pwd
返回命令文件存储的绝对路径
并非在磁盘上查找,文件名会以一种缓存的形式存储起来,查找会比较快,但是可能文件在磁盘上不存在
功能:行过滤工具,查找指定内容
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
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位
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常见指令以及权限理解(下)