一、Shell 命令基础
Linux 操作系统的 Shell 作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言系统。
Shell 是用户和 Linux 内核之间的接口程序,如果把 Linux 内核想象成一个球体的中心,Shell 就是围绕内核的外层。当从 Shell 或其他程序向 Linux 传递命令时,内核会做出相应的反应。
(本期内容相对比较基础和简单,故不做过多说明,大家通过截图自行理解)
1、Shell 简介
Shell 是一个命令语言解释器,它拥有自己内建的 Shell 命令集,Shell 也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都是先由 Shell 解释再传给 Linux 核心。
2、Shell 命令格式
(1)Shell 命令的基本格式
command [选项][参数]
# command 为命令名称
# [选项]表示可选,是对命令的特别定义,以连接符 “-” 开始,多个选项可以用一个连接符连接起来,有些命令不写选项和参数也可以执行。
# [参数]为跟在可选项后的参数,或者是command的参数,参数可以是文件,也可以是目录,可以没有,也可以有多个,有些命令必须使用多个参数。
# command [选项][参数]等项目之间以空格隔开,无论有几个空格,Shell 都视为一个空格。
3、显示系统信息命令
(1)who——查看用户登录信息
ymliu@linuxserver:~$ who
ymliu pts/1 2024-03-05 14:20 (192.168.11.219)
ymliu@linuxserver:~$ who -a #显示所有用户的信息
系统引导 2024-02-18 10:34
登录 tty1 2024-02-18 10:35 903 id=tty1
运行级别 5 2024-02-18 10:35
pts/0 2024-03-05 15:00 395290 id=ts/0 终止=0 退出=0
ymliu + pts/1 2024-03-05 14:20 . 393961 (192.168.11.219)
pts/2 2024-03-01 17:22 306784 id=ts/2 终止=0 退出=0
pts/3 2024-03-01 16:38 309422 id=ts/3 终止=0 退出=0
pts/4 2024-02-29 17:30 283791 id=ts/4 终止=0 退出=0
pts/5 2024-02-28 11:45 250739 id=ts/5 终止=0 退出=0
pts/6 2024-02-28 17:29 247342 id=ts/6 终止=0 退出=0
pts/7 2024-02-28 11:13 252432 id=ts/7 终止=0 退出=0
(2)whoami——显示当前操作用户
ymliu@linuxserver:~$ whoami
ymliu
ymliu@linuxserver:~$
(3)hostname/hostnamectl——显示或设置当前系统的主机名
ymliu@linuxserver:~$ hostname
linuxserver
ymliu@linuxserver:~$ hostnamectl
Static hostname: linuxserver
Icon name: computer-desktop
Chassis: desktop
Machine ID: b63dd4601b294f7db05b93c57ba360b1
Boot ID: 5f01ad8b216949a9a4016ec51bf3d775
Operating System: Ubuntu 22.04.2 LTS
Kernel: Linux 5.15.0-92-generic
Architecture: x86-64
Hardware Vendor: Dell Inc.
Hardware Model: Precision T1700
ymliu@linuxserver:~$ hostnamectl set-hostname mycomputer
==== AUTHENTICATING FOR org.freedesktop.hostname1.set-static-hostname ===
设定静态本地主机名或美观主机名需要认证。
Authenticating as: ymliu
Password:
==== AUTHENTICATION COMPLETE ===
ymliu@linuxserver:~$ bash
ymliu@mycomputer:~$ hostname
mycomputer
ymliu@mycomputer:~$
(4)date——显示时间/日期
ymliu@linuxserver:~$ date
2024年 03月 05日 星期二 16:00:40 CST
ymliu@linuxserver:~$
(5)cal——显示日历
ymliu@linuxserver:~$ cal #部分系统默认不安装,可使用apt install ncal 命令安装
三月 2024
日 一 二 三 四 五 六
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
ymliu@linuxserver:~$
(6)clear——清除屏幕
4、Shell 使用技巧
(1)命令和文件名的自动补齐功能
Linux 操作系统中的命令有许多实用的功能,下面介绍自动补齐功能。在命令行模式下,输入字符后,按两下 “Tab” 键,Shell 就会列出以这些字符开始的所有可用命令。如果只有一个命令被匹配到,则按一次 “Tab” 键会自动将其补全。
ymliu@linuxserver:~$ cd com<Tab>
comaaa/ compose/
ymliu@linuxserver:~$ cd Dockerfiles/
(2)历史命令
若要查看最近使用过的命令,则可以在终端中执行 history 命令。
执行历史命令最简单的方法就是利用上下方向键,可以找回最近执行过的命令,减少输入命令的次数,在需要使用重复执行的命令时非常方便。命令文件一般存在当前用户目录下的 .bash_history 文件中。
ymliu@linuxserver:~$ history # 直接使用这个命令会有很多内容,可以使用 history n n为数字。
671 ls
672 cd web
...
1668 mkdir comaaa
1669 ls -al
1670 history
ymliu@linuxserver:~$
ymliu@linuxserver:~$ history 5 # 只显示最近 5 个历史命令
1667 ls
1668 mkdir comaaa
1669 ls -al
1670 history
1671 history 5
ymliu@linuxserver:~$
ymliu@linuxserver:~$ !1671 执行历史命令输入 “!n” n为历史命令前的序号
history 5
1667 ls
1668 mkdir comaaa
1669 ls -al
1670 history
1671 history 5
ymliu@linuxserver:~$
(3)命令别名
用户可以为某有一个复杂的命令创建一个简单的别名,当用户使用这个别名时,系统就会自动地找到并执行这个别名对应的真实命令,从而提高工作效率。
ymliu@linuxserver:~$ alias # 执行不加任何参数的 alias 命令
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
ymliu@linuxserver:~$
(4)命令帮助
由于Linux 操作系统的命令以及选项和参数太多,所以建议用户不要去费力记住所有命令的用法,实际上也不可能全部记住,借助Linux 操作系统提供的各种帮助工具,可以很好的解决此类问题。以下几种方式都可以查询命令。
二、Linux 文件及目录管理
文件系统是 Linux 操作系统的重要组成部分,文件系统中的文件是数据的集合,文件系统不仅包含文件中的数据,还包含文件系统的结构,所有 Linux 用户和程序看到的文件、目录、软链接及文件保护信息等都存储在其中。
1、Linux操作系统的目录结构
Linux 操作系统安装完成以后,会自动建立一套完整的目录结构,虽然各个 Linux 发行版本之间有一些差异,但是基本上都会遵循传统 Linux 操作系统建立的目录的方法,即最底层的目录称为根目录,用 “/” 表示,Linux 操作系统的主要目录结构如下:
- 根目录
Linux文件系统的根目录是“/”。在Linux中,“/”表示最大的分类,所有的目录结构都是从“/”开始。所有的一级目录都包含在根目录下。 - /bin目录
/bin目录存储了一些最基本的Linux命令和二进制文件,例如cat,cp,ls,mkdir等。 - /etc目录
/etc目录包含了所有的系统配置文件。通常这些文件可以用来配置硬件,网络等等。例如,/etc/passwd 来存储用户的信息。 - /home目录
/home目录是所有已安装的用户的家目录。默认情况下,每创建一个用户,就会在/home下创建对应的目录。比如/home/username。 - /root目录
/root目录是超级用户(root用户)的家目录,与/home 目录类似。 - /usr目录
/usr目录用于存储系统软件和数据。其中,/usr/bin 目录中包含了一些用户常用的命令,/usr/include 目录中包含了一些常用的头文件,/usr/lib 目录下存放了共享库文件等。 - /var目录
/var 目录存储了可变的文件,例如日志信息、用户邮件等等。
2、文件及目录显示类命令
(1)pwd——显示当前工作目录
(2)cd——改变当前工作目录
(3)ls——显示目录文件
(4)stat——显示文件或文件系统状态信息
3、文件及目录操作类命令
(1)touch——创建文件或修改文件的存储时间
(2)mkdir——创建新目录
(3)rmdir——删除目录
(4)rm——删除文件或目录
(5)cp——复制文件或目录
(6)mv——移动文件或目录/文件或目录重命名
(7)tar——打包、归档文件或目录
(8)du——查看文件或目录的容量大小
4、文件内容的显示和处理
(1)cat——显示文件内容
(2)tac——反向显示文件内容
(3)more——逐页显示文件中的内容(仅向下翻页)
(4)less——逐页显示文件中的内容
(5)head——查看文件的 n 行,默认显示10行
(6)tail——查看文件的最后 n 行,默认显示最后10行
(7)file——查看文件的目录的类型
(8)wc——统计
(9)sort——排序
(10)uniq——去重
(11)echo——将显示内容输出到屏幕上
5、文件查找类命令
(1)whereis——查找文件位置
(2)locate——查找绝对路径中包含指定字符串的文件的位置
(3)find——文件查找
(4)which——确定程序的具体位置
(5)grep——查找文件中包含指定字符串的行
三、vi、vim 编辑器的使用
四、文件管理进阶
1、硬链接与软链接
2、通配符与文件名变量
3、输入/输出重定向与管道
(1)标准文件
(2)输入重定向
(3)输出重定向
(4)错误重定向
文章来源:https://www.toymoban.com/news/detail-838789.html
(5)管道
文章来源地址https://www.toymoban.com/news/detail-838789.html
五、Linux 快捷键的使用
快捷键 | 功能说明 |
---|---|
Ctrl+A | 把光标移动到命令行开头 |
Ctrl+E | 把光标移动到命令行末尾 |
Ctrl+C 或 Ctrl+\ | 键盘总段请求,结束当前任务 |
Ctrl+Z | 中断当前执行的进程,但并不结束此进程,而是将此进程放到后台,想要继续执行时,可用 fg 命令唤醒她,但由于 “Ctrl+Z” 组合键转入后台运行的进程在当前用户退出后就会终止,所以使用此快捷键不如使用 nohup 命令,因为 nohup 命令的作用就是用户退出之后进程仍然继续运行,而现在许多脚本和命令在root 用户退出时仍然有效 |
Ctrl+D | 设置 EOF ,即文件末尾(end of file)。如果光标处在一个空白的命令行中,则按 “Ctrl+D” 组合键后,将会退出 BASH ,比使用 exit 命令退出要快得多 |
Ctrl+S | 暂停屏幕输出 |
Ctrl+Q | 恢复屏幕输出 |
Ctrl+L | 清屏,相当于 clear 命令 |
Ctrl+U | 剪切删除光标前的所有字段 |
Ctrl+K | 剪切删除光标后的所有字段 |
Ctrl+W | 剪切删除光标前的字段 |
Alt+D | 向后删除一个词 |
Ctrl+Y | 粘贴被 “Ctrl+U” 或 “Ctrl+K” 或 “Ctrl+W” 组合键剪切删除的部分 |
Tab | 自动补齐命令行与文件名,双击 “Tab” 键,可以列出所有可能匹配的选择 |
Alt+F | 光标向前移动一个词的距离 |
Alt+B | 光标向后移动一个词的距离 |
Ctrl+R | 在历史命令中查找,当 history 比较多时,若想找一个比较复杂的命令,使用此快捷键后,Shell 会自动查找并调用该命令 |
到了这里,关于Linux学习笔记——基本操作命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!