进阶学习——Linux系统认识学习命令

目录

一、基础知识

二、文件夹

三、认识Linux命令

1.认识Shell

2.命令

2.1命令执行的过程

2.1.1知识扩展

hash——缓存空间

2.2命令的分类

2.3命令的格式

通用的命令行使用格式

选项

参数/对象

举例

2.4编辑Linux命令行

2.5获得命令帮助的办法

2.5.1内部命令help

2.5.2命令的“--help”

2.5.3使用man命令阅读手册页

2.5.4info

四、Linux常用命令

1.查看当前的工作目录——pwd

print work directory——打印当前目录

2.cd——切换目录(文件夹)

2.1重点:*路径的表示*

 2.2路径表示示例:

2.3cd -  表示返回上一次的目录(但只有一次)

3.ls——显示当前文件夹下所有文件

五、Linux系统七大文件属性

六、拓展——挂载


Linux系统的优点

一切都是一个文件。容易看(包括硬件,文本,二进制,源代码)

系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)

当遇到复杂任务,通过不同功能用途的程序组合起来完成。 轻量级,一台服务 dhcp ip 数据库服务 网页

避免令人困惑的用户界面就是没有复杂的图形界面。

不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。

一、基础知识

root   #表示用户 
localhost #主机名
~   #家目录
#   #管理员用户
$   #普通用户
root #root的家目录  
opt #opt目录

[root@localhost ~]# 
[zhangsan@localhost root]$    普通用户
[zhangsan@localhost root]$ hostname
localhost.localdomain
[zhangsan@localhost opt]$ 


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

#重启:
reboot
init6
shutdown -r now


#修改语言
修改LANG变量实现中文语言提示
[root@localhost ~]# LANG=zh_CN.UTF-8
[root@localhost ~]# echo $LANG 
zh_CN.UTF-8
[root@localhost ~]# LANG=en_US.UTF-8
[root@localhost ~]# echo $LANG 
en_US.UTF-8

#修改颜色
[root@localhost ~]#vim /root/.bashrc
PS1='\[\e[1;34m\][\u@\h \W]#\[\e[0m\]'

[root@localhost ~]#source  /root/.bashrc


#查看时间
date


#修改时间
date -s "2022-09-15 12:00"

data

二、文件夹

文件夹名称 描述
bin 存放二进制文件(电脑可以直接运行的文件) 常用的ls命令 在bin文件夹内
dev 存放硬件设备(磁盘、光驱) 输入输出设备 (stdin输入、stdout输出)
home

“ ~ ”当前用户的家目录;每一个用户都会有一个家目录,存放用户的基本配置信息及个性化配置,存放用户自己的文档使用

home是存放家目录的地方,是家目录的上级目录

例,aa是家目录 a是home

一旦建立用户,会有一个同名的家目录诞生 在home下诞生

root用户:超级管理员的家目录是在根目录下的root

lib 存放可以被调用的库32位操作系统使用 (lib64  存放可以被调用的库64位操作系统使用 )
proc 内存环境中的程序状态(内存:临时保存、硬盘:永久保存)[在Linux中临时修改靠命令,永久修改需要写入文件]
boot 开机启动需要的文件,操作系统最重要的是内核,内核在boot (例,Linux中vmlinuz-3.10.0-693.el7.X86_64 是操作系统的内核)
etc 存放配置文件 (用户信息、密码信息、软件配置信息)
mnt 挂载点,空文件夹
opt 存放后续安装的软件,空文件夹
sbin 普通用户使用的二进制
tmp 存放临时文件
var 子目录;存放日志             /var/log
misc 光驱   光盘
net 网络
run 内存相关
sys 系统相关
usr 小根;存放根目录不想存放的;存放帮助信息
media 多媒体
srv 空文件夹

三、认识Linux命令

1.认识Shell

Linux系统中运行的一种特殊程序;

在用户和内核之间充当“翻译官”;

用户登录Linux系统时,自动加载一个Shell程序;

Bash是Linux系统中默认使用的Shell程序(文件位于/bin/bash

Shell是一类软件的总称

程序的定义:执行特定任务的一串代码

Shell执行翻译任务,将人类使用的高级语言(汉语、英语、java、python、go、html)翻译成二进制交给内核 内核再交给硬件执行(操作系统也是程序,管理调用硬件、操作系统拥有多种内核 )内核≈操作系统

无论是Windows还是Linux一旦登录系统必须加载一个翻译官

Linux用户一旦登录系统必须加载一个shell程序,那么这个程序就是/bin/bash/(使用 /bin/bash的原因是其功能比较全 ,常用的补全功能是bash的功能)

2.命令

命令的本质是一个程序,用一个程序必须得先安装这个程序,所有的命令都是程序

ls命令由代码构成,执行的任务是显示当前文件夹中的所有文件 = 程序 ;ls就是一个程序 ;type ls可以查看是ls程序内部还是外部

内部命令是/bin/bash的一部分,只要登录系统,内部命令直接就运行在内存中了

2.1命令执行的过程

执行命令的定义:可以理解为你和系统做了一个约定,有5个特殊的文件夹,如果外部命令在这5个特殊文件夹里就可以直接写程序的名字,然后调用,不用关注具体位置,如果程序不在规定的这5个文件夹,就需要将程序的位置写完整(从根开始描述程序的位置)

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

echo既是内部也是外部 ;内部命令的个数是61个;内部命令的个数是和shell类型有关

[root@localhost /]#type -a echo
echo 是 shell 内嵌
echo 是 /usr/bin/echo

命令执行的过程

  • 首先判断是内部还是外部命令,如果是内部命令直接执行
  • 如果是外部命令,先看缓存空间是否有,如果有按照缓存空间(hash)中的位置执行,如果缓存位置中没有找到直接报错
  • 如果第一次执行,去看五个文件夹是否有,如果有直接执行,如果没有则报错命令不存在

 延伸:如果输入命令,命令提示不存在

原因如下:

1.命令打错

2.命令没有安装

3.命令不在规定的路径下

4.运行过命令,但是命令的位置发生了改变

2.1.1知识扩展
hash——缓存空间

hash -d 加缓存里的命令 单独删除

hash -r 删除所有

将缓存的外部命令移到其他默认的目录中,无法再次使用,需要清掉hash值之后 ,才可以继续使用。

2.2命令的分类

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

2.3命令的格式

通用的命令行使用格式

命令的定义:命令是要你做什么。在 Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都 可以称为命令。

命令字   (空格)   [选项]  (空格)  [参数/对象]

进阶学习——Linux系统认识学习命令_第1张图片

命令字是整条命令中最关键的一部分;唯一

确定的一条命令

选项

定义:修饰命令,添加额外功能(ls显示当前文件夹下的所有文件;ls  -l 表示文件夹下文件的详细信息)

ls  (空格)-l  空格必须加!!!

1.短格式选项:使用“ - ”符号引导

2.长格式选项:使用“ -- ”符号引导

3.什么都不加

4.子命令    命令+子命令+子命令 例 nmcli

参数/对象

定义:代表对谁做(文件、文件夹/用户名)

如果不写默认当前文件夹或文件(用户名一定要加)

[root@localhost ~]#useradd gd

useradd代表命令       ;     gd代表参数/对象    其中选项省略了

举例

进阶学习——Linux系统认识学习命令_第2张图片

选项之间一般是没有顺序要求的,选项可以叠加,选项放在对象后面也可以

tips:如果想执行多种命令,用隔开

例 cd /mnt;ls 转到文件夹mnt并查看该文件夹下的文件

2.4编辑Linux命令行

快捷键 功能
Tab键 自动补齐(如果命令唯一,直接自动补全;如果不唯一,按两次显示所有可能 )
反斜杠“\” 强制换行
Ctrl+A 光标想跳转至行首
Ctrl+K 删除当前光标所在位置之后的
Ctrl+L 将光标移到顶行
“↑”“↓”上下键 回看执行过的命令
Ctrl+R 输入关键字查询命令,回车再次执行,左键显示在屏幕上
反斜杠举例
cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock



使得代码看得更舒服

2.5获得命令帮助的办法

2.5.1内部命令help

查看Shell内部命令的消息(help cd )

[root@localhost ~]# help echo
#内部命令查看帮助
echo: echo [-neE] [参数 ...]
    将参数写到标准输出。
    
    在标准输出上显示 ARG 参数后跟一个换行。
    
    选项:
      -n	不要追加换行
      -e	启用下列反斜杠转义的解释
      -E	显式地抑制对于反斜杠转义的解释
    
    `echo' 对下列反斜杠字符进行转义:
      \a	警告(响铃)
      \b	退格
      \c	抑制更多的输出
      \e	转义字符
      \f	格式提供
      \n	换行
      \r	回车
      \t	横向制表符
      \v	纵向制表符
      \\	反斜杠
      \0nnn	以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
    	0到3个八进制数字
      \xHH	以 HH (十六进制)为值的八比特字符。HH可以是
    	一个或两个十六进制数字
    
    退出状态:
    返回成功除非有写错误发生。
# -n 不换行显示
[root@localhost ~]# echo -n " 1 2 3"   
 1 2 3[root@localhost ~]# 
[root@localhost ~]# echo -n "123456";echo "123456"
123456123456
#  \b  删除前一个字符
[root@localhost ~]# echo -e " 1 2\b 3"      
 1  3
#\n换行
[root@localhost ~]# echo -e " 1\n 2\n 3"
 1
 2
 3
#tab键叫制表符 
[root@localhost ~]# echo -e " 1\t 2\t 3"    tab键叫制表符
 1	 2	 3
2.5.2命令的“--help”

适用于大多数Linux外部命令( ls -- help )——代表查看ls这个外部命令的详细信息手册

[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help
2.5.3使用man命令阅读手册页

使用“↑”“↓”方向键滚动一行文本

使用Page UP和Page Down键翻页

空格键是回到1页

按“Q”或者“q”键退出阅读环境

按“\”查看内容,并高亮标识,找到后按n键向下匹配  N键向上匹配

man手册(Manual)是一本书

进阶学习——Linux系统认识学习命令_第3张图片

区段1:用户指令、区段5:文件格式      (重点记忆) 

命令格式: man (序号,默认为1) 文件

man 1 命令 代表显示命令的用法

例,man 5 password  的解释为查看man手册的第五章节的内容;代表passwd文件的格式

[root@localhost ~]# man 5 passwd      
#查看第五章内容,第5章一般是配置文件格式详细解释

man手册是属于操作系统后天添加的,可以用mandb生成man手册

2.5.4info

info也可以查看相关的帮助信息

[root@localhost dev]# info ls

四、Linux常用命令

1.查看当前的工作目录——pwd

显示当前用户所在的工作目录的完整路径

代码格式:pwd

示例:

[root@localhost ~]#pwd
/root
print work directory——打印当前目录

2.cd——切换目录(文件夹)

2.1重点:*路径的表示*

绝对路径 相对路径

从根开始描述文件的位置 ;

有且唯一;

无论在哪里都可以准确找到某一个文件

从当前路径开始描述文件的位置 ;

有可能不唯一 ;

如果参照物变了,就找不到文件

在处理某一个文件之前(复制、移动、改名)必须先清楚该文件在哪个位置

代码格式:cd  

命令 效果
cd  什么都不加 若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd ~
cd -  到前一次目录

示例:

[root@localhost ~]# cd /etc/
代表切换到/etc目录
[root@localhost etc]# 
[root@localhost ~]# cd  
cd  什么也不加   是到当前用户的家目录
[root@localhost ~]# 
[root@localhost ~]# cd  ~
“  ~  ”  代表当前用户的家目录
[root@localhost ~]# 



家目录:存放用户个性化配置文件的地方

 2.2路径表示示例:

[zhangsan@localhost ~]$ pwd
查看当前所在目录位置
/home/zhangsan
当前目录所在位置/home/zhangsan
[zhangsan@localhost ~]$ cd   ../../opt
cd切换目录到/opt文件夹   第一个..代表home文件夹,第二个..代表根目录  
[zhangsan@localhost ~]$

2.3cd -  表示返回上一次的目录(但只有一次)

[root@localhost 1]#pwd
/opt/1
当前所在位置为/opt/1
[root@localhost 1]cd /opt/2
[root@localhost 2]cd -
使用cd - 命令
[root@localhost 1]cd -
/opt/1
退回到/opt/1文件夹
/opt/2
退回到/opt/2文件夹
相对路径的表现形式
表现形式 说明 示例
直接使用目录名或文件名 表示当前工作目录中的子目录、文件的位置 grub.conf
以一个点“ . ”开头 表示以当前的工作目录为起点 ./grub.conf
以两个点“ ..  ”开头 表示以当前目录的上一级目录(父目录)作为起点 ../vmlinuz
以“~用户名”形式开头 表示以指定用户的宿主目录作为起点 ~teacher

3.ls——显示当前文件夹下所有文件

生产环境中慎重直接使用,文件量过大会直接死机(有的服务器上的文件是千万级别)

代码格式:ls (空格)  [选项]   (空格)[文件或目录… ]

选项 说明
-l 长格式显示 显示文件属性    ll=ls  -l
-a 显示全部包括隐藏文件 (以.开头的文件)
-A 显示全部文件或隐藏文件,但不包括 . 和..
-d 仅列出目录本身,而不是列出目录内的文件数据
-h 人性化显示加个单位 (加单位)
-R 递归显示(从第一层文件显示到最后一层)
-t 时间排序
-r 倒序显示
--color 显示颜色 (蓝色代表文件夹、黑色代表普通文件、红色代表压缩文件)
-S 文件大小排序
-i 显示文件的inode号
[root@localhost opt]#ls -l
总用量 0
drwxr-xr-x. 2 root root 6 12月 19 14:56 2
drwxr-xr-x. 2 root root 6 12月 19 14:56 3
[root@localhost opt]#


d             代表文件的属性
rwxr-xr-x.    代表权限
2             代表硬连接个数
root          代表文件主人
root          代表属于哪个小组(属组)
6             代表文件大小
12月 19 14:56 代表文件时间
3             代表文件名



-a
[root@localhost opt]#ls -a
. .. 2 3 test
.  ..表示隐藏目录





-R
[root@localhost opt]#ls -R
.:
当前目录下显示文件夹2  3  aa  test
./2:
./3:
./aa:
2  3  aa  test
bb  test
bb文件夹显示以下文件
./aa/bb:
cc  test
cc文件夹显示以下文件
./aa/bb/bb:
dd
dd文件夹显示以下文件
./aa/bb/cc/dd:
[root@localhost opt]#






-t  -r

[root@localhost opt]#ll -t
总用量 0
drwxr-xr-x. 3 root root 28 12月 19 16:03 aa
drwxr-xr-x. 1 root root 0  12月 19 15:24 test
drwxr-xr-x. 2 root root 6  12月 19 14:56 2
drwxr-xr-x. 2 root root 6 12月 19 14:56 3
时间排序,按时间从最近到最远时间显示
[root@localhost opt]#ll -tr
总用量 0
drwxr-xr-x. 2 root root 6  12月 19 14:56 3
drwxr-xr-x. 2 root root 6  12月 19 14:56 2
drwxr-xr-x. 1 root root 0  12月 19 15:24 test
drwxr-xr-x. 3 root root 28 12月 19 16:03 aa
时间按倒序排列,按时间从远及近排列







-S
[root@localhost opt]#ll -S
总用量 0
drwxr-xr-x. 3 root root 28 12月 19 16:03 aa
drwxr-xr-x. 2 root root 6  12月 19 14:56 2
drwxr-xr-x. 2 root root 6  12月 19 14:56 3
drwxr-xr-x. 1 root root 0  12月 19 15:24 test
代表按照文件大小  28>6=6>0排列
[root@localhost opt]#ll -Sr
总用量 0
drwxr-xr-x. 1 root root 0  12月 19 15:24 test
drwxr-xr-x. 2 root root 6  12月 19 14:56 3
drwxr-xr-x. 2 root root 6  12月 19 14:56 2
drwxr-xr-x. 3 root root 28 12月 19 16:03 aa

代表按照文件大小 倒序排列 0<6=6<28排列







3.1.结合通配符 

“ ?”匹配文件名中的一个未知字符

“ * ”匹配文件名中的任意多个字符

3.1拓展

[root@loacalhost opt]#ls {1..10}.txt
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
将1-10每一个数字和txt组合


[root@loacalhost opt]#touch {1..10}.txt
[root@loacalhost opt]#ls
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
建立1-10的txt


其中{1..10}代表阿拉伯数字1.2.3.4.5.6.7.8.9.10
如果是[123],123仅代表单个数字字符

[root@loacalhost opt]#ls [123].txt
1.txt 2.txt 3.txt
代表1.2.3每个数字和txt相匹配


[root@loacalhost opt]#ls [0-9]
1 2 3 4 5 6 7 8 9
[0-9]代表单个字符
[root@loacalhost opt]#ls [0-9][0-9]
10
[0-9][0-9]代表两个字符




[root@loacalhost opt]#ls
a b c d e f
A B C D E F
[root@loacalhost opt]#ls[a-c]
a A b B c
[root@loacalhost opt]#ls[A-c]
A b B c
可以理解为取值范围[]两边都取





ls [^zhou]
表示除zhou以外的
    


[[:lower:]]一个小写字母


“ \ ”转义      表示原来的意思

\ *   =    *

面试题:显示当前文件夹下的文件,按时间排序倒序显示     ——      ls -tr

五、Linux系统七大文件属性

第一个字符 文件类型
“  -  ” 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
“  d  ” 目录,类似 Windows 系统中的文件夹
“  b  ”

块设备文件,就是保存大块数据的设备,比如最常见的硬盘

读写文件的时候是一整块一整块的读和写

“  c  ” 字符设备文件    一次只能录入一个字符 键盘
“  s  ” 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信(ip 端口号 传递消息 )系统程序之间交换信息可以依靠套接字
“  p  ” 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误(数据只能沿一个方向传输 Linux命令中丨 表示管道 )系统程序之间交换信息可以依靠管道符
“  l  ” 链接文件,类似 Windows 系统中的快捷方式

六、拓展——挂载

将系统中的文件夹和磁盘做上关联,使用文件夹就等于使用磁盘 (文件夹要空)

Linux唯一使用外来设备的方式

Windows有C盘、D盘、E盘有C根、D根

Linux只有一个/根

你可能感兴趣的:(学习)