加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux基础

发布时间:2020-12-14 01:09:17 所属栏目:Linux 来源:网络整理
导读:linux基础 用户登陆 root 用户 一个特殊的管理帐户 也被称为超级用户 root已接近完整的系统控制 对系统损害几乎有无限的能力 除非必要,不要登录为 root 2.普通( 非特权 )用户 权限有限 造成损害的能力比较有限 什么是shell Shell 是Linux系统的用户界面,
linux基础

用户登陆

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

    2.普通( 非特权 )用户
    权限有限
    造成损害的能力比较有限

什么是shell

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

    bash shell

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

    执行命令

  • 输入命令后回车
    ?? 提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后
    提交给内核分配资源将其运行起来
  • 在shell中可执行的命令有两类
    内部命令:由shell自带的,而且通过某命令形式提供
    ???? ?? ?? help 内部命令列表
    ????????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 清除缓存

    日期和时间

  • 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

    简单命令

  • 用户登录信息查看命令:
    ??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’ 变量不会替换,强引用

    字符集和编码

  • ASCII码:计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美
    国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。
    ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的
    一位统一规定为0
  • Unicode:用于表示世界上所有语言中的所有字符。每一个符号都给予一个独
    一无二的编码数字,Unicode 是一个很大的集合,现在的规模可以容纳100多
    万个符号。Unicode 仅仅只是一个字符集,规定了每个字符对应的二进制代码,
    至于这个二进制代码如何存储则没有规定
  • Unicode编码方案:
    UTF-8:变长,1到4个字节
    UTF-16:变长,2或4个字节
    UTF-32:固定长度,4个字节
  • UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,可变长存储。使
    用 1 - 4 个字节表示一个字符,根据字符的不同变换长度。编码规则如下:
    ?∴对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode
    ??码。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着
    ??ASCII 码的文档可用 UTF-8 编码打开。
    ?∴对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设
    为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的
    二进制位则使用这个字符的 Unicode 码来填充
  • 编码转换和查询:
    http://www.chi2ko.com/tool/CJK.htm
    https://javawind.net/tools/native2ascii.jsp?action=transform
    http://tool.oschina.net/encode

    Unicode和UTF-8


    示例:
    “汉”的 Unicode 码 0x6C49(110 110001 001001),需要三个字节存储,格式为: 1110xxxx 10xxxxxx 10xxxxxx,从后向前依次填充对应格式中的 x,多出的 x 用 0 补,得出UTF-8 编码为 11100110 10110001 10001001
    “马”的 Unicode 码 0x9A6C(1001 101001 101100),需要三个字节存储,格式为: 1110xxxx 10xxxxxx 10xxxxxx,从后向前依次填充对应格式中的 x,多出的 x 用 0 补,得出UTF-8 编码为11101001 10101001 10101100

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

  • 命令行扩展:$( ) 或 ``

?把一个命令的输出打印给另一个命令的参数
?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,5}
    echo {1..10}
    echo {a..z}
    echo {000..20..2}

    tab键

  • 命令补全
    ??内部命令:
    ??外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻
    以给定命令名命名的文件,第一次找到的命令即为要执行的命令
    ??用户给定的字符串只有一条惟一对应的命令,直接补全
    ??否则,再次Tab会给出列表
  • 路径补全
    ?? 把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字
    符串开头的文件名
    ??如果惟一:则直接补全
    ??否则:再次Tab给出列表

    命令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: 展开历史参数成一行,附加在历史列表后

    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组合快捷键经常和其它软件冲突

    获得帮助

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

    whatis

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

    man命令

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

    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:翻至文件尾部

    man搜索

  • /KEYWORD:
    ??以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区
    分字符大小写;
    ??n: 下一个
    ??N:上一个
  • ?KEYWORD:
    ??以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区
    分字符大小写;
    ?? n: 跟搜索命令同方向,下一个
    ?? N:跟搜索命令反方向,上一个

    通过在线文档获取帮助

  • 第三方应用官方文档
    ?http://httpd.apache.org
    ? http://www.nginx.org
    ? https://mariadb.com/kb/en
    ? https://dev.mysql.com/doc/
    ? http://tomcat.apache.org
    ? http://www.python.org
  • 通过发行版官方的文档光盘或网站可以获得
    安装指南、部署指南、虚拟化指南等
    红帽知识库和官方在线文档
    ? http://kbase.redhat.com
    ? http://www.redhat.com/docs
    ? http://access.redhat.com
    ? https://help.ubuntu.com/lts/serverguide/index.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读