Linux基础知识和帮助命令

简介: 1、linux的哲学思想一切都是一个文件。(包括硬件,文本,二进制,源代码)系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)当遇到复杂任务,通过不同功能用途的程序组合起来完成。避免令人困惑的用户界面就是没有复杂的图形界面。连配置文件都存储在文本中,方便增删改查。不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。

1、linux的哲学思想

  • 一切都是一个文件。(包括硬件,文本,二进制,源代码)
  • 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
  • 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
  • 避免令人困惑的用户界面就是没有复杂的图形界面。
  • 连配置文件都存储在文本中,方便增删改查。
  • 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。


2、shell

2.1 什么是shell(壳),怎么在硬件和用户之间翻译

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

网络异常,图片无法展示
|


用户使用应用程序发布指令,比如使用浏览器访问网页;

shell去通知操作系统需要进行什么样的操作(相当于解释层);

内核相当于操作系统去指挥硬件;

硬件才能工作,否则无法交互。

基础知识:

[root@localhost ~]# 
[zhangsan@localhost root]$ 
[zhangsan@localhost root]$ hostname
localhost.localdomain
[zhangsan@localhost opt]$ 
root       //表示用户 
localhost  //主机名
~          //家目录
#          //管理员用户
$          //普通用户
root       //root的家目录  
opt        //opt目录
#关机命令:
1、halt                  //立刻关机
2、poweroff              //立刻关机
3、shutdown -h now       //立刻关机(root用户使用)
4、shutdown -h 10        //10分钟后自动关机
#重启:
reboot
init6
shutdown -r now
#修改语言
修改LANG变量实现中文语言提示
[root@localhost ~]# LANG=zh_CN.UTF-8
[root@localhost ~]# echo $LANG 
zh_CN.UTF-8
[root@localhost ~]# LANG=en_US.UTF-8
[root@localhost ~]# echo $LANG 
en_US.UTF-8
#修改颜色
[root@localhost ~]#vim .bashrc
PS1='[\e[1;34m][\u@\h \W]$[\e[0m]'
复制代码


2.2 不同的shell环境

bash是linux里面默认的shell程序,位于/bin/bash。csh、ksh 语言不同,比如中文英文都是交流的语言。

[root@localhost ~]# echo $SHELL         //显示当前shell
/bin/bash
[root@localhost ~]# cat /etc/shells     //显示当前系统所有使用的shell
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost mnt]# sh         //切换shell环境
sh-4.2# 
[root@localhost mnt]# pstree     //查看使用过的shell环境
├─sshd───sshd───bash───csh───bash───tcsh───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        ├─upowerd───2*[{upowerd}]
        ├─vmtoolsd───{vmtoolsd}
        ├─wpa_supplicant
        └─xdg-permission-───2*[{xdg-permission-}]
复制代码


2.3 shell与内、外部命令

(1)shell 分为内部命令 和外部命令,一般先执行内部命令,再执行外部命令。

内部命令 外部命令
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分 属于Shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shell加载后才能执行


(2) help命令可以查看内部命令

[root@localhost ~]# help cd
cd: cd [-L|[-P [-e]]] [dir]
    Change the shell working directory.
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    Options:
        -L      force symbolic links to be followed
        -P      use the physical directory structure without following symbolic
        links
        -e      if the -P option is supplied, and the current working directory
        cannot be determined successfully, exit with a non-zero status
    The default is to follow symbolic links, as if `-L' were specified.
    Exit Status:
    Returns 0 if the directory is changed, and if $PWD is set successfully when
    -P is used; non-zero otherwise.
复制代码


(3)可以使用type 命令来区分内外部命令

[root@localhost /]# type cd          //内嵌代表内部命令
cd 是 shell 内嵌                      
[root@test1 /]# type -a ls           //别名代表外部命令,外部命令会有程序路径   
ls 是 `ls --color=auto' 的别名             
ls 是 /usr/bin/ls                   
[root@localhost /]# whereis ls       //whereis 可以查找命令具体的位置所在
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# type -a echo 
echo 是 shell 内嵌
echo 是 /usr/bin/echo
复制代码


外部命令存放于 echo $PATH, 一个一个找,找到为止,找不到就报无命令

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
外部命令使用过后会被记录在内存(缓存,但是会占用内存,临时性的)加快读取速度
复制代码


(4)开启或关闭内部命令

关闭:enable -n 内部命令

开启:enable 内部命令

[root@localhost opt]# enable -n cd
[root@localhost opt]# cd /mnt/
[root@localhost opt]#
复制代码


(5)hash 缓存空间

hash命令负责显示与清除命令运行时系统优先查询的哈希表(hash table)。

当执行hash命令不指定参数或标志时,hash命令向标准输出报告路径名列表的内容。此报告含有先前hash命令调用找到的当前shell环境中命令的路径名。而且还包含通过正常命令搜索进程调用并找到的那些命令。

命令选项

选项 说明
-d<指令> 在哈希表中清除某个命令记录
-r 清除哈希表中的所有记录
-l 显示哈希表中的命令
-p<指令> 将具有完整路径的命令加入到哈希表中
-t<指令> 显示哈希表中命令的完整路径


将缓存的外部命令移到其他默认的目录中,无法再次使用,需要清掉hash值之后 ,才可以继续使用。

[root@localhost mnt]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root:/root/bin
[root@localhost mnt]# mv /usr/bin/ls /usr/local/bin
[root@localhost mnt]# ls
-bash: /usr/bin/ls: 没有那个文件或目录
[root@localhost mnt]# hash 
  命中    命令
   1    /usr/bin/mv
   2    /usr/bin/ls
   6    /usr/bin/cd
[root@localhost mnt]# hash -d ls
[root@localhost mnt]# ls
1.5.txt  f15..txt   f1.txt  f3.txt  f5.txt
15..txt  f15...txt  f2.txt  f4.txt
[root@localhost mnt]# hash
  命中    命令
   1    /usr/bin/mv
   1    /usr/local/bin/ls
   6    /usr/bin/cd
复制代码


3. 命令行格式

  • 在 Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都 可以称为命令。
  • 严格来说,命令通常只代表实现某一类功能的程序的名称。

格式:

命令字   [选项]...   [参数]...

命令字、选项、参数各自的意思及具体使用方法:

  • 命令字
    是整条命令中最关键的一部分,唯一确定。
  • 选项
    短格式选项:使用“-”符号引导,通常是一个字母;
    长格式选项:使用“--”符号引导,通常是完整的单词。
  • 参数
    命令字的处理对象,可以是文件名、目录(路径)名或用户名等内容,个数可以是零到多个。

;可以隔开命令

,执行多个命令

编辑Linux命令行的辅助操作

快捷键 功能
Tab 键 自动补齐(两次可以显示所有选项)
反斜杠“\” 强制换行或转义
Ctrl+a 光标移到最前
Ctrl+e 光标移到最后
Ctrl+U 清空至行首不包括当前光标处的 字符
Ctrl+K 清空至行尾包括当前光标处的字符
Ctrl+w 从当前光标删除到开头
ALT+d 从当前光标删除末尾
Ctrl+l 清屏
Ctrl+c 取消本次命令编辑
Ctrl+s/Ctrl+q 锁屏/解锁
向上下箭头 回看执行过的命令


4.获得命令帮助

4.1 help

格式说明

  • [ ]表示可选项
  • CAPS或<>表示可变化的数据
  • ...表示一个列表可加多个
  • x|y|z 表示或的意思
  • -abc 是-a -b -c (有些命令选项有先后顺序)

只能查看内部命令的使用方法:

[root@localhost ~]# help echo      //内部命令查看帮助
echo: echo [-neE] [参数 ...]
    将参数写到标准输出。
    在标准输出上显示 ARG 参数后跟一个换行。
    选项:
      -n    不要追加换行
      -e    启用下列反斜杠转义的解释
      -E    显式地抑制对于反斜杠转义的解释
    `echo' 对下列反斜杠字符进行转义:
      \a    警告(响铃)
      \b    退格
      \c    抑制更多的输出
      \e    转义字符
      \f    格式提供
      \n    换行
      \r    回车
      \t    横向制表符
      \v    纵向制表符
      \    反斜杠
      \0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
        0到3个八进制数字
      \xHH  以 HH (十六进制)为值的八比特字符。HH可以是
        一个或两个十六进制数字
    退出状态:
    返回成功除非有写错误发生。
复制代码


4.2 --help

查看外部命令帮助

[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help
复制代码


4.3 man

man分九个章节默认打开第一章节。

查看命令:man 1 命令/可执行程序 (1可以省略不写,因为默认打开第一章节)

查看文件格式:man 5 系统文件名

[root@localhost ~]# whatis ls
ls (1)               - 列目录内容
    1代表第一章手册
ls (1p)              - list directory contents
    1p 代表开发程序使用
[root@localhost ~]# whatis passwd    //可以查看命令的章节
passwd (5)           - (未知的主题)
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
[root@localhost ~]# man 5 passwd    //查看第五章内容,第5章一般是配置文件格式详细解释
[root@localhost ~]# man 7 ascii
[root@localhost ~]# man 7 UTF-8
[root@localhost ~]# mandb           //生成man数据库,man命令无效时
正在删除 /usr/share/man 里的旧数据库条目...
mandb: 警告:/usr/share/man/man8/fsck.fat.8.manpage-fix.gz:忽略错误的文件名
正在处理 /usr/share/man 下的手册页...
正在删除 /usr/share/man/hu 里的旧数据库条目...
正在删除 /usr/share/man/pl 里的旧数据库条目...
[root@localhost ~]# man man
 该清单是一组用冒号分隔的欲查找的手册清单。此选项将覆盖                MANSECT               环境变量。
              有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区 段,你可以在此指定  man
              查找区段的顺序。具体区段划分如下所示:
              区段1:用户指令
              区段2:系统调用
              区段3:程序库调用
              区段4:设备
              区段5:文件格式     shadow passwd fstab
              区段6:游戏
              区段7:杂项
              区段8:系统指令
              区段9:内核内部指令
              区段n:Tcl或Tk指令
复制代码


4.4 info

info也可以查看相关的帮助信息

[root@localhost dev]# info ls



相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
110 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
410 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
93 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
80 2
|
22天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
50 14
Linux 10 个“who”命令示例
|
1天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
22 8
|
11天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
90 20
|
11天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
35 7
|
1月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
34 9
|
29天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解