Linux操作系统极速入门[常用指令]

news2024/11/26 0:54:58

linux概述:

Linux是一套免费使用和自由传播的操作系统


我们为什么要学,Linux?

   

 主流操作系统:

        
        linux系统版本:

            内核版:
  •  由linux核心团队开发,维护
  •  免费,开源
  •  负责控制硬件

            发行版:
  •  基于linux内核版进行扩展
  • 由各个linux厂商开发,维护
  • 有收费版本和免费版本
Linux系统发行版:
  • Ubuntu:以桌面应用为主
  • RedHat:应用最广泛、收费
  • CentOS:RedHat的社区版、免费
  • openSUSE:对个人完全免费、图形界面华丽
  • Fedora:功能完备、快速更新、免费
  • 红旗Linux:北京中科红旗软件技术有限公司开发


    系统安装:

        Linux系统的安装方式:
  •  物理机安装:直接将操作系统安装到服务器硬件上
  • 虚拟机安装:通过虚拟机软件安装

                虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。

                    常用的虚拟机软件:
  •  VMWare
  • VirtualBox
  • VMLite WorkStation
查看IP地址:

通过如下命令查看当前Linux的IP地址:ip addr

    远程连接:

 常用的SSH(Secure Shell,安全外壳协议)远程连接工具:Putty、SecureCRT、Xshell、finalShell

        

直接双击运行FinalShell的安装程序完成安装即可

finalShell连接linux:

点击左上角一个像文件的图标,新建连接:

点击ssh连接:

点击ssh连接,输入必要的连接信息:

出现的弹窗:

连接成功后的页面:


    Linux的目录介绍:

  • /是所有目录的顶点
  • 目录结构像一颗倒挂的树

        Linux系统目录:
  •   bin 存放二进制可执行文件
  •   boot 存放系统引导时使用的各种文件
  •   dev 存放设备文件
  •  etc 存放系统配置文件
  •  home 存放系统用户的文件
  •    lib 存放程序运行所需的共享库和内核模块
  •  opt 额外安装的可选应用程序包所放置的位置
  •   root 超级用户目录
  • sbin 存放二进制可执行文件,只有root用户才能访问
  •  tmp 存放临时文件
  •  usr 存放系统应用程序
  • var 存放运行时需要改变数据的文件,例如日志文件

linux常用命令:


    文件目录操作命令:

        ls

显示指定目录下的内容


            语法:

 ls [-al] [dir]

[root@localhost usr]# ls


[root@localhost usr]# ls -a

[root@localhost usr]# ls -l

[root@localhost usr]# ll


            说明:

  •   -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出

            注意:

由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll

        cd

 用于切换当前工作目录,即进入指定目录


            语法:

cd [dirName]

[root@localhost ~]# cd /usr/local/

[root@localhost ~]# cd sde
[root@localhost sde]# cd ..
[root@localhost ~]# cd sde/
[root@localhost sde]# 

cd -  返回上次所在的目录 

[root@localhost /]# cd -
/usr/local
[root@localhost local]# 

cd ~ 直接回到 /root目录

[root@localhost usr]# cd ~
[root@localhost ~]# 

pwd 查看当前所在目录

[root@localhost usr]# pwd
/usr

cd . 当前所在目录

[root@localhost usr]# cd .
[root@localhost usr]# 

cd .. 返回上一级目录

[root@localhost local]# cd ..
[root@localhost usr]# 

cd ../../ 连续退两级目录

[root@localhost local]# cd ../../
[root@localhost /]# 


            特殊说明:

  • ~ 表示用户的home目录
  • . 表示目前所在的目录
  • .. 表示目前目录位置的上级目录

            举例:

  • cd ..        切换到当前目录的上级目录
  • cd ~        切换到用户的home目录
  • cd /usr/local    切换到/usr/local目录
  • cd -        切换到上一次所在目录

        cat

 用于显示文件内容


            语法:

 cat [-n] fileName


            说明:

 -n :由1开始对所有输出的行数编号

            举例:

cat /etc/profile        查看/etc目录下的profile文件内容

        

[root@localhost ~]# cat 1.txt 
11111111111
2222222222
333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999
0000000000

[root@localhost ~]# 

显示行号:

[root@localhost ~]# cat -n 1.txt 
     1  11111111111
     2  2222222222
     3  333333333
     4  4444444444
     5  5555555555
     6  6666666666
     7  7777777777
     8  8888888888
     9  9999999999
    10  0000000000
    11  
[root@localhost ~]# 
clear:清屏:

[root@localhost ~]# clear

more

 以分页的形式显示文件内容


            语法:

more fileName


            操作说明:

  •  回车键:向下滚动一行
  • 空格键:向下滚动一屏
  • b:返回上一屏
  • q或者 Ctrl+c :退出more

[root@bogon ~]# more tlias.log 

可以看到是以分页的形式,展示的tlias.log日志。

我按下回车键,向下滚动一行。

我按下空格键,向下滚动一屏。

我按下 b 键,返回上一屏。

我按下 q 或者 ctrl + c 退出:

这个是 ctrl + c:


            举例:

more /etc/profile    以分页方式显示/etc目录下的profile文件内容

        tail

 查看文件末尾的内容


            语法:

 tail [-f] fileName


            说明:

-f :动态读取文件末尾内容并显示,通常用于日志文件的内容输出

[root@bogon ~]# tail tlias.log 

查看后几行的:

[root@bogon ~]# tail -5 tlias.log 

            举例:

  • tail /etc/profile    显示/etc目录下的profile文件末尾10行的内容
  • tail -20 /etc/profile    显示/etc目录下的profile文件末尾20行的内容
  • tail -f /sde/my.log    动态读取/sde目录下的my.log文件末尾内容并显示

        mkdir

创建目录


            语法:

  mkdir [-p] dirName


            说明:

 -p:确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建
          

示例1: 

[root@bogon ~]# mkdir sde1

 

示例2:

[root@bogon ~]# mkdir sde2/sde3

加上 -p

[root@bogon ~]# mkdir -p sde2/sde3

[root@bogon ~]# cd sde2/sde3

 举例:

  • mkdir sde在当前目录下,建立一个名为sde的子目录
  • mkdir -p sde/test     在工作目录下的sde目录中建立一个名为test的子目录,若itcast目录不存在,则建立一个

        rmdir

删除空目录


            语法:

  rmdir [-p] dirName


            说明:

 -p:当子目录被删除后使父目录为空目录的话,则一并删除

[root@bogon ~]# rmdir sde

加上 -p 删除:

[root@bogon ~]# rmdir -p  sde2/sde3

[root@bogon ~]# rmdir sde1*

            举例:

  • rmdir sde       删除名为sde的空目录
  • rmdir -p sde/test  删除sde目录中名为test的子目录,若test目录删除后sde目录变为空目录,则也被删除
  • rmdir sde*       删除名称以sde开始的空目录
        rm

删除文件或者目录


            语法:

 rm [-rf] name

使用 rm 删除文件夹,里面要是存在的有文件或者文件夹,就会删除失败。

[root@bogon ~]# rm sde1

使用 -r 递归删除:

[root@bogon ~]# rm -r sde1
rm:是否进入目录"sde1"? y
rm:是否删除目录 "sde1/sde22"?y
rm:是否删除目录 "sde1"?y
[root@bogon ~]# 

看效果:

 -f  不询问删除:

[root@bogon ~]# rm -rf sde2
[root@bogon ~]# 

效果: 


            说明:

 -r:将目录及目录中所有文件(目录)逐一删除,即递归删除
-f:无需确认,直接删除

            举例:

  •  rm -r itcast/    删除名为itcast的目录和目录中所有文件,删除前需确认
  • rm -rf itcast/   无需确认,直接删除名为itcast的目录和目录中所有文件
  • rm -f hello.txt  无需确认,直接删除hello.txt文件

    拷贝移动目录:

        cp

 用于复制文件或目录


            语法:

 cp [-r] source dest

 复制到另一个目录 

[root@bogon ~]# cp 1.txt  sde1/
[root@bogon ~]# cd sde1
[root@bogon sde1]# ll
总用量 4
-rw-r--r--. 1 root root 145 12月 28 15:57 1.txt
drwxr-xr-x. 2 root root   6 12月 28 15:56 sde2
[root@bogon sde1]# 

在当前目录下,改名复制。

[root@bogon sde1]# cp 1.txt ./66.txt
[root@bogon sde1]# ll
总用量 8
-rw-r--r--. 1 root root 145 12月 28 15:57 1.txt
-rw-r--r--. 1 root root 145 12月 28 15:59 66.txt
drwxr-xr-x. 2 root root   6 12月 28 15:56 sde2
[root@bogon sde1]# 

演示:cp -r  sde1/ ./daoen

[root@bogon ~]# cp -r sde1 ./daoen
[root@bogon ~]# cd daoen
[root@bogon daoen]# ll
总用量 0
drwxr-xr-x. 3 root root 45 12月 28 17:40 sde1
[root@bogon daoen]# cd sde1
[root@bogon sde1]# ll
总用量 8
-rw-r--r--. 1 root root 145 12月 28 17:40 1.txt
-rw-r--r--. 1 root root 145 12月 28 17:40 66.txt
drwxr-xr-x. 3 root root  21 12月 28 17:40 sde2
[root@bogon sde1]# cd sde2
[root@bogon sde2]# ll
总用量 0
drwxr-xr-x. 2 root root 6 12月 28 17:40 888.txt
[root@bogon sde2]# 

演示带 /* 的

[root@bogon ~]# cp -r sde1/* ./daoen
[root@bogon ~]# ll
总用量 2264
-rw-r--r--. 1 root root     145 12月 28 15:19 1.txt
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root      45 12月 28 17:48 daoen
drwxr-xr-x. 3 root root      45 12月 28 15:59 sde1
drwxr-xr-x. 3 root root      18 12月 28 15:56 sde2
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# cd daoen
[root@bogon daoen]# ll
总用量 8
-rw-r--r--. 1 root root 145 12月 28 17:48 1.txt
-rw-r--r--. 1 root root 145 12月 28 17:48 66.txt
drwxr-xr-x. 3 root root  21 12月 28 17:48 sde2
[root@bogon daoen]# 


            说明:

 -r:如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

            

举例:

  •  cp hello.txt sde/            将hello.txt复制到itcast目录中
  • cp hello.txt ./hi.txt           将hello.txt复制到当前目录,并改名为hi.txt
  • cp -r itcast/ ./sde/        将sde目录和目录下所有文件复制到sde66目录下
  • cp -r itcast/* ./sde/       将sde目录下所有文件复制到sde66目录下

        

mv

为文件或目录改名、或将文件或目录移动到其它位置


            语法:

 mv source dest

演示改名:

[root@bogon ~]# ll
总用量 2264
-rw-r--r--. 1 root root     145 12月 28 15:19 1.txt
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root      45 12月 28 15:59 sde1
drwxr-xr-x. 3 root root      18 12月 28 15:56 sde2
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# mv 1.txt 666.txt
[root@bogon ~]# ll
总用量 2264
-rw-r--r--. 1 root root     145 12月 28 15:19 666.txt
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root      45 12月 28 15:59 sde1
drwxr-xr-x. 3 root root      18 12月 28 15:56 sde2
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# 

演示移动:

[root@bogon ~]# mv 666.txt sde1/
[root@bogon ~]# ll
总用量 2260
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde1
drwxr-xr-x. 3 root root      18 12月 28 15:56 sde2
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# cd sde1
[root@bogon sde1]# ll
总用量 12
-rw-r--r--. 1 root root 145 12月 28 15:57 1.txt
-rw-r--r--. 1 root root 145 12月 28 15:19 666.txt
-rw-r--r--. 1 root root 145 12月 28 15:59 66.txt
drwxr-xr-x. 3 root root  21 12月 28 16:06 sde2
[root@bogon sde1]# 

移动到不存在的文件夹,就是改名字。

[root@bogon ~]# mv sde1 sde6
[root@bogon ~]# ll
总用量 2260
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root      18 12月 28 15:56 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# 

移动到一个已经存在的目录:

[root@bogon ~]# ll
总用量 2260
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 2 root root       6 12月 28 18:15 sde
drwxr-xr-x. 3 root root      18 12月 28 15:56 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# mv sde sde2
[root@bogon ~]# ll
总用量 2260
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 4 root root      29 12月 28 18:15 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# cd sde2
[root@bogon sde2]# ll
总用量 0
drwxr-xr-x. 2 root root 6 12月 28 18:15 sde
drwxr-xr-x. 2 root root 6 12月 28 15:56 sde3
[root@bogon sde2]# 


            举例:

  •                 mv hello.txt hi.txt        将hello.txt改名为hi.txt
  • mv hi.txt sde/        将文件hi.txt移动到sde目录中
  • mv hi.txt sde/hello.txt    将hi.txt移动到sde目录中,并改名为hello.txt
  • mv sde/ sde1/        如果sde1目录不存在,将sde目录改名为sde1
  • mv sde/ sde1/        如果sde1目录存在,将sde目录移动到sde1目录中

    打包压缩命令:
tar:

文件进行打包、解包、压缩、解压


        语法:

 tar [-zcxvf] fileName [files]

  •  包文件后缀为.tar表示只是完成了打包,并压缩
  •  包文件后缀为.tar.gz表示打包的同时还进行压缩

        说明:

  • -z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
  •  -c:c代表的是create,即创建新的包文件
  •  -x:x代表的是extract,实现从包文件中还原文件
  • -v:v代表的是verbose,显示命令的执行过程
  •  -f:f代表的是file,用于指定包文件的名称

演示打包不压缩:

[root@bogon ~]# tar -cvf sde.tar sde2
sde2/
sde2/sde3/
sde2/sde/
[root@bogon ~]# ll
总用量 2272
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 4 root root      29 12月 28 18:15 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root   10240 12月 28 18:54 sde.tar
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# 

解压:

[root@bogon ~]# ll
总用量 2272
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root   10240 12月 28 18:54 sde.tar
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# tar -xvf sde.tar
sde2/
sde2/sde3/
sde2/sde/
[root@bogon ~]# ll
总用量 2272
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
drwxr-xr-x. 4 root root      29 12月 28 18:15 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root   10240 12月 28 18:54 sde.tar
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# 

演示将一个目录中的文件,全部打包。

[root@bogon sde2]# ll
总用量 0
drwxr-xr-x. 2 root root 6 12月 28 18:15 sde
drwxr-xr-x. 2 root root 6 12月 28 15:56 sde3
[root@bogon sde2]# tar -cvf all.tar ./*
./sde/
./sde3/
[root@bogon sde2]# ll
总用量 12
-rw-r--r--. 1 root root 10240 12月 28 19:00 all.tar
drwxr-xr-x. 2 root root     6 12月 28 18:15 sde
drwxr-xr-x. 2 root root     6 12月 28 15:56 sde3
[root@bogon sde2]# 

进行解压操作:

[root@bogon sde2]# ll
总用量 12
-rw-r--r--. 1 root root 10240 12月 28 19:00 all.tar
[root@bogon sde2]# tar -xvf all.tar
./sde/
./sde3/
[root@bogon sde2]# ll
总用量 12
-rw-r--r--. 1 root root 10240 12月 28 19:00 all.tar
drwxr-xr-x. 2 root root     6 12月 28 18:15 sde
drwxr-xr-x. 2 root root     6 12月 28 15:56 sde3
[root@bogon sde2]# 

压缩并打包:

[root@bogon ~]# tar -zcvf daoen.tar.gz sde2
sde2/
sde2/all.tar
sde2/sde/
sde2/sde3/
[root@bogon ~]# ll
总用量 2264
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
-rw-r--r--. 1 root root     228 12月 28 19:04 daoen.tar.gz
drwxr-xr-x. 4 root root      44 12月 28 19:02 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# 

解压缩:

[root@bogon ~]# tar -zxvf daoen.tar.gz 
sde2/
sde2/all.tar
sde2/sde/
sde2/sde3/
[root@bogon ~]# ll
总用量 2264
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
-rw-r--r--. 1 root root     228 12月 28 19:04 daoen.tar.gz
drwxr-xr-x. 4 root root      44 12月 28 19:02 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# 

-rw-r--r--. 1 root root     228 12月 28 19:04 daoen.tar.gz
drwxr-xr-x. 4 root root      44 12月 28 19:02 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# tar -zxvf daoen.tar.gz -C /usr/local
sde2/
sde2/all.tar
sde2/sde/
sde2/sde3/
[root@bogon ~]# cd /usr/local
[root@bogon local]# ll
总用量 0
drwxr-xr-x.  2 root root  65 12月 27 17:25 appjar
drwxr-xr-x.  2 root root   6 4月  11 2018 bin
drwxr-xr-x.  2 root root   6 4月  11 2018 etc
drwxr-xr-x.  2 root root   6 4月  11 2018 games
drwxr-xr-x.  2 root root   6 4月  11 2018 include
drwxr-xr-x.  9 root root 136 12月 27 13:39 jdk-21.0.1
drwxr-xr-x.  2 root root   6 4月  11 2018 lib
drwxr-xr-x.  2 root root   6 4月  11 2018 lib64
drwxr-xr-x.  2 root root   6 4月  11 2018 libexec
drwxr-xr-x. 10 root root 141 12月 27 14:30 mysql
drwxr-xr-x. 11 root root 151 12月 27 15:58 nginx
drwxr-xr-x.  2 root root   6 4月  11 2018 sbin
drwxr-xr-x.  4 root root  44 12月 28 19:02 sde2
drwxr-xr-x.  5 root root  49 12月 14 04:28 share
drwxr-xr-x.  2 root root   6 4月  11 2018 src
[root@bogon local]# 
    文本编辑命令:
vi/vim:

 vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本

        语法:

 vi fileName(要编辑的文件名)

        说明:

  • 1、vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。
  • 2、要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:

        yum install vim

下载vim编辑器:

      下载完成:

 vim:
            作用:

对文件内容进行编辑,vim其实就是一个文本编辑器

            语法:

vim fileName

 

 三个模式介绍:

从命令行模式,到低行模式 是 按的 Shift + : 

命令行模式的快捷键:

  • gg 定位到文本内容的第一行
  • G 定位到文本内容的最后一行
  • dd 删除光标所在行的数据
  • ndd 删除当前光标所在行及之后的n行数据
  • u 撤销操作
  • i或a或o 进入插入模式

操作演示:

刚刚执行的是 vim 1.txt 然后点击了回车,先是进入到了命令行模式:

我按一下 i a o 这三个其中一个,进入插入模式:

然后我们就可以输入内容了:

进入低行模式:我按的是 Shift + :

对文件进行保存:

也可以输入 x 退出并保存:

测试:

看看新内容是否在:

插入操作的,快捷操作的演示(命令行模式):

gg

G

dd

ndd 例如:2dd(一次直接删除 2行)5dd(一次直接删除5行)

u


      低行模式的快捷操作:

                  
            

:wq 保存并退出

:q! 不保存退出

:set nu 显示行号

:set nonu 取消行号显示

:n 定位到低n行,如 : 10 就是定位到第 10 行            
                

    低行模式,快捷操作演示:

q! 

看效果:

set nu 

set nonu

: n

查找命令:

        find:

在指定目录下查找文件


            语法:

 find dirName -option fileName

[root@bogon ~]# ll
总用量 2268
-rw-r--r--. 1 root root     100 12月 28 19:51 1.txt
-rw-------. 1 root root    1257 12月 14 04:31 anaconda-ks.cfg
-rw-r--r--. 1 root root     228 12月 28 19:04 daoen.tar.gz
drwxr-xr-x. 2 root root       6 12月 28 20:11 hello.java
drwxr-xr-x. 4 root root      44 12月 28 19:02 sde2
drwxr-xr-x. 3 root root      60 12月 28 18:02 sde6
-rw-r--r--. 1 root root 2307208 12月 27 09:57 tlias.log
[root@bogon ~]# find . -name *.java
./hello.java
[root@bogon ~]# 

[root@bogon ~]# cd /
[root@bogon /]# find /root/sde2/ -name *.java
/root/sde2/1.java
/root/sde2/2.java
[root@bogon /]# 

            举例:

  • find . –name *.java        在当前目录及其子目录下查找.java结尾文件
  • find /itcast -name *.java    在/itcast目录及其子目录下查找.java结尾的文件

        grep:

从指定文件中查找指定的文本内容


            语法:

 grep word fileName

指定精准查找:

[root@bogon ~]# grep Exception tlias.log 

可以发现,找到的都标红了。

忽略大小写的查找:

查找结果:


            举例:

  • grep Hello HelloWorld.java    查找HelloWorld.java文件中出现的Hello字符串的位置
  • grep hello *.java        查找当前目录中所有.java结尾的文件中包含hello字符串的位置

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Grafana告警发送至飞书配置指定at某人或所有人

1.问题描述 通过webhook向飞书机器人发送消息,根据飞书机器人官方文档,始终无法指定某个人或者所有人通知,后来发现是文档参数有问题。 文档地址:https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot 官方文档给…

UGUI:一个轻量级的TFTLCD彩色显示屏GUI库

目录 一、引言 二、移植说明 三、如何使用UGUI函数 2.1 UGUI函数介绍 2.2 窗口控件管理 2.3 如何建立一个按键 四、如何实现触摸控制 一、引言 UGUI是一个经过精心设计的轻量级TFT-LCD彩色显示屏GUI库,旨在为用户提供高效、稳定且易于使用的图形用户界面。该…

Spring基础IoC(控制反转)与DI(依赖注入)

1. Spring 基础 1.1 什么是Spring框架?它能带来那些好处? Spring 是一个开源的轻量级的 Java 开发框架,可以帮助开发人员更高效的进行开发,主要优势在于简化开发和框架整合。 Spring框架整合了很多模块,这些模块可以…

【Python排序算法系列】—— 选择排序

​ 🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 选择排序 过程演示: 选择排序实现代码: 分析选择排序&#xff1a…

Spring AOP—深入动态代理 万字详解(通俗易懂)

目录 一、前言 二、动态代理快速入门 1.为什么需要动态代理? : 2.动态代理使用案例: 3.动态代理的灵活性 : 三、深入动态代理 1.需求 : 2.实现 : 2.1 接口和实现类 2.2 提供代理对象的类 2.3 测试类 3.引出AOP : 四、总结 一、前言 第四节内容&…

学习笔记|电动汽车上CAN报文解析

电动汽车,以电池和电机系统取代了内燃机汽车的发动机系统,使得汽车上主要的结构和电气件发生了很大变化。在传统汽车上已经比较成熟的CAN总线技术,电动汽车仍然需要作出必要调整才能够使用。 1 电动汽车的CAN协议 常用车辆CAN总线通讯协议&a…

【数据结构】排序之插入排序

排序目录 1.前言2. 排序的概念及其运用2.1 排序的概念2.2 排序的运用2.3 常见的排序算法 3. 插入排序3.1 基本思想3.2 直接插入排序3.2.1 直接插入排序实现3.2.1.1 分析3.2.1.2 代码实现 3.3 希尔排序3.3.1 希尔排序实现3.3.1.1 分析3.3.1.2 代码实现 4. 附代码4.1 sort.h4.2 s…

【第七在线】为什么智能商品管理是对传统商品管理模式的颠覆?

智能商品管理确实在一定程度上颠覆了传统的商品管理模式。传统商品管理通常依赖于人工的经验和决策,而智能商品管理则利用人工智能和相关技术来提供更智能化和高效化的解决方案。 智能商品管理通过数据分析和预测能力,可以更准确地预测市场需求和销售趋…

AI智能分析网关V4区域人数超员算法模型的应用原理及使用场景

视频AI智能分析技术已经深入到人类生活的各个角落,与社会发展的方方面面紧密相连。从日常生活中的各种场景,如人脸识别、车牌识别,到工业生产中的安全监控,如工厂园区的翻越围栏识别、入侵识别、工地的安全帽识别、车间流水线产品…

医院绩效考核系统源码,java源码,商业级医院绩效核算系统源码

医院绩效定义: “医院工作量绩效方案”是一套以工作量(RBRVS,相对价值比率)为核算基础,以工作岗位、技术含量、风险程度、服务数量等业绩为主要依据,以工作效率和效益、工作质量、患者满意度等指标为综合考…

D9741 PWM控制器电路,定时闩锁、短路保护电路,输出基准电压(2.5V) 采用SOP16封装

D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。 主要特点:● 高精度基准电路 ● 定时闩锁、短路保护电路 ● 低电压输入时误操作保护电路 ● 输出基准电…

MAC运行Windows专用软件 CrossOver v23.7.1中文版 macOS

CrossOver v23.7.1中文版是一款系统兼容软件,让您可以在 Mac 和 Linux 系统上运行 Windows 应用,不必购买 Windows 授权,不必重启系统,不必使用虚拟机。通过 CrossOver, 您可以从 dock 直接启动 Windows 应用&#xff…

WEB 3D技术 three.js 色彩空间讲解

上文 WEB 3D技术 three.js 设置环境贴图 高光贴图 场景设置 光照贴图 我们讲了基础材质的各种纹理 但是 我们的图片 到了界面场景中 好像绿的程度有点不太一样了 这里的话 涉及到我们的色彩空间 他有两种 一种是线性的 一种是 sRGB类型的 线性呢 就是根据光照强度 去均匀分…

nodejs+vue+ElementUi农产品团购销售系统zto2c

目标是为了完成小区团购平台的设计和实现,在疫情当下的环境,方便小区业主购入生活所需,减小居民的生活压力 采用B/S模式架构系统,开发简单,只需要连接网络即可登录本系统,不需要安装任何客户端。开发工具采…

OrientDB使用教程:全面了解图数据库

图数据库在当今数据处理领域中扮演着越来越重要的角色,而OrientDB作为一种多模型的数据库,具有图数据库、文档数据库和对象数据库的特性,为应对不同场景提供了灵活的解决方案。本教程将简要介绍OrientDB的使用,包括基本概念、安装…

3-链表-删除链表的倒数第 N 个结点

这是链表的第三篇算法,力扣链接。 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1],…

为什么TCP会粘包

硬核图解|tcp为什么会粘包?背后的原因让人暖心 数据包报文格式(IP包、TCP报头、UDP报头) TCP,Transmission Control Protocol。传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP粘包是指发…

vue2中使用百度地图BMapGL

1、npm 命令安装 npm install vue-bmap-gl --save2、main.js 中文件引入 import VueBMap from vue-bmap-gl import vue-bmap-gl/dist/style.css VueBMap.initBMapApiLoader({// 百度的keyak:*********,// 这个密钥请使用自己注册的 }) Vue.use(VueBMap)3、页面调用 <temp…

一篇文章带你入门PHP魔术方法

PHP魔术方法 PHP 中的"魔术方法"是一组特殊的方法&#xff0c;它们在特定情况下自动被调用。这些方法的名称都是以两个下划线&#xff08;__&#xff09;开头。魔术方法提供了一种方式来执行各种高级编程技巧&#xff0c;使得对象的行为可以更加灵活和强大。以下是一…

SourceTree的安装和使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装&#xff1a;二、使用步骤1.获取地址2.放入sourceTree 3.点击推送 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 简单讲解一…