文章目录
Linux——常用命令精讲
前言
Linux系统下的shell命令使用十分广泛,熟练使用命令对系统进行管理和操作是Linux系统管理员所必备的基础技能,接下来,我给大家讲一下Linux的基本格式和命令帮助的使用,并通过命令来管理系统中的文件和目录
一、Linux命令基础
1.Shell概述
-
Linux命令的执行必须依赖于shell命令解释器
-
用户:我们输入命令的界面
-
shell:是在Linux系统中运行的一种特殊程序,在用户和内核之间充当“翻译官”的角色,负责接收用户输入的命令并进行解释,将需要执行的操作(翻译成二进制计算机语言)传递给系统内核执行
-
当用户登陆Linux系统时,shell程序会自动加载,以便给用户提供可以输入操作命令的操作系统
-
内核:是构成Linux操作系统最关键的组成部分,执行翻译后的命令,面向硬件为主
2.命令分类及格式
2.1内部命令与外部命令
bash 是 Linux 系统中默认使用的shell程序,文件位于 /bin/bash
根据Linux命令和shell程序的关系,一般分为一下两种类型
内部命令 | 外部命令 |
---|---|
集成于 Shell 解释器程序(如Bash)内部的一些特殊指令,也称为内建(Built-in)指令 | Linux 系统中能够完成特定功能的脚本文件或者二进制文件 |
属于 Shell 的一部分,所以没有单独对应的系统文件 | 属于 Shell 解释器程序之外的命令,每个外部命令对应了系统中的一个文件 |
只要 Shell 解释器被运行,就会自动载入内存,无需从硬盘中重新读取文件,用户可以直接使用 | Linux 系统必须知道外部命令对应的文件位置,才能够由 Shell 加载并执行 |
type #可以查看内外部类型
hash:是将它放在指定的盒子里,调用的时候优先调用这个盒子
hash -r #清楚hash命令
enable #查看所有的内部命令 (外部不会显示)
type ls #外部命令
help #看内部
--help #看外部
2.2Linux命令行的格式
命令字 [选项] [参数]
二、常用命令
1.查看及切换目录(pwd、cd、ls、du)
①. pwd
-
用于显示用户当前所在的工作目录位置,工作目录是用户操作文件或其他子目录的默认位置起点
-
使用 pwd 命令可以不添加任何选项或参数
-
例如,root 用户在 /root 目录中执行 pwd 命令时输出信息为“/root”,则表示当前的工作目录位于/root
②切换工作目录:cd(相对路径、绝对路径)
- 用于将用户的工作目更改到其他位置,通常使用时需要切换到目标位置(文件夹路径)作为参数
- 若不指定目标位置,默认将切换到当前的宿主目录,宿主目录是Linux用户登录系统后默认的工作目录
例:将工作目录更改为 /boot/grub2,并执行pwd命令确认当前所处位置
- 执行 cd 命令时,还可以使用一个特殊的目录参数“-”(减号),用于表示上一次执行 cd 命令之前所处的目录
- 例如,以下操作先通过执行“cd ~”命令(与单独执行“cd”命令效果相同)切换到当前用户的宿主目录,然后再执行“cd -”命令返回原来所在的目录位置
cd /home #后面跟绝对路径,切换到home目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
cd - 等于 cd #两个用法一样
cd - #切换到上一次执行操作的目录
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd .. #切换到上一层目录(父目录)
cd ../../ #切换到父目录的父目录
相对路径的表现形式
表现形式 | 说明 | 示例 |
---|---|---|
直接使用目录名或文件名 | 表示当前工作目录中的子目录、文件的位置 | grup.conf |
以一个点号“."开头 | 表示当前的工作目录作为起点 | ./grup.conf |
以两个点号"…" | 表示当前目录的上一级目录(父目录)作为起点 | …/vmlinuz |
以“~用户名”形式开头 | 表示以指定用户的宿主目录作为起点 | ~teacher |
③.列表显示目录内容ls(常用选项、可结合通配符)
命令字 [选项] [参数]
操作 功能 要执行的对象
- 常用选项
选项 | 作用 |
---|---|
-l | 显示文件(目录)的详细信息,通常直接使用ll,因为设置了别名 |
-a | 遍历所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) |
-A | 跟-a 唯一的不同是不列出当前目录和上一层目录 |
-d | 显示目录本身的属性,而不是显示目录中的内容 |
-h | 友好显示已单位为例 |
-R | 递归显示(如果有子目录,则会把子目录中的文件依次展现) |
-color | 以颜色区分文件类型 |
-i | 显示inode值 |
黑色:数据文件
白色:一般文件
蓝色:目录/文件
红色:压缩包
绿色;可执行的文件/命令文件/脚本
淡蓝色:链接文件/快捷方式
黄色:设备文件/磁盘文件
结合通配符
-
使用ls命令时,还可以结合通配符“?”或“*”等以提高命令编写效率
-
"?"∶ 代表任意一个字符,且至少1个
-
"*"∶代表任意数个字符,可以是0个或者1个或者多个
例:以下操作将以长格式列出/etc/目录下以“ns”开头、“.conf”结尾的文件信息 [root@localhost ~]# ls -lh /etc/ns*.conf -rw-r--r--. 1 root root 1.8K 11月 25 18:47 /etc/nsswitch.conf
④.统计目录及文件空间占用情况-du
- 统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录….]
-a #统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h #显示出每一个文件以及大小,单位是KB,MB,GB
-s #显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来
du -sh * #生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况
例1:统计出/var/log/目录所占用空间的大小
例2:以倒序和正序的方式查看当前目录下文件的大小
-h 都是和 a s 组合使用的,比较友好
三、man手册的使用
首先什么是man手册呢?
对于我们来说更像是一个用户帮助文档,里面记录了几乎所有的Linux的命令的说明和使用方法。比如说有一天突然忘记ls是干啥用的了,我们这时候就可以用命令:man ls 这样就可以查到ls的详细的用法。
/-i #(查找的功能选项)
- 查找参数翻页 n 向下 N 向上
man ls | col -b > lshelp.txt
在这个例子中,col 是一个命令程序,用于过滤文本中的一些特殊控制字符;另外还使 用了“|”和“>”符号,这是 Shell 环境中的两种特殊功能应用,分别称为管道、重定向输出。其 含义及作用如下所述。
管道:用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对 象(输入),就好像一根管道一样,从这头塞入内容,从另一头出来。
重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将 保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向
四、编辑linux命令行的辅助操作
编辑 Linux 命令的时候,可以使用一下几个辅助操作,以提高输入效率
Tab 键 | 自动补齐,按两次系统将输出可用的列表 |
---|---|
反斜杠“\” | 强制换行 |
Ctrl+U | 清空至行首 |
Ctrl+K | 清空至行尾 |
Ctrl+L | 清屏 |
Ctrl+C | 取消本次命令编辑 |
Ctrl+E | 光标跳到行尾 |
Ctrl+A | 光标跳到行头 |
五、设置别名 -alias
alias #查看系统当前所有可用别名
alias ll='ls -lt' #设置别名
unalias ll #删除别名 永久生效
vim /root/.bashrc #临时修改
- alias 命令别名 = “命令”
- unalias 别名命令 删除别名
- \加命令 原始命令
注意: 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号
例:将 vim /etc/sysconfig/network-scripts/ 设置别名为:xcf
总结
最后说一句,很多东西并不是要我们去可以的去记忆,比如说linux下的命令,有的命令是用熟练的,很多时候我们不一定要知道知识是什么,只要在我们使用他的时候,我们可以知道这知识是什么,这知识可以从哪里获取,我们就可以完成我们的任务,这才是学习的意义,所以Linux命令一定一定要熟练掌握,熟能生巧~