linux命令精讲

linux命令精讲linux基础知识 linux的优点 基础知识 家目录:存放当前用户个性化配置信息的文件夹,是当前用户对自己家目录的最高权限 超级管理员的家目录: /root 普通用户的家目录:/home/下面同名的

linux基础知识

linux的优点

1. 一切都是一个文件
2. 系统中拥有小型,单一用途的程序
3. 当遇到复杂任务,通过不同功能用途的程序组合起来完成
4. 避免令人困惑的用户界面就是没有复杂的图形界面
5. 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型

基础知识

image.png

   🎈  root         表示用户 
   🎈  localhost    主机名
   🎈  ~            家目录

家目录:存放当前用户个性化配置信息的文件夹,是当前用户对自己家目录的最高权限

  • 超级管理员的家目录: /root
  • 普通用户的家目录:/home/下面同名的文件夹

image.png

  🎈  # 管理员用户
  🎈  $            普通用户

[root@localhost ~]# su lilili

📍表示为从管理员用户root切换到普通用户lilili

从切换用户就可以看出来符号从#变成了$号,这就代表了我们的权限不一样了

image.png

关机命令:

  1. halt #立刻关机
  2. poweroff #立刻关机
  3. shutdown -h now #立刻关机(root用户使用)
  4. shutdown -h 10 #10分钟后自动关机

重启命令:

  1. reboot
  2. init6
  3. shutdown -r now

linux命令精讲

shell

📌shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

📌shell的作用:把人类的高级语言翻译成二进制语言

📌shell有哪些:

  • bash(centos7默认的软件)
  • sh
  • nologin等(最特殊)nologin任何系统不让用

📍注意点:bash放在:/bin/bash目录里,bash既是内部命令也是外部命令

shell与内、外部命令

📌shell 分为内部命令和外部命令,一般先执行内部命令,hash 再执行外部命令(别名最大)

📌别名>内部命令>hash>外部命令

内部命令 外部命令
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分 属于Shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shell加载后才能执行

linux执行命令的过程:

1. 绝对路径下的执行程序
2. 先看别名,如果有别名,直接执行
3. 再区别是内部命令还是外部命令,内部命令直接执行
4. 外部命令首先看hash表,表中直接执行,表中有但是找不到,直接报错
5. 没有hash,回去$PATH路径下的文件夹去找,找到执行,找不到报错
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/root/bin
    在这5个文件夹中寻找

外部命令存放于echo $PATH 中,在这个表中一个一个找,找到为止,找不到就报无命令

image.png

区分内部命令和外部命令

image.png

使用type这个命令区分

[root@localhost ~]# type 命令

命令格式

  • 在 Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都 可以称为命令。
  • 严格来说,命令通常只代表实现某一类功能的程序的名称。

格式:命令字 空格  [选项] 空格 [参数]

📍注意点:命令和选项还有参数之间一定要有空格(不限制数量,但是必须要有)

  • 命令字 是整条命令中最关键的一部分 唯一确定
  • 选项 短格式选项:使用“-”符号引导 通常 一个字母 长格式选项:使用“–”符号引导 通常完整的单词
  • 参数 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个

拓展:; 可以隔开命令,执行多个命令

编辑命令时可以使用的一些快捷键

快捷键 功能
Tab 键 自动补齐(两次可以显示所有选项)
反斜杠“\” 强制换行或转义
Ctrl+a 光标移到最前
Ctrl+e 或 end 键 光标移到最后
Ctrl+U 清空至行首不包括当前光标处的 字符
Ctrl+K 清空至行尾包括当前光标处的字符
Ctrl+w 从当前光标删除到开头
ALT+d 从当前光标删除末尾
Ctrl+l 清屏
Ctrl+c 取消本次命令编辑
Ctrl+s/Ctrl+q 锁屏/解锁
向上下箭头 回看执行过的命令

命令的帮助

当我们不知道有时候不知道该怎么使用什么命令时,可以获得命令的帮助

help

内部命令使用help

[root@localhost /]# help

image.png

–help

外部命令使用–help

  [root@localhost /]# ls --help

📌可以查看ls这个命令的用法

image.png

man

man是一个手册,共有九个章节,我们常用的是区间1和区间5

区间 分类
区间1 用户指令
区间2 系统调用
区间3 程序库调用
区间4 设备
区间5 文件格式 shadow passwd fstab
区间6 游戏
区间7 杂项
区间8 系统指令
区间9 内核内部指令
[root@localhost /]# man man

📌按q退出man手册5

image.png

info

[root@localhost /]# info ls

📌可以查看ls这个命令的信息

📌按q或者ctrl+c退出

image.png

目录操作

pwd(print work directory)

当你不知道目前处于什么路径时,可以用该命令查看当前路径

  [root@localhost pam.d]# pwd

📌说明现在处于根目录下的etc这个文件夹下的pam.d中

image.png

pwd -P

可以查看软链接的源路径

  [root@localhost dd]# pwd -P

📌用pw显示示的是当前路径,加上-P就是显示的源路径

image.png


cd(change directory)

该命令用来切换所在的文件夹(目录)

[root@localhost dd]# cd /etc

从dd文件夹切换到了etc文件夹

image.png

cd ~和单独使用cd

代表去往当前用户的家目录

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

输入这两个命令之后用pwd查看当前路径,我们使用的是root管理员登录,所以去往的是家目录就是root文件夹

image.png

cd ./和cd ../

  • ./ 表示以当前的工作目录作为起点

  • ../ 表示以当前目录的上一级目录(父目录)作为起点

    [root@localhost ~]# cd ./
    

现在还是在当前目录下

  [root@localhost ~]# cd ./

现在去往了root的上级目录根目录那边

image.png

cd –

返回上一次所在目录(只有一次有效)

[root@localhost mnt]# cd -

原本我们在opt切换到mnt,当输入cd -这个命令后就切换到了之前所在的opt下

image.png

绝对路径和相对路径

  • 绝对路径:从根目录开始写路径,唯一的,不会出错,以/开始的路径
  • 相对路径:不是从根目录开始写路径,不唯一会有重复的,不以/开始的路径

我们从opt下进入到该目录之下的rh用了两种方法:

  1. 绝对路径:第一个/表示根目录,之后的/表示分隔符,意思是这个目录的名字已经输完, /opt/rh就表示去往根目录之下的opt目录下的rh
  2. 相对路径:./rh表示去往当前目录(也就是opt目录)下面的rh目录

image.png

小结

命令 效果
cd 和cd ~ 切换到当前用户的家目录
cd ./ 当前目录
cd ./ / 上级目录
cd – 返回上一次所在目录

ls(list)

列出当前文件夹下所有文件夹,基础功能不包括隐藏文件

🎈格式:ls [选项] [文件或目录… ]

📍注意点:ls命令通常都是几个选项一起使用,使用单个命令没有意义

 [root@localhost ~]# ls

image.png

-a

显示所有文件包括隐藏文件,也包括.(当前文件)和..(当前文件夹的上级文件)

[root@localhost ~]# ls -a

可以看出加上-a这个选项之后看到了以.和..文件还有隐藏文件

image.png

-A

显示所有文件不包括隐藏文件,不包括.(当前文件)和..(当前文件夹的上级文件)

[root@localhost ~]# ls -A

可以看出加上-A这个选项之后看到了隐藏文件但是没有.和..文件

image.png

-l

长格式显示,显示详细信息

[root@localhost ~]# ls -l

可以看出加上-l这个选项之后可以看到每个文件的详细信息

image.png

[root@localhost ~]# ll

可以直接用ll这个指令代替ls -l指令

image.png

-h

人性化显示文件大小

和-l这个命令一起使用的效果:

[root@localhost ~]# ls -lh

可以看出加上h这个选项配合-l之后,能更加人性化的显示出了文件的大小

image.png

-d

只显示当前文件夹,而不是列出目录内的文件数据

[root@localhost ~]# ls -d

可以看出加上-d之后显示出的是当前文件,之前我们有提到过.就是当前文件夹

image.png

-l、-d、-h配合使用

表示人性化的显示该文件夹的具体信息

[root@localhost ~]# ls -ldh

image.png

-R

递归显示该目录及该目录的子目录下的所有内容

[root@localhost ~]# ls -R

可以看出加上-R之后,显示出的文件时一层一层显示的

image.png

-t

以时间排序(默认把最新的方最下面)

和ll指令一起使用的效果:

[root@localhost ~]# ll -t

可以看出加上-t之后,是按时间排序的

image.png

-r

倒叙排序

和ll -t指令一起使用的效果:

[root@localhost ~]# ll -tr

可以看出加上-r之后,排序就相反了

image.png

-S

以文件容量大小排序(默认最大的在最上面)

和ll指令一起使用的效果:

[root@localhost ~]# ll -S

可以看出加上-S之后,是按容量大小排序的

image.png

这个选项也可以和-t一起使用:

[root@localhost ~]# ll -Sr

可以看出加上-r之后,排序就相反了

image.png

-i

显示文件的inode号

[root@localhost ~]# ls -i

可以看出输入-i这个选项后,显示出了indoe号

image.png

indoe号

是文件的身份号,每生成一个文件,系统会分配给文件一个indoe号,indoe号是可以被用完的,用完之后就不可以再创建文件,需要把别的文件删除才能再创建

文件类型

文件类型有7种,第一个字符代表了该文件的类型

第一个字符 文件类型
普通文件
d 文件夹
c 字符文件(一个字符一个字符读取)
p 管道文件(单向传输,单工)
b 块设备(硬盘)
s 套接字(里面有 ip地址和端口号,传递信息)
l 链接文件(类似 Windows 系统中的快捷方式)

例子:

image.png -rw-r–r–. 1 root root 0 9月 20 16:32 aa

  1. -:代表文件属性:普通文件
  2. rw-r–r–:权限
  3. 1:硬链接
  4. root:拥有者
  5. root:拥有组
  6. 0:代表文件大小
  7. 9月 20 16:32:代表创建文件的时间(最后一次使用的时间)
  8. aa:文件名

📍拓展:关于 rw-r–r–

rw- (创建者) r–(所属组) r–(其他)

权限:可读 可写 可执行

r    可读
w    可写
x    可执行
- 没有该权限

通配符

ls不可以单独使用,需要和通配符配合使用

🎈通配符作用:匹配文件的名字,去模糊查找文件

代表匹配任意一个字符

[root@localhost opt]# ls ?

可以看出这个命令显示的是只有一个数的文件名,不显示超过1个字符的文件名 image.png

[root@localhost opt]# ls ??

输入两个?就代表只显示两个字符的文件,其他的就不显示了

image.png

*

匹配所有非隐藏的文件,无论字符多长多短

通常需要配合使用

[root@localhost ~]# ls *.txt

这个命令的意思是显示所有以.txt结尾的文件

image.png

[root@localhost ~]# ls .*

这个命令的意思是显示所有以.开头的文件

包括了..(上层目录)中的文件

image.png

{1..10}、{a..z}、{A..Z}
[root@localhost opt]# ls {1..10}

这个命令的意思是显示字符1-10中任意一个字符的文件

image.png

[root@localhost opt]# ls {a..z}

这个命令的意思是显示a-z中任意一个字符的文件

image.png

[root@localhost opt]# ls {A..Z}

这个命令的意思是显示A-Z中任意一个字符的文件

image.png

[456]、[a-z]、[A-Z]
[root@localhost opt]# ls [456]

取其中之一有就显示没有也无所谓

[456]取值范围:此处括号里值代表一个字符,就是4或者5或者6

image.png

要注意区分这[a-z]、[A-Z]的取值范围

[root@localhost opt]# ls [a-z]

[a-z]的取值范围是:a-z,没有Z

[root@localhost opt]# ls [A-Z]

[A-Z]的取值范围是:A-Z,没有a

image.png

[^love]

匹配列表中的所有字符以外的字符

[root@localhost opt]# ls [^love]

这个命令的意思是除了有love这四个字符的,其他都显示

image.png

小结

选项总结

选项 作用
-a 显示所有文件包括隐藏文件 也包括 .(当前文件) ..(当前文件夹的上级文件)
-A 显示所有文件或隐藏文件 不包括 .(当前文件) ..(当前文件夹的上级文件)
-l 长格式显示,显示详细信息 ls -l=ll
-h 人性化显示当前文件夹
-d 只显示当前文件夹,而不是列出目录内的文件数据
-R 递归显示所有文件
-t 以时间排序(默认把最新的方最下面)
-r 倒叙排序
-i inode 文件的编号(能用完,需要删除没用的)
-S 以文件容量大小排序(默认最大的在最上面)

alias

将一些很长的命令 自定义成简单好记忆的命令

\转义符:代表使用原来命令的意思(如果取的别名和别的命令重复,会让临时用一次别的命令的作用)

🎈格式:alias 自定义命令=’原始命令’

[root@localhost ~]#alias san='hostnamectl set-hostname'

表示给原始命令hostnamectl set-hostname取了一个新名字san

hostnamectl set-hostname命令的意思是给主机改名字, 我们给这个命令取了别名之后,就可以直接使用别名作为这个命令使用

image.png

  [root@localhost ~]# alias

可以查看有哪些别名

image.png

 [root@localhost ~]# unalias

取消别名

取消了别名之后可以看出我们在输入san这个命令会显示找不到命令的

image.png


du

看当前所在文件夹的总磁盘占用量,也统计隐藏文件的大小

🎈格式:du [选项] [文件夹]

[root@localhost opt]# du /opt

显示了每一个文件的大小

image.png

-a

 [root@localhost opt]# du -a /opt

每一个文件单独列出来

image.png

-b

[root@localhost opt]# du -s /opt

当前文件夹的总大小 image.png

📍注意点:-a和-s不可以同时使用

-h

[root@localhost opt]# du -h /opt

以人性化的方式显示

image.png

-d

[root@localhost ~]# du -d 3

显示到第几层文件或目录

image.png

–exclude

不计入统计

[root@localhost opt]# du --exclude=*.txt

统计时排除以txt结尾的

image.png

du和ls区别

  • ls:看到的是真实大小
  • du:统计的是当前文件占磁盘的大小,不足4k按4k算

mkdir

格式:mkdir [选项] 目录位置及名称

[root@localhost opt]# mkdir a b c d

在opt文件夹下及创建了a b c d 四个文件夹

image.png

-p

递归创建

[root@localhost opt]# mkdir -p a/bb/cc

在a文件夹下面建立一个bb文件夹,在bb文件夹下面建立一个cc

image.png

-v

显示建目录的过程

[root@localhost opt]# mkdir -v bbb

会告诉你已经创建了一个叫bbb目录

image.png


touch

  1. 当文件不存在时,直接新建该文件,并且该文件是空文件

  2. 当文件已存在,会刷新该文件的时间戳

    [root@localhost opt]# touch abc abcd
    

image.png

ln(创建文件链接)

有两种方式:

  1. 软连接:类似于windows里快捷方式,软连接,符号连接,会指向原来的文件ln(link)
  2. 硬连接 同一个文件取不同的名或者叫多个名字,不支持文件夹,创建一个连接数加一,多路径访问

📍注意点:

  • 加-s是软连接 符号连接
  • 不加-s是硬连接
  • 只能使用绝对路径

软连接

格式:ln -s 源文件路径 目标文件路径

[root@localhost mnt]# ln -s /opt/aaa /mnt/ccc

建立一个opt目录下的aaa目录软链接到mnt目录,并取名为ccc(也可以不取名,会保留原名aaa)

image.png

硬链接

格式:ln 源文件路径 目标文件路径

[root@localhost mnt]# ln /opt/11 /mnt/111

建立一个opt目录下的11目录软链接到mnt目录,并取名为111(也可以不取名,会保留原名11)

image.png

区别

对比项 硬链接 软链接
本质 本质是同一个文件 本质不是同一个文件
inode(身份证号) 相同 不同
连接数 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 删除,新建都不会改变
文件夹 不支持 支持
删除源文件 只是链接数减一,但链接文件的访问不受影响 无法访问连接文件
文件
类型 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同(指向硬盘上的同一个文件) 源文件的路径的长度

cp(copy)

复制文件或目录

格式:cp (需要复制的文件或目录)(复制的地方,可以改名,可以不改名)

[root@localhost mnt]# cp /opt/11 /mnt/123

将opt目录下的11复制到mnt目录下并取名123(也可以不取名,会保留原名11)

image.png

-i

覆盖目标同名文件或目录时提醒用户确认

[root@localhost mnt]# cp -i /opt/11 /mnt/123

复制时有同名的文件会提醒是否覆盖

image.png

-f

覆盖目标同名文件或目录时不进行提醒,直接强制复制

[root@localhost mnt]# cp -f /opt/11 /mnt/123

第一次我们输入指令时系统提示了是否覆盖,是因为系统把cp -i设置了别名cp,默认都是需要提醒的,系统执行命令时是先执行别名命令,所以会有提示,这个时候我们用\反斜杠这个符号暂时使用一下原本的命令,就会发现覆盖没有提醒了

image.png

-p

复制时保持源文件的权限、属主及时间标记等属性不变

[root@localhost opt]# cp -p /home/lilili/kkk.txt /opt/kkk.txt

可以看到kkk这个文件在lilili这个用户的家目录下,拥有者和拥有组都是lilili,我们使用了-P之后就会保留kkk原文件的拥有者和拥有组

image.png

-a

完整保留所有的信息包括连接文件(要用绝对路径)

[root@localhost mnt]# cp -a /mnt/aaa1 ./aaa2

将连接文件复制到当前文件夹,完整保留了连接文件的属性

image.png

-r

复制目录时必须使用此选项,表示递归复制所有文件及子目录

[root@localhost mnt]# cp -r /opt/aa ./aa1

有-r才能复制成功

image.png


rm

删除文件

🎈格式:rm [选项] 要删除的文件或目录

  • -f、强制

  • -i、交互

  • -r 递归(删除目录需要)

    [root@localhost opt]# rm -rf /opt/aa
    

删除了opt下的aa文件

image.png

mv

移动 改名

如果路径不一样就是移动, 如果路径相同就是改名(只能一个个改)

🎈格式:mv [选项] … 源文件或目录… 目标文件或目录 单个文件

[root@localhost opt]# mv /opt/22 /mnt/221

image.png

查找文件

which

用来找命令 搜索的范围由PATH决定:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 在这5个文件夹中寻找

[root@localhost opt]# which ls

找ls这个命令的路径在哪儿 image.png

locate

通过数据库找文件,速度快,找常年不动的文件

[root@localhost opt]# locate /etc/*.conf

查找etc下以.conf结尾的文件

image.png

find

命令的特点:

  • 精确查找
  • 实时查找 遍历(慢)
  • 支持查找条件较

格式:find [选项]… [查找路径] [查找条件] [处理动作]

  • 查找路径:指定具体目标路径;默认为当前目录

  • 查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件

  • 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)

  • 查找条件

    关键字 说明
    -name 根据目标文件的名称进行查找,允许使用“*”及“?”通配符必须加上” “
    -iname 不区分名字的大小写
    -size 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB(在没有+ -的情况下写的越小越好)
    -user 根据文件是否属于目标用户进行查找
    -type 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
    -a 和,可以省略
    -o
    -inum 根据文件inode号查找
    -perm 按文件权限查找
    -maxdepth level 将你的文件以分级的形式查找
    -mindepth level 将你的文件以分级的形式查找
    -mtime 时间
    -empty 空目录
    -nouser 无主用户,用户被删除
  • 处理动作

    选项 作用
    -print 默认,不需要输入
    -ls 长格式
    -delete 删除
    -ok 执行一次询问一次
    -exec 直接处理,不询问

find 命令的结合使用

[root@localhost etc]# find /data/ -mtime 30 -type f -name "*.log" -exec rm -rf {} \;

找到data目录下30天左右的以.log结尾的普通文件并删除

image.png

总结

linux命令可以结合使用,单个命令也可以配合不同的选项,要善用通配符,通配符需要加上英文模式下的双引号,linux都需要英文模式下输命令,以免影响操作

今天的文章linux命令精讲分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19660.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注