- A+
Linux的哲学思想
优势
- 一切都是一个文件。(包括硬件,文本,二进制,源代 码)
- 系统中拥有小型,单一用途的程序。(一个程序只负责 做好自己的本职工作)
- 当遇到复杂任务,通过不同功能用途的程序组合起来 完成。 轻量级,一台服务 dhcp ip 数据库服务 网 页
- 避免令人困惑的用户界面就是没有复杂的图形界面。 ()我想怎么使用程序,win程序
- 连配置文件都存储在文本中,方便增删改查。
- 不在乎后缀名,有没有都无所谓,不是通过后缀名来 定义文件的类型。
基础知识
root #表示用户
localhost #主机名
~ #家目录
# #管理员用户
$ #普通用户
root #root的家目录
opt #opt目录
关机命令:
1、halt #立刻关机
2、poweroff #立刻关机
3、shutdown -h now #立刻关机(root用户 使用)
4、shutdown -h 10 #10分钟后自动关机
重启命令:
reboot
init 6
shutdown -r now
Linux命令
shell
shell的定义
用户使用应用程序发布指令比如 (使用浏览器访问网页)
shell去通知操作系统需要进行什么样的操作(相当于解释层)
内核相当于操作系统去指挥硬件 硬件才能工作,否则无法交互
不同的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-}]
shell与内、外部命令
(1) shell 分为内部命令和外部命令,一般先执行内部命令,hash 再执行外部命令
内部命令 | 外部命令 |
集成于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
外部命令使用过后会被记录在内存(缓存,但是会占用 内存,临时性的)加快读取速度
[root@localhost ~]# type useradd useradd 是 /usr/sbin/useradd [root@localhost ~]# useradd wu [root@localhost ~]# type useradd
useradd 已被hash (/usr/sbin/useradd)
[root@localhost ~]# hash //或者使用hash
hash 缓存
(4)开启或关闭内部命令
关闭:enable -n 内部命令
开启:enable 内部命令
[root@localhost opt]# enable -n cd
[root@localhost opt]# cd /mnt/
[root@localhost opt]#
(5)hash 缓存空间
选项 | 说明 |
-d<指令> | 在哈希表中清除某个命令记录 |
-r | 清除哈希表中的所有记录 |
-L | 显示哈希表中的命令 |
-p<指令> | 将具有完整路径的命令加入到哈希表中 |
-t<指令> | 显示哈希表中命令的完整路径 |
# 命令行格式 |
- 在Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都可以称为命令。
- 严格来说,命令通常只代表实现某一类功能的程序的名称。
格式
命令字 空格 [选项] 空格 [参数]
解释命令字 选项 参数各自的意思及具体使用方法
-
命令字
是整条命令中最关键的一部分,唯一确定。
-
选项
短格式选项:使用“-”符号引导,通常是一个字母;
长格式选项:使用“--”符号引导,通常是完整的单词。
-
参数
命令字的处理对象,可以是文件名、目录(路径)名或用户名等内容,个数可以是零到多个。
;可以隔开命令
,执行多个命令
编辑Linux命令行的辅助操作
-
快捷键 | 功能 |
Tab 键 | 自动补齐(两次可以显示所有选项) |
反斜杠“” | 强制换行或转义 |
Ctrl+a | 光标移到最前 |
Ctrl+e | 光标移到最后 |
Ctrl+U | 清空至行首不包括当前光标处的 字符 |
Ctrl+K | 清空至行尾包括当前光标处的字符 |
Ctrl+w | 从当前光标删除到开头 |
ALT+d | 从当前光标删除末尾 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令编辑 |
Ctrl+s/Ctrl+q | 锁屏/解锁 |
向上下箭头 | 回看执行过的命令 |
# 获得命令帮助 | |
## 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 纵向制表符
\ 反斜杠
nnn 以 NNN (八进制)为 ASCII 码的字 符。
NNN 可以是 0到3个八进制数字
xHH 以 HH (十六进制)为值的八比特字 符。
HH可以是 一个或两个十六进制数字
退出状态:
返回成功除非有写错误发生。
--help
查看外部命令帮助
[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help
man
man分九个章节默认打开第一章节
[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指令
info
[root@localhost dev]# info ls
百度是最快解决方式不拘泥形式 |