03,什么是shell,一些最基本的命令和小技巧。

什么是shell:

shell就是人机交互接口,以便于人类控制计算机,通常有图形界面和文字界面两种

图形界面:GUI:Graphic User Interface :

Windows

IOS, Android

X-Window

Gnome

KDE

Xfce

文字界面:CLI: Command Line Interface :

PowerShell

bsh

csh

tcsh

ksh

bash

zsh



Linux终端:

串行终端:(纯文本界面的终端,不能显示图形界面)

/dev/ttyS#

物理终端:

/dev/console

虚拟终端:Ctrl+Alt+F[1-6]

图形终端:Ctrl+Alt+F7

/dev/tty#

startx 命令 可 以启动 图形终端, startx & 表示 启动 图形终端 并让 这个 进程 后台 运                行,从而 释放 命令提示符

伪终端(模拟终端):远程连接,图形环境打开命令接口

/dev/pts/#

# tty命令:显示当前终端对应终端设备文件

这个是在虚拟终端1中执行的tty命令

这个是在Xshell远程终端中执行的tty命令



# who命令:查看当前系统上登录的所有用户及其信息

现在我的系统上一共 有 两个 用户, 他们 都是 用 root 登录 的, 不过 登录 的 设备 并不相同。。



Linux哲学思想:

1、一切皆文件;

open, read, write, close

2、由众多目的单一应用程序组成:一个程序只做一件事,且做好;

3、组合目的单一的小程序完成复杂任务;

4、尽量避免跟用户交互;

5、使用文本文件保存配置信息;

6、提供机制,而非策略;



bash简单入门:

管理员的命令提示符: #        

普通用户的命令提示符: $      

提示符 前面 还有 一行 字符, 这些 字符 可以 通过 修改 环境 变量 来 修改

环境变量: PS1

echo $PS1            #显示环境变量PS1

可见 [\[email protected]\h \W]\$, 这里 的 "\u"是用户名, "\h"是主机名, "\W"是用户当前所在目录

现在 显示 的 目录 是 " ~ ", 这个 是 用户 的 家目录 的 简写

修改 PS1环境变量:

这里 我 把 "\u"和"\h" 中间 的 " @ " 改成 了 "%", 再来 看一下 命令 提示符。

已经 改好 了。。

------------------------------------------

Linux路径:

/   :  这个 叫做 根, Linux 中 的 所有 文件 都 在 根目录 下 的

.   :  当前目录

..  :  上级目录

绝对路径: 就是 以 根 为 起点 的 路径

相对路径: 以 当前 目录 为 起点 的 路径, 如 : " ./a " , 这个 表示 当前目录下 的 a 文件

-------------------------------------------

cd 路径: 切换目录,直接 输入 cd 命令, 可 切换至 家目录

先由 家目录 切换至 /etc 目录 ,在 由 /etc 目录 切换 至 家目录

cd -   :  可 实现 切换 至 上一个 被 访问 的 目录, 有点 像 电视遥控器 里 的 回看, 其中   " - " 表示 上一个 被 访问 的 目录

--------------------------------------------

Linux文件系统的特性:

1、文件名可以使用除/以外的任意字符;但总长度不能超过255个;

2、严格区分大小写

--------------------------------------------

Linux命令:

bash中 命令 有 两种 类型, 分别 为 内部命令 和 外部命令

内部命令: bash 自带 的 命令, 也是 最基本 的 命令

外部命令: 后来 自己 安装 的 一些 软件 的 命令。

查看 命令 类型:

which 命令 可 查看 命令 所在 路径

type 可 查看 命令 的 类型

这里可见, ls 是 一个 外部命令, 而 cd 是一个 内部 命令, 因为 在 安装 路径 下 找不到 cd 的 安装 文件, 这里 可以 看见 一大堆 文件 路径, 这些 文件 路径 也 是 一个 环境 变量,叫 PATH

环境变量: PATH

这个 环境变量 是 用来 存放 命令 的 路径 的, 以 " : " 作为 分隔符, 命令 一般 会 存放 在 这些 目录 下, 执行 命令 时 会 按照 目录 的 次序 来 遍历 , 直到 找到 命令 并 执行, 不过 这 又 出现 了 一个 问题。, 遍历 命令 是 一个 非常 慢 的 操作, 所以 需要 一种 可以 快速 找到 命令 的 机制, 这种 机制 叫做 hash, 看一下 hash把。

这个 就是 我 的 hash表, 表中 存储 的 是 我 常用 的 命令 的 路径, 表 前面 的 数字 表示 这个 命令 的 执行次数,



正式 说一下 命令 把,

命令格式:

command    options    arguments

命令       选项       参数

选项: 调整命令的执行特性

选项可以有多个;多个选项之间必须以空格分隔

短选项: -char

长选项: --word

短选项可以合并;长选项 一般 不可以 合并;

有些选项需要有 参数

参数: 命令的作用对象

有些命令可以带多个参数,各参数间需要使用空格分隔

获取帮助:

内置命令:

# help 命令名

例如 help cd

外部命令: 有两种 形式 获取 帮助

# 命令 --help

使用命令手册:

man手册:

man [1-8] 命令名

使用手册中选项格式字符的意义:

[]: 可选部分

{a|b}: 分组, a和b作为一个使用单元,a,b之间只能选择一个

| : 或者, 只选其一

<> : 必选选项

... : 同类内容 可 同时出现 多个

man的简要操作

翻屏:

空格键:向下翻一屏

b: 向上翻一屏

回车键:向下翻一行

k: 向上翻一行

Ctrl+d : 向下翻半屏

Ctrl+u : 向上翻半屏

文本搜索:

/keyword : 向下搜索

?keyword : 向上搜索

n: 下一个

N: 上一个

man命令的分段机制: 一共分为8个段, 每段表示一种内容,同一个命令在不同段内显示的内容各不相同,如 passwd 在 第一段 显示 的 是 passwd 命令手册, 而在 第五段 显示 的是 passwd 配置文件 的 使用帮助, man 命令 如果 不加 段 的话 会 默认 显示 他 所找到 的 第一个 帮助手册。

1: 用户命令

2: 系统调用

3: 库调用

4: 设备文件

5: 配置文件格式

6: 游戏

7: 杂项

8: 管理命令

查看关键字在那些段落中可使用

# whatis Keyword    

可见 passwd 在 1, 5, 1ssl 三个段 中

# man -k Keyword

这个是 模糊 查找, 把 Keyword 多 出现过 的 地方 都 列出来。

这里 再 强调 一下, 内部 命令 手册 用 help 来 查, 外部命令 用 man 来查。。

-----------------------------------------------------------

info命令:

这个是在线帮助文档, 只要联网就能用, 操作和 man 差不多。。

-----------------------------------------------------------

还有 RedHat官方文档, 不过是英文的。。。。

www.redhat.com/docs

还有 我们 的 大谷歌~:

谷歌 很 强大, 有 好多 使用 技巧 的。 这里 就 不说 了。



简单管理类命令:

    shutdown [option]... TIME

-r: 重启

-h: 关机:

-c: 取消重启命令

TIME格式:

now: 直接关机

+#: #分钟后关机

hh:mm  : 固定时间关机

---------------------------------------------------

reboot: 重启, 一般会 这么 用

sync;sync;reboot , 这里 的 sync 是 将 内存中 还没 来得及 存入 硬盘 的 数据 手动 存入 硬盘。

---------------------------------------------------

halt    [-p] : 立即关机

-p : 关机之后 并 切断 电源。。

---------------------------------------------------

poweroff: 同 halt, 几乎 没什么 区别。。



date : 显示时间

也可自定义显示时间的格式。

%Y: 四位年份

%y: 两位年份

%m: 月

%d: 日

%H: 时

%M: 分

%S: 秒

unix元年:      1970-01-01-00:00:00

%s : 从 unix 元年 到 现在 所 经过 的 秒数, 可以解决时差问题。

-----------------------------------------------------------------------------------

cal : 显示 日历

---------------------------------------------------------------------

Linux的两种时钟:

硬件时钟: 计算机硬件自带的时钟

软件时钟: 系统开机时自动读取硬件时钟,然后就自行计算时间了。

date 显示 的 就是 软件时钟的 时间

hwclock [-sw]: 硬件时钟时间

有 两个 选项:

-s: 以硬件时钟为准, 同步系统时钟

-w: 以系统时钟为准,同步硬件时钟。

------------------------------------------------------------------------

dirname:显示指定路径除了文件名之外的前缀

basename:显示指定路径的后缀,



Shell常见使用技巧:(这里先总结一些我知道的,以后还会继续整理的。。)

Ctrl+C    : 取消命令, 当 命令 正在 执行 是 可以 强制 取消 这个 命令

shift+pgup 和 shift+pgdn : 这 两个 是 bash 的 翻页 命令,

esc + .: 获取 上个 命令 的 参数, 相当于 !$

时间: 2024-10-13 12:46:03

03,什么是shell,一些最基本的命令和小技巧。的相关文章

对于shell脚本参数获取时的一点小技巧

问题如下: 根据脚本参数的个数$#进行一个循环,在依次输出每个参数$1 $2 $3...... 我有一个循环变量i $i 取到这时的i为1,我想使用这个1再去调用$1,也是就是打印出第一个参数 就是$($i)的意思来取到第几个参数,当然$($i)是不好用的 当时纠结了好久,最后上百度提问,两位高手给出了答案: 1) #!/bin/sh NUMBER=$# echo $NUMBER i=1 while [ $i -le $NUMBER ] do a[$i]=$1 #将数组a[i]赋值为$1,即取得

shell编程中一些有意思的命令和小技巧

echo -e:启用反斜线控制字符的转换        -E:关闭反斜线控制字符的转换(预设如此)        -n:取消行末之换行符号(与 -e 选项下的 \c 字符同意 -e参数下的控制参数  \a 发出警告声:     \b 删除前一个字符:            \c 最后不加上换行符号:            \f 换行但光标仍旧停留在原来的位置:            \n 换行且光标移至行首:            \r 光标移至行首,但不换行:            \t 插入

UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版

软件名称:UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版软件类别:汉化软件运行环境:Windows软件语言:简体中文授权方式:免费版软件大小:635 KB软件等级:整理时间:2012-10-18 08:49:15插件情况:无插件,放心使用! 该软件经过四种杀毒软件检测,结果如下:卡巴检测:安全 瑞星检测:安全 江民检测:安全 麦咖啡检测:安全 下载地址:点击开始下载 软件截图: 软件简介: UPX3.03+UpolyX.5 Shell 非常经典的软件压缩.加壳加密软件,欢迎程

Matlab使用新发现1(小技巧:shell 命令、工程工作目录设置相关)

最近在调试一个基于Matlab的程序,在偶然间发现了几个比较有趣的技巧,给大家分享一下(很可能是太菜鸟了,没有涉及这方面,大方之家请勿见笑,对您有所帮助请点赞!) 1. Matlab语言是一种解释型语言(interpreter) 就像我在总结软件架构数据流时的一种:Interpreter / virtual machine (解释器/虚拟机),具体架构可以参看以下博文:http://blog.csdn.net/lg1259156776/article/details/46802107(解释性语言

shell 中 exec 和 source 命令解析

文章大部分来源于:http://www.cnblogs.com/zhaoyl/archive/2012/07/07/2580749.html 作为笔记留存博客备忘. exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,

mysql写Shell小技巧

今天终于在表哥的帮助下解决了文件导入/出这个问题了.(很菜逼的一个问题),然后将最近看到的文章都自己测试了下,顺便奉上记录.1.Mysql数据库支持union的时候写文件小技巧: 采用常规的union写入,可以看到前面的字段占位数肯定也会被写入,替换成null也是一样的结果,这个对于写shell没啥大碍,但是如果用来写bat,mof,vbs等文件就会出问题了,那么怎么去掉这个只写入我们需要的内容呢?采用hex编码就好了. 将我们要写入的内容使用hex编码在分段写在每个字段位上,这样就可以只写入我

adb shell中的am pm命令

adb shell中的am pm命令,一些自己的见解和大多数官网的翻译. 先说下am命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等.当你在adb shell命令下执行am命令: am <command>你也可以在adb shell前执行am命令:adb shell am start -a android.intent.action.VIEW关于一些am命令的介绍:start [o

[Shell]Shell基本功能:历史命令 &amp; 别名

-------------------------------------------------------------------------------------------------------- 一. 历史命令 history    #查看历史命令 history -c #清空历史命令 history -w #不等退出,直接把缓存中的历史命令写入历史命令保存文件-/.bash_history vim /etc/profile  #默认历史命令保存1000条,可修改HISTSIZE保

Shell特殊变量:Shell $0, $#, $*, [email&#160;protected], $?, $$和命令行参数

变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. [email protected] 传递给脚本或函数的所有参数.被