码迷,mamicode.com
首页 > 系统相关 > 详细

二.Linux基础入门和帮助

时间:2021-01-12 10:45:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:程序设计语言   很多   graphic   内容   command   虚拟终端   env   roo   普通用户   

一.Linux基础

1.用户

root用户

一个特殊的管理帐户
也被称为超级用户
root已接近完整的系统控制
对系统损害几乎有无限的能力
除非必要,不要登录为 root

普通( 非特权 )用户

权限有限
造成损害的能力比较有限

2.终端(terminal)

在Linux中有很多终端类型

控制台终端: /dev/console
串行终端:/dev/ttyS#
虚拟终端:tty: teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
图形终端:startx, xwindows
? CentOS 6: Ctrl + Alt + F7
? CentOS 7: 在哪个终端启动,即位于哪个虚拟终端
伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接

查看当前的终端设备:

tty

3.交互式接口

交互式接口:启动终端后,在终端设备附加一个交互式应用程序

交互式接口类型:

GUI(Graphic User Interface)
? X protocol, window manager, desktop
? Desktop:
? GNOME (C, 图形库gtk)
? KDE (C++,图形库qt)
? XFCE (轻量级桌面)
CLI(Command Line Interface)
? shell程序

shell:

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并
把它送入内核去执行
shell也被称为LINUX的命令解释器(command interpreter),Shell 本身是一个程序。将用户输入的
命令行拆解为”命令名“与”参数“。接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始
化,然后将刚才解析出来的参数传给该程序并执行
shell是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能
由于Shell本身是个程序,所以它可以被任何用户自己开发的各种Shell所代替

显示当前使用的shell

echo ${SHELL}

显示当前系统使用的所有shell

cat /etc/shells

4.主机名

Linux中设置合理的主机名可以方便日常工作和管理

设置临时主机名:

hostname NAME

持久生效:

hostnamectl set-hostname NAME

注:主机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合
???有些软件对主机名有特殊要求

5.命令提示符

登录Linux后,每次输入命令前显示的那串提示字符

默认:

[root@localhost ~]#

最后的符号为#表示管理员

$ 最后的符号为$表示普通用户

可以通过修改PS1变量实现个性的提示符格式,从而可以明显分别不同的系统环境

显示提示符格式

[root@centos8 ~]#echo $PS1
[\e[1;35m][\u@\h \W]$[\e[0m]

修改范例:

PS1="[\e[1;5;41;33m][\u@\h \W]\$[\e[0m]"
PS1="[\e[1;32m][\t [\e[1;33m]\u[\e[35m]@\h[\e[1;31m] \W[\e[1;32m]]
[\e[0m]\$"

提示符格式说明:

\e 控制符\033
\u 当前用户
\h 主机名简称
\H 主机名
\w 当前工作目录
\W 当前工作目录基名
\t 24小时时间格式
\T 12小时时间格式
! 命令历史数
# 开机后命令历史数

持久保存修改的提示符格式(Centos):

echo ‘PS1="[\e[1;32m][\t [\e[1;33m]\u[\e[35m]@\h
[\e[1;31m] \W[\e[1;32m]][\e[0m]\$"‘ > /etc/profile.d/env.sh

Ubuntu:

[root@ubuntu2004 ~]#tail -1 .bashrc
PS1=‘[\e[1;35m][\u@\h \W]$[\e[0m]‘

6.执行命令

①过程

输入命令后回车,提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分
配资源将其运行起来

②分类

shell中可执行命令分类:

内部命令:由shell自带的,而且通过某命令形式提供
外部命令:在文件系统路径下有对应的可执行程序文件

区别指定的命令是内部或外部命令

type COMMAND

范例:

[root@centos8 ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo

注:shell builtin表示内部命令,显示路径表示外部命令,一个命令可以同时为内部和外部命令

③管理

help :可以查看内部命令列表

enable 管理内部命令:

enable cmd 启用内部命令
enable –n cmd 禁用内部命令
enable –n 查看所有禁用的内部命令

查看外部命令路径:

which -a |--skip-alias
whereis

④Hash缓存表

系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的
路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不
存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率

hash 命令常见用法:

hash 显示hash缓存
hash -l 显示hash缓存,可作为输入使用
hash -p path name 将命令全路径path起别名为name
hash -t name 打印缓存中name的路径
hash -d name 清除name缓存
hash -r 清除缓存

⑤命令别名

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行

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

alias

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

alias NAME=‘VALUE‘

撤消别名:unalias

unalias [-a] name [name ...]
unalias -a  #取消所有别名

注意:在命令行中定义的别名,仅对当前shell进程有效

如果想永久有效,要定义在配置文件中

仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效,bash进程重新读取配置文件

source /path/to/config_file
. /path/to/config_file

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

\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand   #只适用于外部命令

⑥命令格式

COMMAND [OPTIONS...] [ARGUMENTS...]
COMMAND [COMMAND] [COMMAND] ....

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

短选项:UNIX 风格选项,-c 例如:-l, -h
长选项:GNU风格选项,--word 例如:--all, --human
BSD风格选项: 一个字母,例如:a,使用相对较少

注:

多个选项以及多参数和命令之间使用空白字符分隔
取消和结束命令执行:Ctrl+c,Ctrl+d
多个命令可以用 ";" 符号分开
一个命令可以用\分成多行

7.常见命令

①查看cpu

②查看内存大小

③查看硬盘和分区情况

④查看查看内核版本和系统发型版本

⑤日期和时间

⑥关机和重启

⑦用户登录信息查看

⑧screen

⑨tmux

⑩echo

8.字符集和编码

① ASCII码

计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字
符与二进制位之间的关系,做了统一规定,即ASCII(American Standard Code for Information
Interchange) 码

② Unicode

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

9.命令行扩展和集合

① 命令行扩展:`` 和 $()

把一个命令的输出打印给另一个命令的参数,放在``中的一定是有输出信息的命令

$(COMMAND) 或 `COMMAND`

注: “ ” ,‘ ’, ``三者区别

单引号:强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,"最傻"
双引号:弱引用,不能识别命令,可以识别变量,"半傻不精"
反向单引号:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内
容当成命令进行执行后,再交给调用反向单引号的命令继续,"最聪明"

②括号扩展:{ }

{} 可以实现打印重复字符串的简化形式

{元素1,元素2,元素3}
{元素1..元素2}

关闭和启用{}的扩展功能

[root@centos8 ~]#echo $-
himBHs
[root@centos8 ~]#echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@centos8 ~]#set +B
[root@centos8 ~]#echo $-
himHs
[root@centos8 ~]#echo {1..10}
{1..10}
[root@centos8 ~]#set -B
[root@centos8 ~]#echo $-
himBHs
[root@centos8 ~]#echo {1..10}
1 2 3 4 5 6 7 8 9 10

10.Tab补全

tab 键可以实现命令及路径等补全,提高输入效率,避免出错

①命令补全:

内部命令:直接补全
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文
件,第一次找到的命令即为要执行的命令
命令的子命令补全,需要安装 bash-completion

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

②路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab给出列表

③双击Tab键

command 2Tab 所有子命令或文件补全
string2Tab 以string开头命令
/2Tab 显示所有根目录下一级目录,包括隐藏目录
./2Tab 当前目录下子目录,包括隐藏目录
*2Tab 当前目录下子目录,不包括隐藏目录
~2Tab 所有用户列表
$2Tab 所有变量
@2Tab /etc/hosts记录 (centos7 不支持)
=2Tab 相当于ls –A (centos7不支持)

11.命令行历史

12.调用命令行历史

13.bash快捷键

二.获得帮助

日常获得帮助逻辑:

COMMAND --help 或 COMMAND -h
使用 man 手册(manual): man COMMAND
信息页:info COMMAND
程序自身的帮助文档:README、INSTALL、ChangeLog
程序官方文档
相关网站,如:技术论坛
搜索引擎

1.whatis

whatis 使用数据库来显示命令的简短描述
此工具在系统刚安装后,不可立即使用,需要制作数据库后才可使用
执行下面命令生成数据库

#CentOS 7 版本以后
mandb
#CentOS 6 版本之前
makewhatis

2.查看命令的帮助

help COMMAND
man bash

3.--help和-h

显示用法总结和参数列表,大多数命令使用,但并非所有的命令工具含有此选项

格式说明:

[] 表示可选项
CAPS或 <> 表示变化的数据
... 表示一个列表
x |y| z 的意思是“ x 或 y 或 z ”
-abc的 意思是 -a -b –c
{ } 表示分组

4.man命令

man 提供命令帮助的文件,手册页存放在/usr/share/man,几乎每个命令都有man的“页面”

中文man需安装包

man-pages
man-pages-zh-CN

man 页面分组:

1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:配置文件格式
6:游戏
7:杂项
8:管理类的命令
9:Linux 内核API

man命令的配置文件:

#CentOS 6 之前版 man 的配置文件
/etc/man.config
#CentOS 7 之后版 man 的配置文件
/etc/man_db.conf
#ubuntu man 的配置文件
/etc/manpath.config

格式:

MANPATH /PATH/TO/SOMEWHERE   #指明man文件搜索位置

也可以指定位置下搜索COMMAND命令的手册页并显示

man -M /PATH/TO/SOMEWHERE COMMAND

查看man手册页

man [OPTION...] [SECTION] PAGE...
man [章节] keyword

man 帮助段落说明

NAME 名称及简要说明
SYNOPSIS 用法格式说明
[] 可选内容
<> 必选内容
a|b 二选一
{ } 分组
... 同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考

man命令的操作方法:使用less命令实现

space, ^v, ^f, ^F: 向文件尾翻屏
b, ^b: 向文件首部翻屏
d, ^d: 向文件尾部翻半屏
u, ^u: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
/KEYWORD
?以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写
?n:下一个
?N:上一个
?KEYWORD
?以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写
?n:跟搜索命令同方向,下一个
?N:跟搜索命令反方向,上一个

5.info

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

info 命令格式

info [ 命令 ]

导航info页

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

6.Linux安装提供的本地文档

二.Linux基础入门和帮助

标签:程序设计语言   很多   graphic   内容   command   虚拟终端   env   roo   普通用户   

原文地址:https://www.cnblogs.com/askword/p/14248158.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!