Linux学习

Posted

tags:

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

目录

1.历史发展
2.Linux入门
3.使用帮助
4.文件管理
5.重定向和管道

一、历史发展

1.发展历史进程

2.入门基础知识

二、Linux入门

1.用户登录

     root用户   超级用户,接近完整的系统控制  除非必要不要登录  # 
     普通用户  权限有限  $

2.终端 terminal

     tty 显示当前终端

3.shell介绍

     接收用户输入的命令送去内核执行,人机交互的语言  
     echo $SHELL   显示当前的shell的类型
     cat  /etc/shells   显示当前系统所使用的所有shell

4.执行命令

     命令提示符prompt  
            [[email protected]~]#    
            echo $PS1  显示当前的提示符格式

技术分享图片

            PS1=’\[\e[31m\][\[email protected]\h\W]\\$\[\e[0m\] ‘  改变提示符                 
                      {颜色  31m-38m}
            输入命令后回车执行命令
     shell中可执行的命令
            内部命令
                enable   显示所有已激活的内部命令
                enable command   激活被禁用的内部命令
                enable |wc -l   显示激活中的内部命令的数量
                enable -a   显示所有内部命令
                enable -a  |wc -l    显示所有内部命令的数量
                enable -n    显示所有被禁用的内部命令
                enable -n command    禁用某个内部命令
            外部命令   
                whereis; which  -a  | -- skip - alias
                hash 缓存(执行外部命令)   
                hash   显示所有被hash的命令路径
                        -l   显示所有被hash的命令路径,包含别名
                        -d 别名   删除指定别名的hash路径
                        -r   清空所有的hash
                        -t 别名   显示指定别名的hash路径
                        -p 路径 别名    手工增加一条hash
     执行一条命令时的查找顺序 
             别名→内部命令→外部命令→hash→PATH
     type  区别命令类型    
              type command  显示命令类型
     alias 别名
              alias  显示所有的别名信息
            unalias  -a  别名   取消所有别名
              nano  /etc/bashrc   对所有用户将别名保存
            nano  ~/.bashrc   对当前用户将别名保存
              ‘command’ ; “\command” 
                                                                       原命令与别名一样,执行原命令
            /path/command(外部命令)   
     命令执行语法  
               -   短选项    例如  -p
               --  长选项   例如  --help
              ; 连接符  前一条命令执行结束再执行下一条命令
               \   命令换行符
               多个选项以及多参数和命令直接使用空白字符分隔

5.简单命令

     date时间 
                 date +%Y   年
                         +%m  月
                         +%d   日 
                        +%H  小时
                        +%M  分
                         +%S   秒
                        +%w  星期 
                        +%F  年-月-日
                        +%T  时:分:秒
                 date  月日时分年[.秒]
                 date -s  ‘年-月-日 时:分:秒’
                 hwclock  硬时间
                clock   软时间
                    clock  -s   将软时间写入硬时间  关机是自动进行
                                -w  将硬时间写入软时间  开机时自动进行
     cal -y  日历
     nano  编辑内容 
     poweoff/init0  关机
     reboot/init 6   重启
     shutdown  -r    重启
                        -h    关机
                        time   指定时间关机
                        -c    取消关机计划
     whoami   显示当前用户名
     who an /are/is 任意字符   显示当前的终端信息
     who  显示所有终端信息
     w      显示所有终端的详细信息及所做的操作
     screen 
                  下载

技术分享图片

                    screen -s 会话名  创建指定名的screen会话
                                -x 会话名  加入已创建的screen会话
                                -ls             查看所有已打开的screen会话
        echo  
                    echo $()   或  ``   引用命令执行的结果

技术分享图片

                     echo {}   重复字符的简化形式

技术分享图片

                      echo $(()) 或 $[]  进行运算

技术分享图片

                      echo ${}   或 "$变量名" 划定变量名的起止范围

技术分享图片

6.tab键 补全

7.命令行历史

         !n  重复某条历史(此处n为数字)

技术分享图片

          ↑   重复上一条命令
         !string   重复前一个以“string”开头的命令
          !?string  重复前一个包含“string”的命令       string 字符串

技术分享图片

          history的命令     
                    history 查询历史记录
                    history -c 清空当前的所有历史记录  
                    history -dn 删除某条历史(此处n为数字)
                    history -a 将当前终端新执行的命令写入历史记录文件   (默认为~/.bash_history)
                    history -w /path/filename.txt 将历史记录写入指定文件

技术分享图片

           调用历史参数     
                     要重新调用前一个命令中最后一个参数:
                                !$  
                                Esc, .(点击Esc键后松开,然后点击 . 键)
                                Alt+ .(按住Alt键的同时点击 . 键) 

8.bash快捷键

            ctrl + l  清屏
                  + o 执行当前命令 并重新显示本命令
                  + s 锁定屏幕 仍可以运行
                  + q 解锁
                  + c 强制结束
                  + z 暂停命令(fg可以再切换回来,bg可以查看当前终端后台有多少暂停的程序)
                  + a 光标起到命令行首
                  + e 光标移到命令行尾
                  + u 删除光标之前的内容
                  + k 删除光标之后的内容 
            ctrl+shift+c 复制选中的文本
            ctrl+shift+v 把文本粘帖到当前光标处   
            Alt  +f  向右移动一个单词
                  +b 向左移动一个单词
                  +r  删除全部内容
                +N 提示输入指定字符[后输入]后,重复显示该字符N次(N表示具体的数字)

三、使用帮助(获取帮助的能力觉得了技术的能力)

1.whatis

                                                          仅能提供命令基本的介绍。不提具体用法。
           whatis command                基于数据库的查找
           man -f comman                  优点:检索速度快
                                                          缺点:缺乏实时性

           makewhatis   在CentOS6
           mandb   在CentOS7

2.--help

3.man info

           man   统称为Linux手册,常用于命令参考
                  man  cmd   查看此cmd的帮助
                  q  退出man
            info 适合通用文档参考
                  info  cmd   查看此cmd的帮助

4.使用本地帮助文档

            /user/sharel/doc

5.官网在线

6.其他网站搜索

四、文件管理

1.文件系统结构元素

            Linux系统文件区分大小写
            元数据 metadata   数据 data 

2.创建 查看文件

            pwd  当前目录路径  
                    pwd -P 当前目录为软链接时,显示其源目录
                    oldpwd  上一次目录路径   
             cd 改变目录  
                    cd ..  切换到父目录
                    cd     切换到当前目录

技术分享图片

             ls 查看目录
                    ls -a 显示所有文件
                     ls -l  长列出
                    ls -R  递归
                     ls -ld  显示指定目录的详细信息
                    ls -1  竖显示
                    ls -S  按文件大小降序 
                     ls -T  按修改时间从新到旧
                    ls -u  按访问时间
                    ls -U  按文件存放的先后顺序
                     ls -X  按文件后缀排序
                    ls -i    显示inode号
             stat     
                                                    atime   读取文件内容 访问时间
                     三个时间戳             mtime   改变文件内容 修改时间
                                                    ctime   元数据发生改变   改变时间
             touch创建文件    
                     touch filename  
                                 当文件不存在时,则创建filename
                                 当文件已存在时,则更新全部时间戳 
                     touch -t [YY]MMDDhhmm[.ss] filename
                     touch -a    改变 atime ctime
                     touch -m   改变  mtime ctim
                     touch -c    文件存在更新全部时间,不存在不创建文件
              文件通配符
                     * 匹配零个或多个字符 
                    ? 匹配任何单个字符 *
                     [0-9]    [a-z]    [A-Z]   
                     ^ 托字符  除了
                     [:upper:]  大写字母
                    [:lower:]   小写字母 
                     [:alpha:]   大小写字母
                    [:alnum:]   字母和数字 
                     [:space:]    水平或垂直空白字符
                    [:blank:]    空格

3.复制 转移 删除文件

              cp复制
                      cp A B

技术分享图片

                        cp -i   覆盖前提示
                      cp -n  不覆盖 注意顺
                        cp -r   -R 递归
                      cp -a  归档
                      cp -d  不复制原文件只复制链
                        cp -p  复制所有的
                      cp -v  显示复制的过程
                      cp -f   有权限 覆盖在创建
                 mv -i  覆盖前提示
                       -f  强制覆盖
                 rm -i   删除前提示
                      -f   强制删除
                      -r   删除目录   
                 rename  .txt  .doc*  .txt

4.目录操作

               tree  显示目录树
                     -d 只显示目录
                     -L n  只列出指定层级的目录(此处n为数字)
                     -P通配符  只列出匹配到的文件和所有的目录
               mkdir  创建目录
                      -p  一次性创建多级目录
                      -v  创建时显示详细信息
                    -m 创建时直接设置权限
               rmdir  删除空目录  
                       -p  一次性删除多级空目录
                    -v  显示删除的详细信息     

5.inode

               128字节  64(类型,权限,链接数,大小,UID,GID,时间,其他信息) 
                索引节点     cp   rm   mv   

6.软链接硬链接

                ln filename linkname  不能跨分区
                ln -s filename linkname  可以跨分区 源被删除 链接也不可用
                file 确定文件内容   
                       -b   查看时不显示文件名
                       -f    列出文件中文件的文件类型
                       -f /path/filename   文件中每个文件路径一行。从而可批量查看多个文件的类型
                    -F    符号 按指定符号做为分隔符输出 默认是  :
                    -L    当查询的对象为软链接时,显示源文件的类型
                    --help  查询在线帮助 

五、重定向和管道

1.三种I/O设备

                 指令+数据
                 Input  读入数据      Output  输出数据  
                 stdin  标准输入       stdout  标准输出      stderr   标准错误 

2.把I/O重定向入文件

                 > 正确输出  
                    文件不存在时直接创建新文件 
                    存在时  >  直接覆盖    >>  追加
                 2>错误输出
                 &>全部输出
                 2>&1错误结果转化正确
                 1>&2 正确的转化错误    
                 ()合并多个程序     

3.tr 转换和删除

                 tr  -c    选取字符集的补集
                     -d    删除
                     -s    连续重复的字符以一个字符表示
                  << EOF  
                  >EOF   终止符

技术分享图片

4.使用管道链接命令

                 | 管道符  使用前加空格  
                                连接命令   cmd1 | cmd2 | cmd3
                                将正确的结果传递给管道 
                                   错误的结果通过   2>&1  ;    |&   传递结果
                                组合多种工具

技术分享图片

                  less  一页一页查看
                         ls -l /etc | less
                  mail 通过mail发送输出     
                          echo “test mail” | mail -s “test user”             

5.tee 重定向到多个目标

                  tee -a    追加
                          command1 |tee [-a] file |command2

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

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

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

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?