Linux基本命令

Posted by Wh0ami-hy on September 24, 2023

1. Linux基本命令1

命令别名

  • 显示当前shell进程所有可用的命令别名

    alias

  • 定义别名NAME,其相当于执行命令VALUE

    alias NAME='VALUE'

  • 在命令行中定义的别名,仅对当前shell进程有效如果想永久有效,要定义在配置文件中

    仅对当前用户:~/.bashrc

    对所有用户有效:/etc/bashrc

  • bash进程重新读取配置文件

    source [filename] 通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

  • 撤销别名

    unalias

  • 如果别名同原命令重名,如果要执行原命令,可使用

    \ALIASNAME"ALIASNAME"'ALIASNAME'

命令格式

command [options.….][argument...]

  • 选项

    用于启用或关闭命令的某个或某些功能

    长格式选项 --all

    短格式选项 -a

  • 参数

    命令的作用对象,比如文件名,用户名等

注意

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行:Ctrl+c,Ctrl+d
  • 多个命令可以用;符号分开
  • 较长的命令可以使用 \拼接换行写

日期和时间

非常重要可以清楚系统什么时间发生了什么事

  • Linux的两种时钟

    系统时钟:由Linux内核通过CPU的工作频率进行的

    硬件时钟:主板

  • date 显示和设置系统时间

    date -d

    hwclockclock 显示硬件时钟

    -s--hctosys 以硬件时钟为准,校正系统时钟

    -w--systohc 以系统时钟为准,校正硬件时钟

    查看当前时区ll /etc/localtime

    查看所有时区timedatectl list-timezones

    设置时区timedatectl set-timezone Asia/Shanghai

    显示日历 cal -y

    远程同步系统时钟ntpdate ipaddress

简单命令

  • 关机:haltpoweroff
  • 重启:reboot -f:强制,不调用shutdown -p:切断电源
  • 关机或重启:shutdown

    shutdown [OPTION].…. [TIME] [MESSAGE]

    -r:reboot

    -h:halt

    -c:cancel

    TIME:无指定,默认相当于+1 (CentOS7)

    now:立刻,相当于+0

    +m:相对时间表示法,几分钟之后例如+3

    hh:mm:绝对时间表示,指明具体时间

用户登录信息查看命令

whoami:显示当前登录有效用户

who:系统当前所有的登录会话

w:系统当前所有的登录会话及所做的操作

nano文本编辑

screen命令

创建新screen会话screen -S [SESSION]

加入screen会话screen -x [SESSION]

退出并关闭screen会话 exit

剥离当前screen会话 Ctrl+a+d

恢复某screen会话screen -r [SESSION]

显示所有已经打开的screen会话screen -ls

使用场景:

  • 多人加入同一终端会话,共同工作
  • 在断网或重启之后重新恢复之前的终端工作状态

连上远程主机后,先不要急于运行你的指令,而是先创建一个screen,然后在screen的虚拟终端里面运行你的指令,要断开连接之前先把screen挂起,下次连进来的时候你只需要重新连接你的screen,你会发现你的指令已经乖乖地执行完毕或者正在执行而不是被迫中断了

2. Linux基本命令2

echo命令

  • 功能:显示字符
  • 说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号
  • 选项: -E(默认)不支持\解释功能 -n不自动换行 -e启用\字符的解释功能
  • ` ` 可以识别命令
  • 显示变量 echo "$VAR_NAME"变量会替换,弱引用 echo '$VAR_NAME'变量不会替换,强引用
  • -e

    启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成—般文字输出

    \a发出警告声

    \b 退格键

    \c最后不加上换行符号

    \n换行且光标移至行首

    \r回车,即光标移至该行首,但不换行

    \t插入tab

    \\插入\字符

    \0nnn插入nnn(八进制)所代表的ASCIl字符

    \xnnn插入nnn(十六进制)所代表的ASCII数字

字符集和编码

查看当前系统编码 echo $LANG

  • ASCII码:计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。ASCIl码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为0

  • Unicode:用于表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode是一个很大的集合,现在的规模可以容纳100多万个符号。Unicode仅仅只是一个字符集,规定了每个字符对应的二进制代码至于这个二进制代码如何存储则没有规定

  • Unicode编码方案:

    UTF-8:变长,1到4个字节

    UTF-16:变长,2或4个字节

    UTF-32:固定长度,4个字节

UTF-8是目前互联网上使用最广泛的一种Unicode编码方式,可变长存储。使用1-4个字节表示一个字符,根据字符的不同变换长度。

编码规则如下:对于单个字节的字符,第一位设为0,后面的7位对应这个字符的 Unicode码。因此,对于英文中的0 - 127号字符,与ASCIl码完全相同。这意味着ASCII码的文档可用UTF-8编码打开。对于需要使用N个字节来表示的字符(N>1),第一个字节的前N位都设为1,第N+1位设为0,剩余的N-1个字节的前两位都设为10,剩下的二进制位则使用这个字符的Unicode码来填充

命令行扩展、被括起来的集合(重点)

  • 命令行扩展:$()或``

    把一个命令的输出打印给另一个命令的参数

  • 括号扩展:{}

    打印重复字符串的简化形式

    echo file{1,3,5} 结果为:file1 file3 file5rm -f file{1,3,5}

    echo {000..20..2}

3. Linux基本命令3

tab键

  • 命令补全

    用户给定的字符串只有一条唯一对应的命令直接补全,否则再次Tab会给出列表

    内部命令:

    外部命令:bash根据$PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令命名的文件,第一次找到的命令即为要执行的命令

  • 路径补全

    把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名

    如果唯一:则直接补全

    否则:再次Tab给出列表

获得帮助

  • whatis command 显示命令的简短描述
  • command --help
  • maninfo
  • /usr/share/doc/

命令帮助(重点)

  • 内部命令:

    help COMMANDman bash

  • 外部命令:

    COMMAND --helpCOMMAND -h

    使用手册(manual)

      `man COMMAND`
    

    信息页

      `info COMMAND`
    

命令历史

history

终端的命令历史记录在内存中,当用户正常退出时,会保存在该用户目录下的.bash_history文件中

查看记录命令的最大数量echo $HISTSIZE

-c:清空命令历史 -d offset:删除历史中指定的第offset个命令 n:显示最近的n条历史 -a:追加本次会话新执行的命令历史列表至历史文件 -r:读历史文件附加到历史列表 -w:保存历史列表到指定的历史文件 -n:读历史文件中未读过的行到历史列表 -p:展开历史参数成多行,但不存在历史列表中 -s:展开历史参数成一行,附加在历史列表后

命令行历史

重复前一个命令,有4种方法

  • 重复前一个命令使用上方向键,并回车执行
  • !!并回车执行
  • 输入!-1并回车执行
  • Ctrl+p并回车执行
  • !:0执行前一条命令(去除参数)
  • Ctrl + n显示当前历史中的下一条命令,但不执行
  • Ctrl + j执行当前命令
  • !n执行history命令输出对应序号n的命令
  • !-n执行history历史中倒数第n个命令

  • !string重复前一个以“string”开头的命令
  • !?string重复前一个包含string的命令
  • !string:p 仅打印命令历史,而不执行
  • !$:p打印输出!$(上一条命令的最后一个参数)的内容
  • !*:p打印输出!*(上一条命令的所有参数)的内容
  • ^string删除上一条命令中的第一个string
  • ^string1^string2将上一条命令中的第一个string1替换为string2
  • !:gs/string1/string2将上一条命令中所有的string1都替换为string2

调用历史参数

  • command !^利用上一个命令的第一个参数做cmd的参数
  • command !$利用上一个命令的最后一个参数做cmd的参数
  • command !*利用上一个命令的全部参数做cmd的参数
  • command !:n利用上一个命令的第n个参数做cmd的参数
  • command !n:^调用第n条命令的第一个参数
  • command !n:$调用第n条命令的最后一个参数
  • command !n:m调用第n条命令的第m个参数
  • command !n:*调用第n条命令的所有参数

命令历史相关环境变量

  • HISTSIZE:命令历史记录的条数
  • HISTFILE:指定历史文件,默认为~/.bash_history
  • HISTFILESIZE:命令历史文件记录历史的条数
  • HISTTIMEFORMAT="%F %T"显示时间
  • HISTIGNORE="str1:str2*:..."忽略str1命令,str2开头的历史
  • 控制命令历史的记录方式:

环境变量:HISTCONTROL

ignoredups 默认,忽略重复的命令,连续且相同为”重复”

ignorespace 忽略所有以空白开头的命令

ignoreboth 相当于ignoredupsignorespace的组合

erasedups删除重复命令

  • export变量名="值"
  • 存放在/etc/profile~/.bash_profile

4. Linux基本命令4

man命令

  • 提供命令帮助的文件
  • 手册页存放在/usr/share/man
  • man页面分组为不同的”章节”

    1:用户命令

    2:系统调用

    3:C库调用

    4:设备文件及特殊文件

    5:配置文件格式

    6:游戏

    7:杂项

    8:管理类的命令

    9:Linux内核API

  • man命令的配置文件:/etc/man.config 、 man_db.conf
  • MANPATH /PATH/TO/SOMEWHERE:指明man文件搜索位置
  • man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手册页并显示
  • 中文man需安装包man-pages-zh-CN
  • 帮助手册中的段落说明:

man帮助段落说明(重点)

SYNOPSIS用法格式说明:

`[]`可选内容

`<>`必选内容

`a|b`二选一

`{ }`分组

`...`同一内容可出现多次

man帮助

  • 查看man手册页 man [章节] keyword
  • 列出所有帮助 man -a keyword
  • 搜索man手册 man -k keyword 列出所有匹配的页面

    使用whatis数据库

  • 相当于whatis man -f keyword
  • 打印man帮助文件的路径 man -w [章节] keyword

man搜索

  • /KEYWORD: 以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索,不区分字符大小写

    n:下一个

    N:上一个

  • ?KEYWORD: 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索,不区分字符大小写

    n:跟搜索命令同方向,下一个

    N:跟搜索命令反方向,上一个

info

  • man常用于命令参考,GNU工具info适合通用文档参考
  • 没有参数列出所有的页面
  • info页面的结构就像一个网站
  • 每一页分为“节点”
  • 链接节点之前*
  • info[命令]

导航info页

  • 方向键,PgUp,PgDn导航
  • Tab键移动到下一个链接
  • d显示主题目录
  • Home显示主题首部
  • Enter进入选定链接
  • n/p/u/l进入下/前/上一层/最后一个链接
  • s文字文本搜索
  • q退出info

通过本地文档获取帮助

/usr/share/doc目录

多数安装了的软件包的子目录,包括了这些软件的相关原理说明

常见文档:README INSTALL CHANGES

5. Linux基本命令5

bash的快捷键

  • Ctrl+l清屏,相当于clear命令
  • Ctrl + o 执行当前命令,并重新显示本命令
  • Ctrl + s阻止屏幕输出,锁定
  • Ctrl + q允许屏幕输出
  • Ctrl + c终止命令
  • Ctrl +z挂起命令
  • Ctrl + a光标移到命令行首,相当于Home
  • Ctrl + e光标移到命令行尾,相当于End
  • Ctrl + f光标向右移动一个字符
  • Ctrl + b光标向左移动一个字符
  • Alt + f光标向右移动一个单词尾
  • Alt + b光标向左移动一个单词首
  • Ctrl + xx光标在命令行首和光标之间移动
  • Ctrl + u从光标处删除至命令行首
  • Ctrl + k从光标处删除至命令行尾
  • Alt +r删除当前整行

本站总访问量