未经博主允许,禁止转载本博客任何内容,如需转载或内容雷同请留言,谢谢合作,不胜感激!

Linux基础

Linux基础 毛竹、 814℃ 0评论

用户登录

终端

Shell介绍

执行命令

简单命令

Tab键补全

命令行历史

bash快捷键

使用gnome-terminal

whatis

command–help

man andinfo

本地帮助文档/usr/share/doc/

官网在线文档

其它网站和搜索

用户登录

root用户

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

普通(非特权 )用户权限有限

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

终端

键盘鼠标显示器

  • 物理终端(/dev/console ) 控制台console
  • 虚拟终端(tty:teletypewriters,/dev/tty# #为[1-6])
    • tty 可有n个,Ctrl+Alt+F[1-6]
  • 图形终端(/dev/tty7 ) startx, xwindows CentOS 6: Ctrl + Alt + F7
    • CentOS 7: 在哪个终端启动,即位于哪个虚拟终端
  • 串行终端(/dev/ttyS# )
    • ttyS
  • 伪终端(pty:pseudo-tty , /dev/pts/# ) pty, SSH远程连接
  • 查看当前的终端设备:
    • tty

交互式接口

  • 交互式接口:启动终端后,在终端设备附加一个交互式应用程序
  • GUI:Graphic UserInterface
    • X protocol, window manager, desktop
    • Desktop:
      • GNOME (C, 图形库gtk)
      • KDE (C++, 图 形 库 qt)
      • XFCE (轻量级桌面)
  • CLI:Command LineInterface
    • shell程序:sh (bourn 史蒂夫·伯恩) csh tcsh ksh (korn) bash (bourn again shell)GPL zsh

什么是shell?

  • Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
  • shell也被称为LINUX的命令解释器(commandinterpreter)
  • shell是一种高级程序设计语言

bash shell

  • GNUBourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是 Linux标准的shell,与sh兼容
  • CentOS默认使用
  • 显示当前使用的shell
    • echo${SHELL}
  • 显示当前系统使用的所有shell
    • cat/etc/shells

命令提示符

  • 命令提示符:prompt
  • [root@localhost~]#
    • # 管理员
    • $ 普通用户
  • 显示提示符格式
    • [root@localhost ~]#echo $PS1
  • 修改提示符格式
    • PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”
      • \e \033 \u 当前用户
      • \h 主机名简称 \H 主机名
      • \w 当前工作目录 \W 当前工作目录基名
      • \t 24小时时间格式 \T 12小时时间格式
      • \! 命令历史数 \# 开机后命令历史数

执行命令

  • 输入命令后回车
    • 提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来
  • 在shell中可执行的命令有两类
    • 内部命令:由shell自带的,而且通过某命令形式提供help 内部命令列表
      • enable cmd 启用内部命令enable –n cmd 禁用内部命令
      • enable –n 查看所有禁用的内部命令
    • 外部命令:在文件系统路径下有对应的可执行程序文件
      • 查看路径:which -a |–skip-alias ; whereis
  • 区别指定的命令是内部或外部命令
    • type COMMAND

执行外部命令

  • 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
    • aliasNAME=’VALUE’
  • 在命令行中定义的别名,仅对当前shell进程有效
  • 如果想永久有效,要定义在配置文件中
    • 仅对当前用户:~/.bashrc
    • 对所有用户有效:/etc/bashrc
  • 编辑配置给出的新配置不会立即生效
  • bash进程重新读取配置文件
    • source/path/to/config_file
    • . /path/to/config_file
  • 撤消别名:unalias
    • unalias [-a] name [name …]
    • -a 取消所有别名
  • 如果别名同原命令同名,如果要执行原命令,可使用
    • \ALIASNAME “ALIASNAME” ‘ALIASNAME’
    • command ALIASNAME
    • /path/commmand

命令格式

  • COMMAND [OPTIONS…][ARGUMENTS…]
    • 选项:用于启用或关闭命令的某个或某些功能
      • 短选项:-c 例如:-l,-h
      • 长选项:–word 例如:–all, –human-readable
  • 参数:命令的作用对象,比如文件名,用户名等
  • 注意:
    • 多个选项以及多参数和命令之间使用空白字符分隔
    • 取消和结束命令执行:Ctrl+c,Ctrl+d
    • 多个命令可以用;符号分开
    • 一个命令可以用\分成多行

日期和时间

  • Linux的两种时钟
    • 系统时钟:由Linux内核通过CPU的工作频率进行的
    • 硬件时钟:主板
  • 相关命令
    • date 显示和设置系统时间
      • date +%s
      • date -d @1509536033
    • hwclock,clock: 显示硬件时钟
      • -s, –hctosys 以硬件时钟为准,校正系统时钟
      • -w, –systohc 以系统时钟为准,校正硬件时钟
  • 时区:/etc/localtime
  • 显示日历:cal–y

简单命令

  • 关机:halt,poweroff
  • 重启:reboot
    • -f: 强制,不调用shutdown
    • -p: 切断电源
  • 关机或重启:shutdown
    • shutdown [OPTION]… [TIME] [MESSAGE]
    • -r: reboot
    • -h: halt
    • -c:cancel
    • TIME:无指定,默认相当于+1(CentOS7)
      • now: 立刻,相当于+0
      • +m: 相对时间表示法,几分钟之后;例如 +3
      • hh:mm: 绝对时间表示,指明具体时间
  • 用户登录信息查看命令:
    • whoami: 显示当前登录有效用户who: 系统当前所有的登录会话
    • w: 系统当前所有的登录会话及所做的操作
  • nano文本编辑
  • screen命令:
    • 创建新screen会话
      • screen –S [SESSION]
    • 加入screen会话
      • screen –x [SESSION]
    • 退出并关闭screen会话
      • exit
    • 剥离当前screen会话
      • Ctrl+a,d
    • 显示所有已经打开的screen会话
      • screen -ls
    • 恢复某screen会话
      • screen -r [SESSION]
  • echo命令
    • 功能:显示字符
    • 语法:echo [-neE][字符串]
    • 说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
      • 选项:
        • -E (默认)不支持 \ 解释功能
        • -n 不自动换行
        • -e 启用 \ 字符的解释功能
    • 显示变量
      • echo “$VAR_NAME“ 变量会替换,弱引用echo ‘$VAR_NAME‘ 变量不会替换,强引用
    • 启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
      • \a 发出警告声
      • \b 退格键
      • \c 最后不加上换行符号
      • \n 换行且光标移至行首
      • \r 回车,即光标移至行首,但不换行
      • \t 插入tab
      • \\ 插入\字符
      • \0nnn 插入nnn(八进制)所代表的ASCII字符
        • echo -e ‘\033[43;31;5mmagedu\033[0m’
      • \xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)

 

ASCII:American Standard Code for Information Interchange

 

 命令行扩展、被括起来的集合

  • 命令行扩展:$( ) 或 “
    • 把一个命令的输出打印给另一个命令的参数
      • echo “This system’s name is $(hostname) “
      • This system’s name is server1.example.com
      • echo “i am `whoami` “
      • i am root
  • 括号扩展:{ }
    • 打印重复字符串的简化形式
      • echo file{1,3,5} 结果为:file1 file3 file5
      • rm -f file{1,3,5}
      • echo {1..10}
      • echo {a..z}
      • echo {000..20..2}

tab键

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

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

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

双击tab键

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

命令行历史

  • 保存你输入的命令历史。可以用它来重复执行命令
  • 登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
  • 登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
  • 重复前一个命令,有4种方法
    • 重复前一个命令使用上方向键,并回车执行
    • 按 !! 并回车执行
    • 输入 !-1并回车执行
    • 按 Ctrl+p并回车执行
  • !:0 执行前一条命令(去除参数)
  • Ctrl+ n 显示当前历史中的下一条命令,但不执行
  • Ctrl+ j 执行当前命令
  • !n 执行history命令输出对应序号n的命令
  • !-n 执行history历史中倒数第n个命令

 

命令行历史

  • !string重复前一个以“string”开头的命令
  • !?string重复前一个包含string的命令
  • !string:p仅打印命令历史,而不执行
  • !$:p打印输出 !$ (上一条命令的最后一个参数)的内容
  • !*:p打印输出 !*(上一条命令的所有参数)的内容
  • ^string删除上一条命令中的第一个string
  • ^string1^string2将上一条命令中的第一个string1替换为string2
  • !:gs/string1/string2 将上一条命令中所有的string1都替换为 string2

 

命令行历史

  • 使用up(向上)和down(向下)键来上下浏览从前输入的命令
  • ctrl-r来在命令历史中搜索命令
    • (reverse-i-search)`’:
  • Ctrl+g:从历史搜索模式退出
  • 要重新调用前一个命令中最后一个参数
    • !$ 表示
    • Esc,.(点击Esc键后松开,然后点击 . 键)
    • Alt+.(按住Alt键的同时点击 . 键)

调用历史参数

  • command !^ 利用上一个命令的第一个参数做cmd的参数
  • command !$ 利用上一个命令的最后一个参数做cmd的参数
  • command !* 利用上一个命令的全部参数做cmd的参数
  • command!:n 利用上一个命令的第n个参数做cmd的参数
  • command!n:^ 调用第n条命令的第一个参数
  • command !n:$调用第n条命令的最后一个参数
  • command !n:m调用第n条命令的第m个参数
  • command!n:* 调用第n条命令的所有参数
  • command !string:^从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
  • command!string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
  • command !string:n从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
  • command !string:*从命令历史中搜索以 string 开头的命令,并获取它的所有参数

命令history

  • history [-c] [-d offset][n]
  • history -anrw[filename]
  • history -ps arg[arg…]
    • -c: 清空命令历史
    • -d offset: 删除历史中指定的第offset个命令n: 显示最近的n条历史
    • -a: 追加本次会话新执行的命令历史列表至历史文件
    • -r: 读历史文件附加到历史列表
    • -w: 保存历史列表到指定的历史文件
    • -n: 读历史文件中未读过的行到历史列表
    • -p: 展开历史参数成多行,但不存在历史列表中
    • -s: 展开历史参数成一行,附加在历史列表后

命令历史相关环境变量

  • HISTSIZE:命令历史记录的条数
  • HISTFILE:指定历史文件,默认为~/.bash_history
  • HISTFILESIZE:命令历史文件记录历史的条数
  • HISTTIMEFORMAT=“%F%T “ 显示时间
  • HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史
  • 控制命令历史的记录方式:
    • 环境变量:HISTCONTROL
      • ignoredups 默认,忽略重复的命令,连续且相同为“重复”
      • ignorespace 忽略所有以空白开头的命令
      • ignoreboth 相当于ignoredups, ignorespace的组合
      • erasedups 删除重复命令
  • export 变量名=”值“
  • 存放在 /etc/profile 或~/.bash_profile

bash的快捷键

  • Ctrl+ l 清屏,相当于clear命令
  • Ctrl+ o 执行当前命令,并重新显示本命令
  • Ctrl+ s 阻止屏幕输出,锁定
  • Ctrl+ q 允许屏幕输出
  • Ctrl+ c 终止命令
  • Ctrl+ z 挂起命令
  • Ctrl+ a 光标移到命令行首,相当于Home
  • Ctrl+ e 光标移到命令行尾,相当于End
  • Ctrl+ f 光标向右移动一个字符
  • Ctrl+ b 光标向左移动一个字符
  • Alt + f 光标向右移动一个单词尾
  • Alt + b 光标向左移动一个单词首
  • Ctrl+ xx 光标在命令行首和光标之间移动
  • Ctrl+ u 从光标处删除至命令行首
  • Ctrl+ k 从光标处删除至命令行尾
  • Alt + r 删除当前整行
  • Ctrl+ w 从光标处向左删除至单词首
  • Alt + d 从光标处向右删除至单词尾
  • Ctrl+ d 删除光标处的一个字符
  • Ctrl+ h 删除光标前的一个字符
  • Ctrl+ y 将删除的字符粘贴至光标后
  • Alt+ c 从光标处开始向右更改为首字母大写的单词
  • Alt + u 从光标处开始,将右边一个单词更改为大写
  • Alt + l 从光标处开始,将右边一个单词更改为小写
  • Ctrl+ t 交换光标处和之前的字符位置
  • Alt + t 交换光标处和之前的单词位置
  • Alt + N 提示输入指定字符后,重复显示该字符N次
  • 注意:Alt组合快捷键经常和其它软件冲突

gnome-terminal

  • 应用程序->附件->终端
  • 支持多个“标签”shell的图形化终端模拟器
    • Ctrl-Shift-n 创建新窗口
    • Ctrl-Shift-q 关闭当前窗口
    • Ctrl-Shift-t 创建一个标签页
    • Ctrl-Shift-w 关闭一个标签页
    • Ctrl-PaUp/PgUn切换到下一个/前一个标签页
    • Ctrl-Shift-c复制选中的文本
    • Ctrl-Shift-v把文本粘帖到当前光标处

获得帮助

  • 获取帮助的能力决定了技术的能力!
  • 多层次的帮助
    • whatis
    • command–help
    • man and info
    • /usr/share/doc/
    • Red Hat documentation
    • 其它网站和搜索

whatis

  • 显示命令的简短描述
  • 使用数据库
  • 刚安装后不可立即使用
  • makewhatis| mandb制作数据库
  • 使用示例:
    • whatis cal 或 man –f cal

命令帮助

  • 内部命令:helpCOMMAND 或 man bash
  • 外部命令: (1) COMMAND–help
    • COMMAND -h
  • 使用手册(manual)
    • manCOMMAND
  • 信息页
    • info COMMAND
  • 程序自身的帮助文档
    • README
    • INSTALL
    • ChangeLog
  • 程序官方文档
    • 官方站点:Documentation
  • 发行版的官方文档
  • Google

–help和-h选项

  • 显示用法总结和参数列表
  • 使用的大多数,但并非所有的
  • 示例:
    • date –help
    • Usage: date [OPTION]… [+FORMAT] or: date [-u|–utc|– universal] [MMDDhhmm[[CC]YY][.ss]]
    • [] 表示可选项
    • CAPS或 <> 表示变化的数据
    • … 表示一个列表
    • x |y| z 的意思是“ x 或 y 或 z “
    • -abc的 意思是-a -b –c
    • { } 表示分组

练习

  • 1、显示当前时间,格式:2016-06-1810:20:30
  • 2、显示前天是星期几
  • 3、设置当前日期为2019-08-0706:05:10

man命令

  • 提供命令帮助的文件
  • 手册页存放在/usr/share/man
  • 几乎每个命令都有man的“页面”
  • man页面分组为不同的“章节”
  • 统称为Linux手册
  • man命令的配置文件:/etc/man.config| conf
    • MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
  • man-M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示
  • 中文man需安装包man-pages-zh-CN

man章节

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

man帮助段落说明

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

man帮助

  • 查看man手册页
    • man [章节] keyword
  • 列出所有帮助
    • man –a keyword
  • 搜索man手册
    • man -k keyword 列出所有匹配的页面
    • 使用 whatis 数据库
  • 相当于whatis
    • man –f keyword
  • 打印man帮助文件的路径
    • man–w [章节] keyword

man命令

  • 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:跟搜索命令反方向,上一个

练习

  • 1、在本机字符终端登录时,除显示原有信息外,再显示当前登录终端号,主机名和当前时间
  • 2、今天18:30自动关机,并提示用户

info

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

导航info页

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

通过本地文档获取帮助

  • System->help(centos6)
  • Applications ->documentation->help(centos7)
    • 提供的官方使用指南和发行注记
  • /usr/share/doc目录
    • 多数安装了的软件包的子目录,包括了这些软件的相关原理说明
    • 常见文档:READMEINSTALL CHANGES
    • 不适合其它地方的文档的位置配置文件范例HTML/PDF/PS 格式的文档授权书详情

通过在线文档获取帮助

红帽全球技术支持服务

  • redhat.com或者本地卫星服务器/代理服务器
    • 基于网络管理的服务器
    • RHN代理服务器为RHN流量提供缓存
    • RHN卫星服务器提供自主的RHN
  • RHN账户
    • 为及其注册和基于网络管理的RHN用户
    • 用于系统自动验证的系统ID
  • sosreport
    • 收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术支持人员和红帽全球支持提供分析问题依据

网站和搜索

转载请注明:黑夜 » Linux基础

喜欢 (2)or分享 (0)

您必须 登录 才能发表评论!