百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux基本命令归纳整理(linux基本命令行大全)

sinye56 2024-11-13 12:33 14 浏览 0 评论

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIXUNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。严格来讲,Linux 这个词本身只表示 Linux 内核,但实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工程各种工具和数据库的操作系统。

Linux基本命令归纳整理


1. 帮助命令

内建命令和外部命令

在我们使用 Linux 操作系统的时候,经常会使用一些命令,但是由于时间长久的原因导致我们对于其使用方法的忘记。本文,就是为了解决这个问题而生的,授之以鱼不如授之以渔。

  • [1] 内部命令

实际上是 shell 程序的一部分,其中包含的是一些比较简单的 linux 系统命令,这些命令由 shell 程序识别并在 shell 程序内部完成运行,通常在 linux 系统加载运行时 shell 就被加载并驻留在系统内存中。内部命令是写在 bash 源码里面的,其执行速度比外部命令快,因为解析内部命令 shell 不需要创建子进程。比如:exithistorycdecho 等。


escape@ubuntu:~\$ type cd
cd is a shell builtin


# 内建命令帮助获取方式
escape@ubuntu:~$ help echo
echo: echo [-neE] [arg ...]
    Write arguments to the standard output.
  • [2] 外部命令

外部命令是 linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。shell 程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。shell 程序搜寻可执行程序文件的路径定义在PATH环境变量中,使用 echo $PATH 来查看。外部命令是在 bash 之外额外安装的,通常放在固定目录下。比如:lsvi


escape@ubuntu:~\$ type mount
mount is /bin/mount
  • [3] 常用命令
  • type命令
    • 用于查看命令属于内建命令或者外部命令
    • type -a COMMAND:可以列出某命令的所有位置(包括内部和外部)
    • type -P COMMAND:可以显示内部命令的路径
  • which命令
    • 用于查看外部命令的路径
  • whereis命令
    • 用于查看外部命令的路径和man命令的帮助文件 -whatis命令
    • 用于模糊匹配操作命令的帮助并列出帮助手册
    • CentOS6上执行makewhatis可手动更新搜索的数据库
    • CentOS7上执行mandb可手动更新搜索的数据库


escape@ubuntu:~\$ whatis date
cal(1), ncal(1) - displays a calendar and the date of easter
date(1) - display or set date and time
iwidgets_datefield(n), iwidgets::datefield(n) - Create and manipulate a date field widget
ntpdate(8) - set the date and time via NTP

1.1 内建 hash 命令

shell 搜中寻到的外部命令的路径结果会缓存至 key-value 存储中,而 hash 用来显示命令缓存。


# 显示命令缓存次数
[root@centos7 ~]# hash
     hits command
     2 /usr/bin/file
     8 /usr/bin/ls

# 列出缓存过的命令
[root@centos7 ~]# hash -l
     builtin hash -p /usr/bin/file file
     builtin hash -p /usr/bin/ls ls


# 可以给命令建立缓存
[root@centos7 ~]# hash -p /usr/bin/file f
[root@centos7 ~]# hash -l
     builtin hash -p /usr/bin/file file
     builtin hash -p /usr/bin/file f
     builtin hash -p /usr/bin/ls ls

# 删除某个命令的缓存
[root@centos7 ~]# hash -d f
[root@centos7 ~]# hash -l
     builtin hash -p /usr/bin/file file
     builtin hash -p /usr/bin/ls ls


# 列出单个别名的路径
[root@centos7 ~]# hash -t file
     /usr/bin/file

# 删除所有命令缓存
[root@centos7 ~]# hash -r
[root@centos7 ~]# hash
     hash: hash table empty

1.2 内建 history 命令

history 命令用于管理命令历史。当登录 shell 时,会读取命令历史文件(~/.bash_history)中记录下的命令。当登录进 shell 后新执行的命令只会记录在缓存中,这些命令会用户退出时“追加”至命令历史文件中。


# [命令选项]

# 追加本次会话新执行的命令历史列表至历史文件中
$ history -a

# 删除历史中指定的命令
$ history -d #

# 清空命令历史
$ history -c


# [快捷操作]

# 调用历史中第#条命令
!#

# 调用历史中最近一个以string开头的命令
!string

# 上一条命令
!!

1.3 外部 man 命令

man 命令的配置文件 /etc/man.config


# 要查看指定章节中的手册
man1: 用户命令
man2: 系统调用
man3: C库调用
man4: 设备文件及特殊文件
man5: 配置文件格式
man6: 游戏
man7: 杂项
man8: 管理类的命令


# 指明新的手册文件搜索位置
$ MANPATH /PATH/TO/SOMEWHERE

# 到指定位置下搜索COMMAND命令的手册页并显示
$ man -M /PATH/TO/SOMEWHERE COMMAND

# 帮助手册中的段落说明
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
AUTHOR
REPORTING BUGS
SEE ALSO

1.4 外部 info 命令


# 查看帮助
$ info COMMAND

2. 日期时间

Linux 中提供了什么我们日常操作所需要的基础命令,我们需要经常使用它们来提高我们的效率。本文将介绍几种 Linux 常用的命令以及操作,耐心看完肯定会对你有帮助的。

2.1 date 命令

系统时钟设定命令

格式

  • date [OPTION]... [+FORMAT]
  • date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

设置

  • FORMAT 格式符号%F :年月日全格式,例如 2016-06-21%T :时间全格式,例如 13:14:42%Y:年%m:月%d:日%H:小时%M-%S%s:从 1970 年 1 月 1 日 00:00:00 开始的秒数
  • 系统时间设定 date [MMDDhhmm[[CC]YY][.ss]]MM: 月分DD:几号hh: 小时mm: 分钟YY: 两位年份CCYY: 四位年份.ss: 秒钟


# 设置时间显示格式
[root@centos7 ~]# date +"%F %T"
2017-05-19 20:01:17
[root@centos7 ~]# date +"%Y%m%d"
20170519

# 修改系统时间
[root@centos7 ~]# date 122111112012.11
Fri Dec 21 11:11:11 CST 2012


# 显示昨天是星期几
[root@centos7 ~]# date --date="yesterday" +%a
Sun
[root@centos7 ~]# date --date="yesterday" +%A
Sunday

# 显示当前时间,格式:2016-06-18 10:20:30
[root@centos7 ~]# date +"%F %T"

# 设置当前日期为2019-08-07 06:05:10
[root@centos7 ~]# date 080706052019.10

2.2 hwclock 命令

clock 又或者 hwclock,是一样的命令。

Linux 的两种时钟

  • 系统时钟(System Clock)Linux 内核通过 CPU 的工作频率进行的计时,指当前 Linux Kernel 中的时钟。
  • 硬件时钟(Real Time Clock)是主板上由电池供电的那个主板硬件时钟,这个时钟能在 BIOS“Standard BIOS Feture”项中进行设置。
  • 区别和联系如果使用 date 命令修改了系统时间,并不会自动去修改硬件时钟,因此,当系统下次重启时,系统时钟还会从硬件时钟去取,date 设置的时间就无效了。因此需要 hwclock 命令再来同步系统时钟到硬件时钟,这样下次启动的时候内核则会读取正确的硬件时间到系统时间。

参数选项

  • -s, --hctosys
    硬件时钟同步到系统时钟上,把系统时间调成和硬件时钟一样
  • -w, --systohc
    系统时钟同步到硬件时钟上,把系统时间调成和硬件时钟一样


# hctosys
$ hwclock -s

# systohc
$ hwclock -w

2.3 ntpdate 命令

前提是 IP 所在的那台机器启用了 NTP 服务!


# 用于同步时间
$ htpdate 172.17.0.1

2.4 选择时区命令

交互式命令:tzselect;非交互式命令:timedatectl

  • [1] 交互式命令 - tzselect

CentOS 6/7 都支持的命令:tzselect,是一个交互式的命令,用于选择时区。

Linux基本命令归纳整理 - 选择时区

  • [2] 非交互式的命令 - timedatectl 命令

timedatectl 命令只支持 CentOS 7 系统。


# 时间状态
$ timedatectl status

# 列出时区
$ timedatectl list-timezones

# 更改时区
$ timedatectl set-timezones Asia/Shanghai
  • [3] 直接覆盖文件


# 在CentOS6/7都支持一个非交互式的方法
$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3. 别名使用

主要用到两个命令:alias & unalias

  • alias:显示当前使用的别名。
  • alias NAME="XXXX":给某段命令或路径加别名
  • unalias NAME:去掉某个命令的别名


[root@centos7 ~]# alias cdnet="cd /etc/sysconfig/network-scripts/"
[root@centos7 ~]# cdnet
[root@centos7 network-scripts]# pwd
/etc/sysconfig/network-scripts

[root@centos7 network-scripts]# alias
alias cdnet='cd /etc/sysconfig/network-scripts/'
alias grep='grep --color=auto'
alias ll='ls -l --color=auto'

[root@centos7 network-scripts]# unalias cdnet
[root@centos7 network-scripts]# alias
alias grep='grep --color=auto'
alias ll='ls -l --color=auto'
  • 不用别名,用原始命令的话,可以用下面的方法。
\COMMAND
'COMMAND'
'/PATH/TO/COMMAND'
  • 永久保存 alias 的方法针对一个用户的环境变量:更改 vim ~/.bashrc 文件针对全局用户:更改 /etc/bashrc 文件(不推荐,不同用户有不同需要和偏好)
# 下面是某些alias设置
alias vi ="vim"
alias cdnet="cd /etc/sysconfig/network-scripts"
alias vimnet1="vim /etc/syscofig/network-scripts/eth0"
alias vimnet2="vim /etc/syscofnig/network-scripts/eth1"

# 更改完成后,可以用`source`或`.`命令来使之立即生效,或者重启shell:
[root@centos7 ~]# source ~/.bashrc
[root@centos7 ~]# . ~/.bashrc

文章作者: Escape

文章链接: https://www.escapelife.site/posts/b1e17a99.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: