常用基本命令

Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以
通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行。 本章就将分类介绍
常用的基本 shell 命令。

帮助命令

man 获得帮助信息

基本语法

man[命令或配置文件] (功能描述:获得帮助信息)

显示说明

linux42.png

案例实操

(1)看ls命令的帮助信息
[root@hadoop101 ~]#man ls

help 获得 shell 内置命令的帮助信息

一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令
被称为“外部命令”。

基本语法

help 命令 (功能描述:获得 shell 内置命令的帮助信息)

案例实操

(1)查看cd命令的帮助信息
[root@hadoop101 ~]# help cd

常用快捷键

常用快捷键功能
ctrl+c停止进程
ctrl+l清屏,等同于 clear;彻底清屏是:reset
善用tab键提示(更重要的是可以防止敲错)
上下键查找执行过的命令

文件目录类

pwd 显示当前工作目录的绝对路径

pwd:print working directory 打印工作目录

基本语法

pwd (功能描述:显示当前工作目录的绝对路径)

ls 列出目录的内容

基本语法

ls [选项][日录或是文件]

选项说明

选项功能
-a全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用)
-l长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”

显示说明

每行列出的信息依次是:文件类型与权限链接数文件属主文件属组文件大小用byte来表示建立或最近修改的时间名字

cd 切换目录

基本语法

cd[参数]

参数说明

参数功能
cd绝对路径切换路径
cd相对路径切换路径
cd~或者cd回到自己的家目录
cd -回到上一次所在目录
cd ..回到当前目录的上一级目录
cd -P跳转到实际物理路径,而非快捷方式路径

mkdir 创建一个新的目录

基本语法

mkdir[选项]要创建的目录

选项说明

-p 创建多层目录

案例实操

创建一个多级目录
[root@hadoop101 ~]# mkdir -p xiyou/dssz/meihouwang

rmdir 删除一个空的目录

基本语法

rmdir 要删除的空目录

touch 创建空文件

基本语法

touch 文件名

案例实操

root@hadoop101 ~]# touch xiyou/dssz/sunwukong.txt

cp 复制文件或目录

基本语法

cp[选项] source dest(功能描述:复制source文件到dest

选项说明

选项功能
-r递归复制整个文件夹

参数说明

参数功能
source源文件
dest目标文件

rm删除文件或目录

基本语法

rm [选项] deletefile (功能描述:递归删除目录中所有内容)

选项说明

选项功能
-r递归删除目录中所有内容
-f强制执行删除操作,而不提示用于进行确认
-v显示指令的详细执行过程

案例实操

删除目录中的某些内容
[root@erha ~]# rm kss/erha/e1.txt kss/erha/e2.txt
rm:是否删除普通空文件 "kss/erha/e1.txt"?y
rm:是否删除普通空文件 "kss/erha/e2.txt"?y
删除文件夹erha和其中的所有内容
[root@erha kss]# rm -r erha/
rm:是否进入目录"erha/"? y
rm:是否删除普通空文件 "erha/erha.txt"?y
rm:是否删除普通空文件 "erha/erha1.txt"?y
rm:是否删除普通空文件 "erha/erha2.txt"?y
rm:是否删除目录 "erha/"?y

mv 移动文件与目录或重命名

基本语法

  1. mv oldNameFile newNameFile (功能描述:重名名)
  2. mv /temp/movefile /targetFolder (功能描述: 移动文件)

案例实操

重命名
happy.cfg  hello2  hello3
[root@erha atguigu]# mv happy.cfg upset.cfg
[root@erha atguigu]# ls
hello2 hello3 upset.cfg
[root@erha temp]# mv movefile/file1.txt movefile/file2.txt
[root@erha temp]# ls movefile
file2.txt

移动文件到上一级目录

[root@erha /]# touch temp/movefile/file1.txt
[root@erha /]# mv temp/movefile/file1.txt ./
[root@erha /]# ls ../
bin dev etc home lib media opt root sbin sys temp usr boot diy file1.txt isdiy lib64 mnt proc run srv targetFolder tmp var
[root@erha /]# ls ./
bin dev etc home lib media opt root sbin sys temp usr boot diy file1.txt isdiy lib64 mnt proc run srv targetFolder tmp var

cat 查看文件内容

基本语法

cat [选项] 要查看的文件

选项说明

选项功能描述
-n显示所有行的行号,包括空行

案例实操

查看文件内容并显示行号
[root@erha ~]# cat initial-setup-ks.cfg -n

more 文件内容分屏查看器

more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件 的内容。more 指令中内置了若干快捷键,详见操作说明。

基本语法

more 要查看的文件

操作说明

操作功能说明
空格键向下翻一页
Enter向下翻一行
q立刻离开more,不再显示该文件内容
Ctrl+F向下滚动一屏

less分屏显示文件内容

less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加 强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后 才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

基本语法

less 要查看的文件

操作说明

操作功能说明
空白键向下翻动一页
[pagedown]向下翻动一页
[pageup]向上翻动一页
/字符串向下搜寻字符串;n:向下查找;N:向上查找;
?字符串向上搜寻字符串;n:向上查找;N:向下查找;
q离开less这个程序;

案例实操

[root@hadoop101 ~]# less smartd.conf

echo输出内容到控制台

基本语法

echo [选项] [输出内容]

选项说明

选项作用
-e支持反斜线控制的字符转换
控制字符作用
\\输出 \本身
\n换行符
\t制表符,也就是Tab键

案例实操

[root@erha ~]# echo "hello\nworld"
hello\nworld
[root@erha ~]# echo -e "hello\nworld"
hello
world
显示环境变量
echo $PATH

>输出重定向 和 >>追加

基本语法

  • ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
  • ls -a >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
  • cat file1 > file2 (功能描述:将file1的内容覆盖到file2)
  • echo “内容” >> file (功能描述:将内容追加到file)

案例实操

  1. 将ls查看信息写入到文件中

    ls -l > houge.txt
  2. 采用echo将hello单词追加到文件中

    echo hello >> houge.txt

ln 软链接

软链接也称符号链接,类似于Windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。

基本语法

ln -s [源文件或目录] [软连接名]

经验技巧

  • 删除软链接:rm -rf 软链接名,而不是rm -rf 软链接名/
  • 如果使用rm -rf 软链接名/ 删除,会把软链接对应的真实目录下的内容删掉
  • 查询:通过ll就可以查看,列表属性第一位是1,尾部会有位置指向。

案例实操

创建链接文件
[root@erha /]# ln -s /root/kss/erha/dog2.txt dog 
[root@erha /]# ll 总用量 32 lrwxrwxrwx. 1 root root 7 9月 17 21:40 bin -> usr/bin lrwxrwxrwx. 1 root root 23 10月 20 17:51 dog -> /root/kss/erha/dog2.txt
创建链接目录(相当于挂载)

无链接名时系统自动命名

[root@erha /]# ln -s /root/kss/erha                                           [root@erha /]# ll                                                             lrwxrwxrwx.   1 root root    7 9月  17 21:40 bin -> usr/bin                    lrwxrwxrwx.   1 root root   14 10月 20 17:58 erha -> /root/kss/erha  

history 查看已经执行过的历史命令

基本语法

history

案例实操

[root@erha /]# history                                                         1  ls                                                                         2  cd ..                                                                      3  ls                                                                         

显示刚刚使用的10行命令

[root@erha ~]# history 10                                                     106  date '+%y-%m-%d %H-%M-%S'                                                  107  date '+%Y-%M-%D %H-%M-%S'                                                  108  date '%Y-%M-%D %H-%M-%S'                                                 109  date '+%Y-%M-%D %H-%M-%S'                                                 110  date '+%Y-%m-%d %H-%M-%S'                                                  111  date '+%Y-%m-%d %H:%M:%S'                                                  112  date -d '1 days ago'                                                     113  date -s '2035-10-20 20:26:00'                                           114  date                                                                      115  history 10                                                                                

使用上述命令

[root@erha ~]# !107                                                            date '+%Y-%M-%D %H-%M-%S'                                                     2035-30-10/20/35 20-30-18    

清空历史命令

[root@erha ~]# history -c                                                     [root@erha ~]# history                                                         1  history 

时间日期类

基本语法

data [option]…[+format]

选项说明

选项功能
-d<时间字符串>显示指定的“时间字符串”表示的时间,而非当前时间
-s<日期时间>设置系统日期时间

参数说明

参数功能
<+日期时间格式>指定显示时使用的日期时间格式

data显示当前时间

基本语法

  1. date 显示当前时间
  2. date “+%Y” 显示当前年份
  3. date “+%m” 显示当前月份
  4. date “+%d” 显示当前是哪一天
  5. date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒

年时分秒 最好大写

案例实操

[root@erha ~]# date "+%Y-%m-%d %H:%M%S"                                        2022-10-20 19:5909

date显示非当前时间

基本语法

  1. date -d ‘1 days ago’ 显示前一天时间
  2. date -d ‘-1 days ago’ 显示明天时间
  3. date -d ‘1 hours ago’ 显示前一小时

案例实操

[root@erha ~]# date -d '1 days ago'                                           2022年 10月 19日 星期三 20:18:08 CST

date设置系统时间

基本语法

date -s 字符串时间 将系统时间设置为字符串时间

ntpdate time.nist.gov 同步系统时间(如果同步不成功查看解决报错)

案例实操

[root@erha ~]# date -s '2035-10-20 20:26:00'                                   2035年 10月 20日 星期六 20:26:00 CST                                             [root@erha ~]# date                                                           2035年 10月 20日 星期六 20:26:29 CST 

cal查看日历

基本语法

cal [选项] 显示本月日历

选项说明

-1, —one只显示当前月份(默认)
-3, —three显示上个月、当月和下个月
-s, —sunday周日作为一周第一天
-m, —monday周一用为一周第一天
-y, —year输出整年
-V,—version显示版本信息并退出
-h, —help显示此帮助并退出

案例实操

[root@erha ~]# cal
十月 2022
日 一 二 三 四 五 六
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

用户管理命令

useradd添加新用户

基本语法

useradd 用户名 添加新用户

useradd -g 组名 用户名 添加新用户到某个组

id查看用户是否存在

基本语法

id 用户名

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# id kss
uid=1003(kss) gid=0(root) groups=0(root)
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# id ksss
id: ksss: no such user

passwd设置用户密码

基本语法

passwd 用户名

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# passwd kss
Changing password for user kss.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

cat /etc/passwd 查看创建了哪些用户

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
admin:x:1000:1000::/home/admin:/bin/bash
cwx:x:0:0::/home/cwx:/bin/bash
hq:x:0:0::/home/hq:/bin/bash
atguigu:x:1001:1003::/home/atguigu:/bin/bash
www:x:1002:1004::/home/www:/sbin/nologin
kss:x:1003:0::/home/kss:/bin/bash

su 切换用户

su(swith user)切换用户

基本语法

su 用户名 (切换用户,只能获得用户的执行权限,不能获得环境变量)

su -用户名 (切换到用户并获得该用户的环境变量及执行权限)

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# su cwx
[root@iZj6c4qxbpnkg5sjq6r7nhZ root]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@iZj6c4qxbpnkg5sjq6r7nhZ root]# exit
exit
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# su - cwx
Last login: Sat Nov 12 15:06:54 CST 2022 on pts/0
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/cwx/.local/bin:/home/cwx/bin

userdel 删除用户

基本语法

  1. userdel 用户名 (删除用户但保存用户主目录)
  2. userdel -r 用户名 (用户和用户主目录,都删除)

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# userdel kss
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# ls
admin atguigu cwx hq kss www
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# userdel -r kss
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# ls
admin atguigu cwx hq www

who查看登录用户信息

基本语法

  1. whoami (显示自身用户名称)
  2. who am i (显示登录用户的用户名以及登录时间)

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# whoami
root
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# who am i
root pts/0 2022-11-12 14:48 (112.132.164.210)

sudo 设置普通用户具有root权限

1. 添加atguigu用户,并对其设置密码

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# useradd atguigu
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# passwd atguigu
Changing password for user atguigu.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

2. 修改配置文件

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# vi /etc/sudoers

修改/etc/sudoers文件,找到下面一行(最下面),在root下面添加一行,如下:

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) ALL

或者配置成采用sudo命令时,不需要输入密码

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) NOPASSWD:ALL

修改完毕,现在可以用 atguigu 帐号登录,然后用命令 sudo ,即可获得 root 权限进行 操作。

3. 案例实操

[atguigu@iZj6c4qxbpnkg5sjq6r7nhZ home]$ rm -rf module
rm: cannot remove ‘module’: Permission denied
[atguigu@iZj6c4qxbpnkg5sjq6r7nhZ home]$ sudo rm -rf module

usermod 修改用户

基本语法

usermod -g 用户组 用户名 (修改用户的初始登录组,给定的组必须存在。默认组 id 是 1)

案例实操

将用户加入到用户组

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# usermod -g root kss

用户组管理命令

groupadd 新增组

基本语法

groupadd 祖名

案例实操

添加一个ikun组

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# groupadd ikun

groupdel 删除组

基本语法

groupdel 组名

案例实操

删除ikun组

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# groupdel ikun

groupmod 修改组

基本语法

groupmod -n 新组名 老祖名

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# groupmod -n jinitaimei ikun

cat /etc/group 查看创建了哪些组

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# cat /etc/group
admin:x:1000:
cwx:x:1001:
hq:x:1002:
www:x:1004:
atguigu:x:1003:
kss:x:1005:
jinitaimei:x:1006:

文件权限类

文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做 了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属 的用户和组。

从左到右的 10 个字符表示

QQ截图20221112165258.png

如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:

0首位表示类型

在Linux中第一个字符代表这个文件是目录,文件或链接文件等等

  • - 代表文件
  • d 代表目录(directory)
  • l 链接文档(link file)
第1-3位确定属主(该文件的所有者)拥有该文件的权限。—-User
第4-6位确定属组(所有者的同组用户)拥有该文件的权限。—-Group
第7-9位确定其他用户拥有该文件的权限。—-Other

rwx作用文件和目录的不同解释

作用到文件:
  • [r]代表可读(read):可以读取,查看
  • [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。

  • [x]代表可执行(execute):可以被系统执行

作用到目录:
  • [r]代表可读(read):可以读取,ls查看目录内容
  • [w]代表可写(write):可以修改,目录内创建+删除+重命名目录
  • [x]代表可执行(execute):可以进入该目录

案例实操

[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# ll
total 64
-rw-r--r-- 1 root root 0 Nov 9 19:45 1
drwxr-xr-x 2 root root 4096 Nov 9 19:56 hk
-rw-r--r-- 1 root root 31665 Oct 26 16:35 install.sh
drwxr-xr-x 5 root root 4096 Nov 11 23:48 kss-file
-rwxr-xr-x 1 root root 24301 Nov 9 19:48 tcp.sh
文件属性

QQ截图20221112173312.png

  1. 如果查看到是文件:链接数指的是硬链接个数。
  2. 如果查看的是文件夹:链接数指的是子文件夹个数

chmod改变权限

基本语法

QQ截图20221112173854.png

第一种方式变更权限

chmod [{ugoa}{+-=}{rwx}] 文件或目录

第二种方式变更权限

chmod [mode=421] [文件或目录]

经验技巧

u:所有者 g:所有组 o:其他人 a:所有人(u,g ,o的总和)

r=4 w=2 x=1 rwx=4+2+1=7

案例实操

  1. 修改文件使其所属主用户具有执行权限
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 12 17:50 a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chmod u+x a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rwxr--r-- 1 root root 0 Nov 12 17:50 a.txt
  1. 修改文件使其所属组用户具有执行权限
-rwxr--r-- 1 root root 0 Nov 12 17:50 a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chmod g+x a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rwxr-xr-- 1 root root 0 Nov 12 17:50 a.txt
  1. 修改文件所属主用户执行权限,并使其他用户具有执行权限
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chmod u-x,o+x a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rw-r-xr-x 1 root root 0 Nov 12 17:50 a.txt
  1. 采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权 限
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chmod 777 a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rwxrwxrwx 1 root root 0 Nov 12 17:50 a.txt

chown 改变所有者

基本语法

chown [选项] [最终用户] [文件或目录] (改变文件或者目录的所有者)

选项说明

-R递归操作

案例实操

  1. 修改文件所有者
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chown atguigu a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rwxrwxrwx 1 atguigu root 0 Nov 12 17:50 a.txt
  1. 递归改变目录内的所有文件的所有者和所有组
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rwxrwxrwx 1 atguigu root 0 Nov 12 17:50 a.txt
-rw-r--r-- 1 root root 0 Nov 12 18:06 b.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# chown -R atguigu:atguigu test/
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# ll test
total 0
-rwxrwxrwx 1 atguigu atguigu 0 Nov 12 17:50 a.txt
-rw-r--r-- 1 atguigu atguigu 0 Nov 12 18:06 b.txt

chgrp 改变所属组

基本语法

chgrp [最终用户组] [文件或目录] (改变文件或者目录的所属组)

案例实操

  1. 修改文件的所属组
-rwxrwxrwx 1 atguigu atguigu 0 Nov 12 17:50 a.txt
-rw-r--r-- 1 atguigu atguigu 0 Nov 12 18:06 b.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chgrp root a.txt b.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll
total 0
-rwxrwxrwx 1 atguigu root 0 Nov 12 17:50 a.txt
-rw-r--r-- 1 atguigu root 0 Nov 12 18:06 b.txt

搜索查找类

find 查找文件或者目录

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端

基本语法

find [搜索范围] [选项]

选项说明

选项功能
-name<查询方式>按照指定的文件名查找模式查找文件
-user<用户名>查找属于指定用户名所有文件
-size<文件大小>按照指定的文件大小查找文件,单位为:b—-块(512字节)c—-字节 w—-字(2字节) k—-千字节 M—-兆字节 G—-吉字节 默认使用的是字节作为单位

案例实操

  1. 按文件名:根据名称查找/目录下的filename.txt文件。
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# find /root/ -name "*.txt"
/root/kss-file/test/b.txt
/root/kss-file/test/a.txt
/root/kss-file/宝塔面板.txt
  1. 按用户名:查找/root目录下,用户名称为atguigu的文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# find /root/ -name "*.txt" -user atguigu
/root/kss-file/test/b.txt
/root/kss-file/test/a.txt
  1. 按文件大小:在/home目录下查找等于4k的文件(+n大于 -n小于 n等于)
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# find  -size 4k
.
./admin
./admin/.ssh
./hq
./www
./atguigu

locate 快速定位文件路径

locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给 定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确 度,管理员必须定期更新 locate 时刻。

基本语法

locate 搜索文件

经验技巧

  • 第一次使用需要在yum商店安装:yum -y install mlocate

  • 由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创 建 locate 数据库。

  • 默认为模糊查询

案例实操

查询文件夹

[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# locate tmp
/tmp
/etc/tmpfiles.d
/etc/cloud/templates/chef_client.rb.tmpl
/etc/cloud/templates/chrony.conf.tmpl
/etc/cloud/templates/hosts.debian.tmpl
/etc/cloud/templates/hosts.freebsd.tmpl
......

grep 过滤查找及”|”管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

基本语法

grep 选项 查找内容 源文件

选项说明

-n显示匹配行及行号

案例实操

查找某文件在第几行

[root@iZj6c4qxbpnkg5sjq6r7nhZ /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt patch proc root run sbin srv sys tmp usr var www
[root@iZj6c4qxbpnkg5sjq6r7nhZ /]# ls | grep -n home
5:home

压缩和解压类

gzip/gunzip 压缩

基本语法

gzip 文件 (压缩文件,只能将文件压缩为*.gz 文件)

gunzip 文件.gz (解压缩文件命令)

经验技巧

  1. 只能压缩文件不能压缩目录
  2. 不保留原来的文件
  3. 同时多个文件会产生多个压缩包

案例实操

  1. gzip压缩文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
a.txt b.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# gzip a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
a.txt.gz b.txt
  1. gunzip解压缩文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# gunzip a.txt.gz
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
a.txt b.txt

zip/unzip 压缩

基本语法

zip [选项] XXX.zip 将要压缩的内容 (压缩文件和目录的命令)

unzip [选项] XXX.zip (解压缩文件)

选项说明

zip选项功能
-r压缩目录
unzip选项功能
-d<目录>指定解压后文件的存放目录

经验技巧

zip 压缩命令在Windows/Linux都通用,可以压缩目录且保留源文件。

案例实操

  • 压缩目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# zip -r test.zip test
adding: test/ (stored 0%)
adding: test/b.txt (stored 0%)
adding: test/a.txt (stored 0%)
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# ls
java韩顺平 Linux test test.zip 宝塔面板.txt 网络赛道
  • 解压目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# unzip -d test/  test.zip
Archive: test.zip
creating: test/test/
extracting: test/test/b.txt
extracting: test/test/a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# ls test
a.txt b.txt test

tar 打包

基本语法

tar [选项] XXX.tar.gz 将要打包进去的内容 (打包目录,压缩后的文件格式为XXX.tar.gz)

选项说明

选项功能
-c产生.tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解包.tar文件
-C解压到指定目录

案例实操

  • 压缩多个文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# tar -zcvf all.tar.gz a.txt b.txt 
a.txt
b.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
all.tar.gz a.txt b.txt test
  • 压缩目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
a.txt b.txt test
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# tar -zcvf test.tar.gz test
test/
test/b.txt
test/a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
a.txt b.txt test test.tar.gz
  • 解压到当前目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# ls
all.tar.gz java韩顺平 Linux test test.zip 宝塔面板.txt 网络赛道
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# tar -zxvf all.tar.gz
a.txt
b.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# ls
all.tar.gz a.txt b.txt java韩顺平 Linux test test.zip 宝塔面板.txt 网络赛道
  • 解压到指定目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls
a.txt b.txt test test.tar.gz
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# tar -zxvf test.tar.gz -C /opt
test/
test/b.txt
test/a.txt
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls /opt
test threatbook

磁盘查看和分区类

du 查看文件和目录占用的磁盘空间

du:disk usage 磁盘占用情况

基本语法

du [选项] 目录/文件 (显示目录下每个子目录的磁盘使用情况)

选项说明

选项功能
-h以人们较易阅读的GBytes,MBytes,KBytes等格式自行显示
-a不仅查看子目录大小,还要包括文件
-c显示所有的文件和子目录大小后,显示总和
-s只显示总和
—max-depth=n指定统计子目录的深度为第n层

案例实操

查看当前用户主目录占用的磁盘空间大小

[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# du -sh
76M