一起学Linux(二)| Linux基础命令

在这里插入图片描述

二、Linux基础命令

2.1 Linux的目录结构

  1. Linux操作系统的目录结构

    在这里插入图片描述

    • Linux只有一个顶级目录,称之为:根目录
    • Windows系统有多个顶级目录,即各个盘符。
  2. / 在Linux系统中表示

    • 出现在开头,表示根目录;
    • 出现在后面的,表示层次关系。

2.2 Linux命令入门

2.2.1 Linux命令基础

什么是命令、命令行?

  • 命令:即Linux操作指令,是系统内置的程序,可以以字符化的形式去使用;
  • 命令行:即Linux终端,可以提供字符化的操作页面供命令执行。

Linux命令的通用格式?

command [-options] [parameter]
  • 命令本体,即命令本身;
  • 可选选项,控制命令的行为细节;
  • 可选参数,控制命令的指向目标。

语法中的[],表示可选的意思

2.2.2 ls命令入门

语法:

# 列出目录下的内容(文件/文件夹)
ls [-a -l -h] [Linux路径]
  • ls,不使用可选项和参数,直接使用ls命令本体,表示:以平铺的形式,列出当前工作目录下的内容

    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
    
  • ls -a,列出全部文件(包含隐藏的文件/文件夹)

    # 以.开头的,表示是Linux系统的隐藏文件/文件夹
    [mingdajiang@192 ~]$ ls -a
    .   .bash_history  .bash_profile  .cache   .dbus    Documents  .esd_auth      .local    Music     Public     Videos
    ..  .bash_logout   .bashrc        .config  Desktop  Downloads  .ICEauthority  .mozilla  Pictures  Templates
    [mingdajiang@192 ~]$ 
    
  • ls -l,以列表(竖向排列)的形式展示内容,显示更多信息

    [mingdajiang@192 ~]$ ls -l
    总用量 0
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Desktop
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Documents
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Downloads
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Music
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Pictures
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Public
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Templates
    drwxr-xr-x. 2 mingdajiang mingdajiang 6 98 18:36 Videos
    [mingdajiang@192 ~]$ 
    
  • 语法中的选项和参数可组合使用:ls -l -a/ls -a -l/ls -la/ls -al,表示同时应用-a-l的功能

  • ls -h,以易于阅读的形式,列出文件的大小,如K/M/G; -h必须搭配-l 使用ls -lh

    [mingdajiang@192 ~]$ ls -lh /
    总用量 24K
    lrwxrwxrwx.   1 root root    7 98 08:55 bin -> usr/bin
    dr-xr-xr-x.   5 root root 4.0K 98 09:17 boot
    drwxr-xr-x.  19 root root 3.2K 911 07:59 dev
    drwxr-xr-x. 143 root root 8.0K 911 07:59 etc
    drwxr-xr-x.   3 root root   25 98 09:17 home
    lrwxrwxrwx.   1 root root    7 98 08:55 lib -> usr/lib
    lrwxrwxrwx.   1 root root    9 98 08:55 lib64 -> usr/lib64
    drwxr-xr-x.   2 root root    6 410 2018 media
    drwxr-xr-x.   2 root root    6 410 2018 mnt
    drwxr-xr-x.   3 root root   16 98 09:04 opt
    dr-xr-xr-x. 181 root root    0 911 07:59 proc
    dr-xr-x---.   3 root root  151 98 09:18 root
    drwxr-xr-x.  41 root root 1.3K 911 08:00 run
    lrwxrwxrwx.   1 root root    8 98 08:55 sbin -> usr/sbin
    drwxr-xr-x.   2 root root    6 410 2018 srv
    dr-xr-xr-x.  13 root root    0 911 07:59 sys
    drwxrwxrwt.  23 root root 4.0K 911 08:22 tmp
    drwxr-xr-x.  13 root root  155 98 08:55 usr
    drwxr-xr-x.  21 root root 4.0K 98 09:17 var
    [mingdajiang@192 ~]$ 
    
2.2.3 home目录和工作目录

home目录?

每个Linux操作用户在Linux系统的个人账户目录,路径是/home/用户名。Linux系统的命令行终端,在启动的时候,默认会加载。

[mingdajiang@192 ~]$ pwd
/home/mingdajiang

工作目录?

Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端),默认设置的工作目录在用户的home目录。

2.3 cd/pwd

2.3.1 cd

源于Change Directory

语法:

# 切换工作目录
cd [Linux路径]
  • cd命令无需选项,只有参数,表示切换到那个目录下

    [mingdajiang@192 ~]$ cd Music/
    [mingdajiang@192 Music]$ 
    
  • cd命令直接执行,不写参数,表示回到用户的home目录

    [mingdajiang@192 Music]$ cd
    [mingdajiang@192 ~]$ pwd
    /home/mingdajiang
    [mingdajiang@192 ~]$ 
    
2.3.2 pwd

源于Print Work Directory

语法:

# 查看当前工作目录
pwd
  • 无选项、无参数,直接使用

    [mingdajiang@192 ~]$ cd /
    [mingdajiang@192 /]$ pwd
    /
    

2.4 相对路径/绝对路径/特殊路径符

2.4.1 相对路径/绝对路径

绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头

相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头

如我们现在的工作目录是

[mingdajiang@192 /]$ pwd
/
[mingdajiang@192 /]$ ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[mingdajiang@192 /]$ 

需要切换到home目录下

  1. # 绝对路径
    [mingdajiang@192 /]$ cd /home/
    [mingdajiang@192 home]$ pwd
    /home
    [mingdajiang@192 home]$ 
    
  2. # 相对路径
    [mingdajiang@192 /]$ cd home/
    [mingdajiang@192 home]$ pwd
    /home
    [mingdajiang@192 home]$ 
    
2.4.2 特殊路径符
  • . 表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
  • .. 表示上一级目录,比如:cd … 即可切换到上一级目录,cd …/… 切换到上二级的目录
  • ~ 表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录

2.5 mkdir

源于Make Directory

语法:

# 创建新的目录(文件夹)
mkdir [-p] Linux路径
  • Linux路径必填,表示要创建的文件夹的路径,相对路径/绝对路径都可

    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
    [mingdajiang@192 ~]$ mkdir test1
    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  Videos
    [mingdajiang@192 ~]$ 
    
  • -p可选,可以自动创建不存在的父目录,即创建连续多层级的目录

    [mingdajiang@192 ~]$ mkdir -p /home/mingdajiang/test1/a/b
    [mingdajiang@192 ~]$ ls /home/mingdajiang/test1/a
    b
    [mingdajiang@192 ~]$ 
    

2.6 文件操作命令

2.6.1 touch

语法:

# 创建文件
touch Linux路径
  • 无可选项,Linux路径必填,表示要创建的文件路径,相对路径/绝对路径/特殊路径符均可使用

    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  Videos
    [mingdajiang@192 ~]$ touch test.txt
    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test.txt  Videos
    [mingdajiang@192 ~]$ 
    
2.6.2 cat

语法:

# 查看文件内容
cat Linux路径
  • 没有可选项,Linux路径必填,表示被查看文件的路径,相对路径/绝对路径/特殊路径符均可用

    [mingdajiang@192 ~]$ cat test.txt 
    12345
    [mingdajiang@192 ~]$ 
    
2.6.3 more

语法:

# 查看文件内容,可翻页查看
more Linux路径
  • 没有可选项,Linux路径必填,表示被查看文件的路径,相对路径/绝对路径/特殊路径符均可用

    # 回车键,下一行
    # 空格键,翻页
    # Q/ctrl+C退出
    [mingdajiang@192 ~]$ more /etc/services
    
2.6.4 cp

源于 copy

语法:

# 复制文件/文件夹
cp [-r] 参数1 参数2
  • -r 选项,可选,用于复制文件夹使用,表示递归(复制文件夹必须使用 -r
  • 参数1,Linux路径,表示被复制的文件或文件夹
  • 参数2,Linux路径,表示要复制去的路径
[mingdajiang@192 ~]$ cp test.txt test1
[mingdajiang@192 ~]$ ls test1
a  test.txt
[mingdajiang@192 ~]$ 
2.6.5 mv

源于 move

语法:

# 移动文件/文件夹
mv 参数1 参数2
  • 参数1,Linux路径,表示被移动的文件或文件夹

  • 参数2,Linux路径,表示要移动去的路径,如果目标不存在,则进行改名

    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test.txt  Videos
    [mingdajiang@192 ~]$ mv test.txt t.txt
    [mingdajiang@192 ~]$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  Templates  t.txt  Videos
    [mingdajiang@192 ~]$ 
    
2.6.6 rm

源于 remove

语法:

# 删除文件/文件夹
rm [-r -f] 参数1 参数2......参数N
  • -r,用于删除文件夹
  • -f,表示force,强制删除(不会弹出提示确认信息)
    • 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
    • 所以一般普通用户用不到 -f 选项
  • 参数1,参数2…参数N表示要删除的文件夹/文件路径,空格隔开
  • 使用通配符做模糊匹配删除
    • 符号==*==,匹配任意内容,包含空
      • test*,表示匹配任何以test开头的内容
      • *test,表示匹配任何以test结尾的内容
      • *test*,表示匹配任何包含test的内容
[mingdajiang@192 ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test  Videos
[mingdajiang@192 ~]$ ls test/
t1.txt  t2.txt  t3.txt
[mingdajiang@192 ~]$ rm -r test/
[mingdajiang@192 ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[mingdajiang@192 ~]$ 

注意1:

# su - root 切换到root用户
[mingdajiang@192 ~]$ su - root
密码:

# 退出
[root@192 ~]# exit
logout
[mingdajiang@192 ~]$ 

注意2:

rm是一个非常危险的命令!

以下命令万万不可在root管理员用户下执行:

rm -rf /

rm -rf /*

就相当于Windows的C盘格式化!!!

2.7 which、find

2.7.1 which

Linux命令,本体就是一个个的二进制可执行程序

语法:

# 查看命令的程序文件存放在哪
which 要查找的命令
[mingdajiang@192 ~]$ which ls
alias ls='ls --color=auto'
        /usr/bin/ls
[mingdajiang@192 ~]$ 
2.7.2 find

按文件名查找文件

语法:

# 在指定目录下搜索指定文件
find 起始路径 -name "被查找的文件名"
[root@192 ~]# find / -name "test"
find: ‘/proc/45702’: No such file or directory
find: ‘/proc/45716’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/bin/test
/usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/ntb/test
/usr/lib/alsa/init/test
/usr/lib64/python2.7/test
/usr/lib64/python2.7/unittest/test
/usr/share/espeak-data/voices/test
/usr/src/kernels/3.10.0-957.el7.x86_64/drivers/ntb/test
/usr/src/kernels/3.10.0-957.el7.x86_64/include/config/test
/usr/src/kernels/3.10.0-957.el7.x86_64/lib/raid6/test
[root@192 ~]# 

使用通配符查找文件

  • test*,表示匹配任何以test开头的内容
  • *test,表示匹配任何以test结尾的内容
  • *test*,表示匹配任何包含test的内容
[root@192 ~]# find / -name "*test"
find: ‘/proc/49838’: No such file or directory
find: ‘/proc/49852’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied
/sys/power/pm_test
/sys/module/8250/parameters/skip_txen_test
/sys/module/sr_mod/parameters/xa_test
/usr/bin/test

按文件大小查找文件

语法:

# 按照文件大小搜索文件
find 起始路径 -size +|-n[kMG]
  • +/-,表示大于/小于
  • n,表示大小数字
  • kMG表示大小单位,k(小写)表示kb,M表示MB,G表示GB
[root@192 ~]# find / -size +100M
/proc/kcore
find: ‘/proc/62845’: No such file or directory
find: ‘/proc/62859’: No such file or directory
find: ‘/proc/62892/task/62892/fd/5’: No such file or directory
find: ‘/proc/62892/task/62892/fdinfo/5’: No such file or directory
find: ‘/proc/62892/fd/6’: No such file or directory
find: ‘/proc/62892/fdinfo/6’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/var/lib/rpm/Packages
/var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
/var/cache/yum/x86_64/7/updates/gen/filelists_db.sqlite
/var/cache/yum/x86_64/7/updates/packages/firefox-102.14.0-3.el7.centos.x86_64.rpm
/usr/lib/locale/locale-archive
[root@192 ~]# 

2.8 grep、wc、管道符

2.8.1 grep

语法:

# 从文件中通过关键字过滤文件行
grep [-n] 关键字 文件路径
  • -n,可选,表示在结果中显示匹配的行的行号
  • 关键字,必填,表示过滤的关键字,带有空格或特殊符号时,建议使用""将关键字包围
  • 文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入
[mingdajiang@192 ~]$ cat test.txt 
Hello World!
linux
windows
java python c go
[mingdajiang@192 ~]$ grep -n c test.txt 
4:java python c go
[mingdajiang@192 ~]$ 
2.8.2 wc

语法:

# 统计文件行数、单词数量
wc [-c -m -l -w] 文件路径
  • 不带可选项,显示的分别是:行数、单词数、字节数

    [mingdajiang@192 ~]$ cat test.txt 
    Hello World!
    linux
    windows
    java python c go
    [mingdajiang@192 ~]$ wc test.txt
     4  8 44 test.txt
    [mingdajiang@192 ~]$ 
    
  • -c,可选,统计bytes数量

    [mingdajiang@192 ~]$ wc -c test.txt
    44 test.txt
    [mingdajiang@192 ~]$ 
    
  • -m,可选,统计字符数量

    [mingdajiang@192 ~]$ wc -m test.txt 
    44 test.txt
    [mingdajiang@192 ~]$ 
    
  • -l,可选,统计行数

    [mingdajiang@192 ~]$ wc -l test.txt 
    4 test.txt
    [mingdajiang@192 ~]$ 
    
  • -w,可选,统计单词数量

    [mingdajiang@192 ~]$ wc -w test.txt 
    8 test.txt
    [mingdajiang@192 ~]$ 
    
  • 文件路径,表示被统计的文件,可作为管道符的输入

2.8.3 管道符

管道符:|将管道符左边命令的结果,作为右边命令的输入

[mingdajiang@192 ~]$ cat test.txt 
Hello World!
linux
windows
java python c go
[mingdajiang@192 ~]$ cat test.txt | grep -n pyth
4:java python c go
[mingdajiang@192 ~]$ 

2.9 echo、tail、重定向符

2.9.1 echo

语法:

# 在命令行输出指定内容
echo 输出的内容
  • 无需选项,直接跟输出的内容,复杂内容可以用""包围
[mingdajiang@192 ~]$ echo "fjoeihfddzkxjnc jZSD dad"
fjoeihfddzkxjnc jZSD dad
[mingdajiang@192 ~]$ 

反引号==``==

被其包围的内容,会被作为命令执行

[mingdajiang@192 ~]$ echo `pwd`
/home/mingdajiang
[mingdajiang@192 ~]$ 
2.9.2 重定向符
  • >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
  • >>,将左侧命令的结果,追加写入到符号右侧指定的文件中
[mingdajiang@192 ~]$ echo "hello linux" > test.txt 
[mingdajiang@192 ~]$ cat test.txt 
hello linux
[mingdajiang@192 ~]$ echo "windows" >> test.txt 
[mingdajiang@192 ~]$ cat test.txt 
hello linux
windows
[mingdajiang@192 ~]$ 
2.9.3 tail

语法:

# 查看文件尾部内容,跟踪文件的最新更改
tail [-f -num] Linux路径
  • -f,表示持续跟踪
  • -num,表示查看尾部多少行,不写默认10行
  • Linux路径,表示被跟踪的文件路径

窗口1:

[mingdajiang@192 ~]$ tail -f test.txt 
hello linux
windows

窗口2:

[mingdajiang@192 ~]$ ls >> test.txt 
[mingdajiang@192 ~]$ 

窗口1:

[mingdajiang@192 ~]$ tail -f test.txt 
hello linux
windows
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
test.txt
Videos

2.10 vi编辑器

vi\vim是visual interface的简称, 是Linux中最经典的文本编辑器

vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。

vi/vim编辑器的三种工作模式:

  1. 命令模式(Command mode)

    命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模式下,不能自由进行文本编辑。

  2. 输入模式(Insert mode)

    编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。

  3. 底线命令模式(Last line mode)

    以:开始,通常用于文件的保存、退出。

命令模式

语法:

# 编辑文件,vim兼容vi的全部功能
vi 文件路径
vim 文件路径
  • 如果文件路径不存在,则编辑新文件
  • 如果文件路径存在,则编辑已有文件

步骤:

  1. vim 文件路径,编辑文件,执行后进入命令模式
  2. 键盘i键,进入输入模式
  3. 输入完成,按esc键退回命令模式
  4. 在命令模式内,按:键,进入底线命令模式
  5. 在底线命令模式内,输入wq,保存并退出vi编辑器

常用快捷键:

模式快捷键描述
命令模式i在当前光标位置进入输入模式
命令模式a在当前光标位置 之后 进入输入模式
命令模式I在当前行的开头进入输入模式
命令模式A在当前行的结尾进入输入模式
命令模式o在当前光标下一行进入输入模式
命令模式O在当前光标上一行进入输入模式
命令模式esc任何情况输入esc都能回到命令模式
命令模式键盘上、键盘k向上移动光标
命令模式键盘下、键盘j向下移动光标
命令模式键盘左、键盘h向左移动光标
命令模式键盘右,键盘l向右移动光标
命令模式0移动光标到当前行开头
命令模式$移动光标到当前行结尾
命令模式pageup向上翻页
命令模式pagedown向下翻页
命令模式/进入搜索
命令模式n向下继续搜索
命令模式N向上继续搜索
命令模式dd删除光标所在行的内容
命令模式ndd删除当前光标向下n行
命令模式yy复制当前行
命令模式nyy复制当前行和向下n行
命令模式p粘贴复制的内容
命令模式u撤销修改
命令模式Ctrl+r反撤销
命令模式gg跳到首行
命令模式G跳到行位
命令模式dG当前行开始,向下全部删除
命令模式dgg当前行开始,向上全部删除
命令模式d$当前光标开始,删除到本行结尾
命令模式d0当前光标开始,删除到本行开头
底线命令模式:w仅保存
底线命令模式:wq保存并退出
底线命令模式:q仅退出
底线命令模式:q!强制退出
底线命令模式:set nu显示行号
底线命令模式:set paste设置粘贴模式

命令 --help 查看指定命令帮助

man 命令 查看指定命令手册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值