linux基础

Posted yuanhonli-xin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础相关的知识,希望对你有一定的参考价值。

实验环境
[[email protected] ~]#cat /etc/centos-release
CentOS release 6.10 (Final)
[[email protected] ~]#cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)

linux用户

root用户:超级用户,拥有至高无上的权限,
普通用户:由root创建,权限有限。
id命令可以显示真实有效的用户ID(UID)和组ID(GID)。

Centos6.10
技术分享图片

Centos7.5
技术分享图片

终端类型

  • 物理终端:控制台console
  • 虚拟终端:/dev/tty# #为[1-6],Ctrl+Alt+F[1-6]可以由图形界面切换至虚拟终端,Alt+F[1-6]可以直接在终端之间切换。
  • 图形终端:,即图形界面,Alt + F7可以切换。
  • 伪终端:/dev/pts/# ,是基于ssh的远程连接。
    查看当前终端:
[[email protected] ~]#tty
/dev/pts/0

shell

1. 什么是shell?
shell相当于linux的命令解释器,把用户输入的命令解析为二进制语言,交给内核进行执行,并把结果返回给用户。
技术分享图片
CentOS默认使用bash ——GNU Bourne-Again Shell
查看当前系统使用的shell
[[email protected] ~]#echo $SHELL /bin/bash
查看系统支持的所有shell
[[email protected] ~]#cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh

命令提示符——prompt

##### 1. shell命令提示符及颜色是由PS1来配置,可以根据自己的需要定制。

显示提示符格式:
[[email protected] ~]#echo $PS1
[e[1;44;37m][[email protected]h W]$[e[0m]

效果如图所示:
技术分享图片

其中PS1常用的参数如下所示:
e 33
u 当前用户
h 主机名简称
H 主机名
w 当前工作目录
W 当前工作目录基名
24小时时间格式
T 12小时时间格式
! 命令历史数
# 开机后命令历史数
$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$

2. 颜色配置:

PS1中设置字符颜色的格式为:[e[F;Bm]
其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。颜色表如下:

F B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

在命令行配置后,只是临时生效,重新登录或者重启就会失效,如果想要永久生效,需要修改配置文件,涉及的配置文件有/etc/profile 、 /etc/profile.d/*.sh 、 ~/.bash_profile 、~/.bashrc 、/etc/bashrc,

[[email protected] ~]#vim /etc/profile.d/env.sh 
PS1="[e[1;41;33m][[email protected]h W]\\$[e[0m]"

修改完成后重新加载下文件即可生效:source或.
[[email protected] ~]#source /etc/profile.d/env.sh

技术分享图片

shell中的命令

1.1 命令格式:

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

选项:用于实现具体的某个功能;
短选项:-c 例如:-l, -h
长选项:--word 例如:--all, --human-readable
参数:命令的作用对象,比如文件名,用户名等

注意:

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

在shell中可以执行的命令有两类,内部命令和外部命令

内部命令:

由shell自带的
查看列表:help或enable
enable –n cmd: 禁用内部命令,禁用后将不能使用,需要注销失效
enable cmd: 启用内部命令
enable –n :查看所有禁用的内部命令,或help查看命令前面带有*,通过enable查看不再显示命令。

外部命令:

在文件系统路径下有对应的可执行程序文件
查看路径:which -a cmd或whereis cmd

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

type 【-a】 cmd
技术分享图片

1.4 hash缓存表

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

hash常见用法:
hash 显示hash缓存
技术分享图片

其中hits是指命令执行的次数,后面是命令具体的路径(注意:默认从PATH路径中查找,顺序为从左向右,直到找到为止,如果一个命令存在于多个路径中,他只匹配到第一个找到的路径,所以先后顺序很关键。)

hash –l 显示hash缓存,可作为输入使用
技术分享图片

hash –p path name :将命令全路径path起别名为name
技术分享图片

hash –t name :打印缓存中name的路径
技术分享图片

hash –d name: 清除name缓存
技术分享图片

hash –r 清除缓存
技术分享图片

1.5 别名

在使用linux的过程中,有很多配置命令很长,并且需要重复的执行,这时可以使用别名进行简化。

查看别名:alias

技术分享图片

定义别名:

alias NAME=‘VALUE‘
即:定义别名“name”,相当于执行命令“value”
技术分享图片

取消别名:unalias

unalias [-a] name [name ...]
-a 取消所有别名
技术分享图片

在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
对于修改后的配置文件不会立即生效,可以通过以下命令使bash进程重新读取配置文件生效:
source /path/to/config_file
. /path/to/config_file
或者建议:修改完配置文件后,在命令行中执行命令生效。

执行原始命令:

————————————————————————————————————
如果别名同原命令同名,并且要执行原命令,可使用
ALIASNAME
“ALIASNAME”
’ALIASNAME’
/path/commmand 命令的绝对路径,适用于外部命令

前三种对于外部命令和内部命令通用,最后一种仅仅适用于外部命令。

如何获取命令帮助?

1.1 内部命令

help COMMAND
man bash

1.2 外部命令

(1) COMMAND --help

对于帮助中的常用的符号,含义如下:
[] 表示可选项
CAPS或 <> 表示变化的数据
... 表示一个列表
x |y| z 的意思是“ x 或 y 或 z “
-abc的 意思是-a -b –c
{ } 表示分组

(2) 使用手册(manual)
语法:man COMMAND
————————————————————————————————————

  1. man章节
    ————————————————————————————————————

    man章节:man对于不同的命令以及配置文件有具体的分类,如下所示
    ?1: 用户命令
    ?2: 系统调用
    ?3: C库调用
    ?4: 设备文件及特殊文件
    ?5: 配置文件格式
    ?6: 游戏
    ?7: 杂项
    ?8: 管理类的命令
    ?9:Linux 内核API

建议:对于外部命令查看man帮助时,先使用whatis查看与命令相关的章节,再【man 章节序号 命令 】进行查看,默认打开的是序号最小的章节。
技术分享图片
————————————————————————————————————

  1. man手册格式解读:
    ————————————————————————————————————
    ?NAME 名称及简要说明
    ? SYNOPSIS 用法格式说明
    ? [] 可选内容
    ? <> 必选内容
    ? a|b 二选一
    ? { } 分组
    ? ... 同一内容可出现多次
    ? DESCRIPTION 详细说明
    ? OPTIONS 选项说明
    ? EXAMPLES 示例
    ? FILES 相关文件
    ? AUTHOR 作者
    ? COPYRIGHT 版本信息
    ? REPORTING BUGS bug信息
    ? SEE ALSO 其它帮助参考
    ————————————————————————————————————
    3.man操作方法
    ————————————————————————————————————
    空格键:向文件尾部翻一屏
    回车键:一次向文件尾部翻一行
    k:一次向文件首部翻一行
    b:向文件首部翻一屏
    ctrl+d:向文件尾部翻半屏
    ctrl+u:向文件首部翻半屏
    G:跳转至最后一行
    NG:跳转至指定行
    1G:跳转至文件第一行,首部
    /keyword:从文件首部向文件尾部依次查找,不区分大小写
    n: 下一个
    N:上一个
    ?keyword:从文件尾部向文件首部依次查找,不区分字符大小写
    n: 跟搜索命令同方向,下一个
    N:跟搜索命令反方向,上一个
    q:退出
    ————————————————————————————————
    4.配置文件
    ————————————————————————————————
    man命令的配置文件:
    /etc/man.config(CentOS6)
    /etc/man_db.conf(CentOS7)
    其中MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
    ————————————————————————————————
    5.man几个使用技巧
    ————————————————————————————————
    查看man手册页
    man [章节] keyword
    ? 列出所有帮助
    man –a keyword
    ? 搜索man手册
    man -k keyword 列出所有匹配的页面
    使用 whatis 数据库
    ? 相当于whatis
    man –f keyword
    ? 打印man帮助文件的路径
    man –w [章节] keyword

(3) 信息页
info COMMAND

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

(4) 程序自身的帮助文档
在/usr/share/doc目录中有一些常见软件包的文档:README INSTALL CHANGES

(5) 程序官方文档
例如对于nginx、Apache等,官网最权威
?http://www.nginx.org
?http://tomcat.apache.org
?http://httpd.apache.org
?http://www.python.org

(6) 发行版的官方文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
7) Google、百度搜索技巧:
推荐网站:
? http://tldp.org
?http://www.slideshare.net
?http://www.google.com
Openstack filetype:pdf————-指定文档类型
rhca site:redhat.com/docs——————指定搜索站点









































































































































































以上是关于linux基础的主要内容,如果未能解决你的问题,请参考以下文章

20155307刘浩《网络对抗》逆向及Bof基础

20155311高梓云《网络对抗》逆向及Bof基础

20145301赵嘉鑫《网络对抗》逆向及Bof基础

[vscode]--HTML代码片段(基础版,reactvuejquery)

Linux bash基础特性二

[linux][c/c++]代码片段01