【一、玩转shell命令】Linux常用shell命令(及相关知识)详解与用法演示(一)

简介: 【一、玩转shell命令】Linux常用shell命令(及相关知识)详解与用法演示

一、常用命令

(1)tab键命令补全

按一下tab键可以补全命令,如果有多个命令可以匹配,那么按两下tab键可以提示匹配的命令。

比如要查看某个文件dm_exit.c,输入cat dm按两次tab键出现提示,直到唯一匹配的时候,tab键会把命令自动补全。

(2)查询历史命令

查询历史命令有两种方法,一个是使用history命令,第二个方法是直接按上下键。history会列出所有的历史命令,上下键是一条一条的列出上一条或下一条命令(按一次显示一条)。

(3)清屏

clear

clear命令可以清除当前屏幕,如果使用鼠标往上滚动还是可以看到以前的输出的。

(4)echo输出变量或字符串

直接输出一个字符串:

输出一个变量:$代表的是环境变量,下面的命令用于查看当前使用的shell是什么。

(5)ls命令、Linux的目录结构、绝对/相对路径

1° ls命令

ls查看目录下的文件(Linux中一切皆文件)。

ls -al 显示所有文件及详细信息,隐藏文件也会显示, -l 表示显示详细信息(用户、权限、大小、时间等,将在后面命令中介绍), -a表示显示所有文件。

其中 . 表示当前目录 .. 表示上一级目录,前面带一个 . 的文件都是隐藏文件,如果不加 -a 选项就无法看到,比如下面我们建一个隐藏文件,分别用不带 -a 选项和带 -a 选项查看

ls -R 选项,递归显示子目录,他会把子目录和子目录的子目录全部显示出来。

ls -lrt 按时间顺序显示,且显示详细信息,文件会按照最后访问时间进行排序显示出来。

④ 使用通配符 *?

*号可以代表任意个字符,下面命令表示显示所有.c文件

ls *.c

?只能表示一个字符

更多的选项可以通过man命令查看, man ls

2° Linux目录结构

目录 用途
/ 根目录
bin 存放了系统可执行程序
boot 存放了内核和启动程序的相关文件
lib 库目录,存放了系统的动态共享库
media 挂载设备媒体、U盘、光驱等,比如我们插入U盘拷贝数据的时候,U盘就会被自动识别为media
usr 一般会将很多应用安装在此目录,/usr/local 用户自己安装文件的目录
sbin 超级管理员root的执行程序
proc 系统内存映射,会保留一些进程运行信息
etc 系统软件启动和配置目录
dev 设备文件目录
home 用户家目录,其实就是 ~

3° 绝对路径与相对路径

绝对路径是指 ==/==开头的路径,比如 /home/qq/dm01_cmd/

使用绝对路径,不管当前目录是什么,都能根据绝对路径到达目的路径。

相对路径就是以 . 开头以及 .. 开头的路径,前面说过,一个点表示当前目录,两个点表示上一级目录,比如现在dm01_cmd目录下有aa和bb两个目录,当前在aa目录中,通过 cd …/bb 就以相对路径(上一级目录的bb目录中)的方式进入了bb目录。

(6)pwd查看当前目录

通过pwd命令可以查看当前在那个目录。

(7)man查看帮助手册

man man 查看man的帮助手册,进入man帮助手册后,可以按上下键一行一行的移动,enter键和下键一样,也是按行滚动,使用空格键可以一页一页(一个屏幕)的滚动翻页。按q就可以退出man帮助手册。

上面几个数字是比较有用的,比如 2 System Calls 代表系统调用,当我们查找系统调用函数的帮助手册时可以加这个参数,比如 man 2 fork 查看fork函数的帮助手册。

(8)date查看系统时间,以及时间校准方法

可以直接date获取时间,也可以按照自己需要的格式获得系统时间,各种格式的说明可以通过man date获得。

如果你的时间不准确可以通过下面方法解决:

首先安装时间同步服务,执行下面的命令

yum install ntp -y

然后执行下面命令即可同步网络时间

ntpdate cn.ntp.org.cn

再次查看时间,如果发现时间和实际时间还是不一致,应该考虑时区设置问题,查看系统时区是不是本地时区,使用vim编辑器打开 /etc/sysconfig/clock

vim /etc/sysconfig/clock

ZONE后面显示的就是时区

我们把之前的时区屏蔽,修改为本地时区,比如我所在位置为"Asia/Shanghai",然后关闭硬件时钟与UTC时间一致功能

ZONE="Asia/Shanghai"
UTC=false
ARC=false

设置linux时区为上海,在命令行输入

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同步时间,如果没有ntpdate需要根据前面介绍先安装ntp服务

ntpdate time.nist.gov

然后在根目录下执行命令设置硬件时间和系统时间一致

./sbin/hwclock --systohc

再次执行date查看时间并对比本地时间,可以发现时间正常。

(9)alias命令重命名或自定义命令

这个命令可以帮助我们把一个很长的命令自定义为一个简短的名字,或者把一些常用的复杂操作重命名为一个方便使用的命令。

查看当前已有的命令别名:

自定义一个命令,比如我们学习Linux的时候,每次开机都要进入到一个存放自己练习文件的目录,我是在下面路径中,所以每次开机都要敲一遍这个路径

cd /home/qq/dm01_cmd

通过alias可以把它命名为一个简单的命令

alias gotest='cd /home/qq/dm01_cmd'

直接执行gotest就可以达到 cd /home/qq/dm01_cmd的效果

这里 cd ~ 是回到家目录的意思。

使用unalias可以删除命令别名

可以看到别名gotest没有了。

另外也可以在家目录(~目录,通过 cd ~进入)下的 .bashrc文件中进行配置

(10)bc计算器

bc命令可以进入计算器,进行一些简单计算,输入要计算的表达式后,按回车输出结果

quit 退出,不能简写为q

二、目录操作相关命令

(1)tree命令安装及使用

Linux中的目录都是树状的,一层一层的,使用tree命令可以树形显示目录,并递归显示子目录。如果没有安装过tree的话需要使用yum命令安装一下(我用的CentOS操作系统)

yum install tree

如果是Ubuntu系统应该使用apt-get命令

sudo apt-get install tree

这里提示一下,如果你使用的是CentOS 6,那么你的yum命令可能会报错

错误:Cannot find a valid baseurl for repo: base

这是因为CentOS 6已经停止更新了,我曾因为yum这个错误疯狂尝试各种方法,最后查资料看到CentOS 6已经停止更新,这里有一个解决方法,在shell下输入下面的命令

sed -i.old -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http:\/\/mirror.centos.org\/centos\/$releasever\//baseurl=http:\/\/vault.centos.org\/centos\/6\//g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all

然后再次使用yum命令就发现yum可以正常使用了。这时可以安装tree了

yum install tree

tree命令可以看到目录的层级结构,非常好用。

(2)cd切换目录

① 有关目录的一点小知识

一般来说我们在命令中写路径的时候都会在后面加一个 / ,比如我们写一条切换到某路径的命令

cd /home/qq/dm/dm_gcc/main/

对这条命令中的目录进行分析,首先第一个 / 代表根目录, home/ 代表家目录, qq/ 代表qq目录,dm/ 代表dm目录,dm_gcc/ 代表dm_gcc目录, main/ 代表main目录,这条命令就是切换到main目录中的意思。

如果我们要去上一级目录中的某个目录,应该这样

cd ../header/

代表去上一级目录下的header目录,其中 …/ 就表示上一级目录,如果是当前目录用 ./ ,说这些的目的是为了告诉大家,我们在写目录的时候会在后面加一个 / 来表示这是目录,大家不要写了这么多命令还不知道命令中的 / 是什么意思。有时候,如果路径只有一层,可以不加 /

② 回到家目录home的4种方式

cd ~  
cd - 
cd /home
cd $HOME

(3)mkdir创建目录

mkdir cc/dd 在已有目录cc下创建dd,如果当前cc目录不存在就要加一个 -p 选项,该选项的意思是递归创建目录。

(4)rmdir删除目录

rmdir命令只能删除空目录(只有 .. . 的目录),不能删除非空目录,非空目录要加 -p 选项递归删除子目录。

如果子目录太多(目录层次太深)这个命令就不好用了,可以用rm命令删除

一般使用rm比较好,因为他还用于删除文件,在后面会详细介绍。

(5)which查看路径

which可以查看一个命令所在的路径

可以看到这些命令都在 /bin 目录下,但是也有例外

这是因为 cd命令是BASH shell本身自带的命令,不在任何目录中。

相关文章
|
2天前
|
Linux
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat > filename` 创建新文件,`cat >> filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
20 5
Linux 常用文件查看命令
|
8天前
|
Linux
Linux od命令
本文详细介绍了Linux中的 `od`命令,包括其基本语法、常用选项和示例。通过这些内容,你可以灵活地使用 `od`命令查看文件内容,提高分析和调试效率。确保理解每一个选项和示例的实现细节,应用到实际工作中时能有效地处理各种文件查看需求。
43 19
|
9天前
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
18天前
|
缓存 Linux
Linux查看内存命令
1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h • -h 选项:以易读的格式(如GB、MB)显示内存大小。 输出示例: total used free shared buff/cache available Mem: 15Gi 4.7Gi 4.1Gi 288Mi 6.6Gi 9.9Gi Swap: 2.0Gi 0B 2.0Gi • to
31 2
|
19天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
111 25
|
4月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
6月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
6月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
7月前
|
监控 Shell Linux
探索Linux操作系统下的Shell编程之魅力
【8月更文挑战第4天】本文旨在通过一系列精心设计的示例和分析,揭示在Linux环境下进行Shell编程的独特之处及其强大功能。我们将从基础语法入手,逐步深入到脚本的编写与执行,最终通过实际代码案例展现Shell编程在日常系统管理和自动化任务中的应用价值。文章不仅适合初学者构建扎实的基础,同时也为有一定经验的开发者提供进阶技巧。
70 11
|
9月前
|
机器学习/深度学习 Unix Java
技术笔记:Linux之Shell脚本编程(一)
技术笔记:Linux之Shell脚本编程(一)
78 0