linux基本操作

linux基本操作:
    命令格式: ls cd mkdir rm echo mv cat touch cp
        命令名 [选项参数] [操作对象]
目录相关命令
    ls      列出当前目录下的内容
            一个终端打开之后,直接就会处于一个目录下
            目录:文件夹
        -a  浏览所有文件,包含隐藏文件
            linux下以.开头的文件是隐藏文件
            .   目录自身
            ..  目录自身的上一层路径
        -l  浏览文件的详细信息
        -t  对浏览的文件进行按时间排序
        -S  按时间排序
        -r  逆序
    pwd     显示当前所在路径(绝对路径) 
        绝对路径:以根目录为起始的路径(linux的目录结构就是以根目录起始的)
        相对路径:以当前目录作为起始的路径
    mkdir   创建文件夹
        -p  递归多层级创建
    rmdir   删除空目录
        -p  递归多层级删除空目录
    rm      删除普通文件
        -r  删除目录(递归删除目录及内部文件)
        -f  忽略提示信息,直接进行操作
    cp      拷贝文件到指定位置    
        -r  拷贝目录(递归拷贝目录及内部文件)
        -f  忽略提示信息,直接进行操作
    mv      将文件/目录移动到指定位置
        -i  增加提示信息
    cd      进入指定目录(改变当前所在路径为另一位置)
        ~   快速返回当前用户的家目录
        -   返回上一次所在路径
文件相关命令
    linux一切皆文件
    文件类型:linux并不以文件后缀名区分文件类型
        -   普通文件
        d   目录文件
        l   符号链接文件
        p   管道文件
        c   字符设备文件
        b   块设备文件
        s   套接字文件
    touch   若文件不存在则创建新文件,否则刷新时间属性
        -d  使用指定时间刷新文件的时间属性
        -r  使用指定文件的时间属性刷新另一个文件时间属性
    cat     打印文件内容到终端显示  
        -n  显示内容行号
    tac     按行逆序打印文件内容
    more    分页显示文件内容
        空格  向下翻页
        b     向上翻页
        回车  向下按行滚动
        q     退出
    less    分页显示文件内容
        向下翻页    空格 f PgDn
        向上翻页    b   PgUp
        向上滚动    ↑   k
        向下滚动    ↓   j
        字符串匹配功能:
            /string     向下匹配string字符串
            ?string     向上匹配string字符串
                n       找下一个匹配位置
        q   退出
    head    默认显示文件前10行内容
        -n  用于指定显示文件前n行内容
    tail    默认显示文件末尾10行内容
        -n  用于指定显示文件末尾n行内容
        -f  一直刷新文件末尾的新数据   日志
压缩/解压缩命令:
    zip/unzip   zip格式的压缩/解压缩
    gzip/gunzip gzip格式的压缩/解压缩
    bzip2/bunzip2   bzip2格式的压缩/解压缩
    tar     打包工具
        -c  打包
        -x  解包
        -z  打包/解包同时进行gzip格式压缩/解压缩
        -j  打包/解包同时进行bzip2格式压缩/解压缩
        -v  显示详细些的打包/解包信息
        -f  指定压缩包名称
        tar -czvf abc.tar.gz abc.txt
        tar -xzvf abc.tar.gz
时间日期命令:
    cal     查看日历
        -3  显示相邻三个月日历
        -y  显示全年日历
        -j  显示日期的时候以day of year的形式显示
    date    查看系统当前日期时间
        +   用于指定显示时间的格式
            +"%Y-%m-%d %H:%M:%S"
            +"%s"
        -s  设置系统时间
匹配查找命令:
    grep    文件内容的字符串匹配
        -i  忽略大小写进行匹配
        -v  反向匹配(匹配不包含指定字符串的行)
        -R  递归对目录下所有文件进行字符串匹配
    find    文件的查找
        -name   按文件名查找
        -type   按文件类型查找
                f d l s c b p
        -size   按照文件大小查找
                +/-n[cbwkMG]
        -mtime -ctime -atime
                +/-n    按天查找
        -mmin   -cmin   -amin    
                +/-n    按分钟查找
        -exec   连接其它命令,对找到的文件进行处理
            find ./ -size +5k -exec rm '{}' \;
    tab     自动补全
    ctrl+c  中断当前操作
    
    reboot  重启
    shutdown -h now 立即关机
    halt    立即关机
其它命令:
    man     查看手册命令
    stat    查看文件的详细状态信息
    链接数 
    |   管道符
        连接两个命令,将前边命令的输出结果作为后边命令的输入
    >>  重定向
        改变数据流向,将数据追加到文件末尾
    >   重定向
        改变数据流向,先清空文件原有数据,然后写入新数据
    
    调研根目录下的目录各自都有什么含义!!!
shell:
    命令行解释器(程序)
    linux中有各种解释器:bash dash cash
权限:
    用户分类:管理员用户(root); 普通用户
    文件的权限:
    
    文件对用户的分类
        文件所有者       文件所属组       其它用户
        u                   g               o
    文件对操作的分类
        可读              可写              可执行
        r                   w               x
    rwx rwx r-x
    
    位图
    111 111 101
    7   7   5
    
    564     所有者权限:可读可执行
    所有者是可读可写,所属组是可读,其它用户没人任何
    640
    
权限的相关命令:
    umask       查看/设置权限掩码
            作用:影响创建一个文件实际的默认权限
    实际权限 = 给定权限 & (~umask)    
                777         002
                653         022
                110 101 011
                111 101 101
    chmod       修改文件的权限
            o-w     针对某一类用户的权限进行增删
            a+x
            -x
            0777    直接使用8进制数字权限设置
    chown       修改文件所有者
        chown username filename
    chgrp       修改文件所属组
        chgrp groupname filename
 
    沾滞位:
        若一个目录设置沾滞位,那么目录将具有特点:
            其它用户都可以在目录中创建文件
            其它用户可以删除自己的文件
            但是其它用户不能删除别人的文件
 
    useradd -m username 
    passwd username
    userdel -r username
常用工具

yum:软件包管理工具
    软件安装方法:
        1. 手动源码安装
        2. 使用工具安装
            工具自身可以解决软件包安装的依赖关系
    yum常用操作:
        查看
            查看能够安装什么
            yum list | grep package_name
            查看已经安装了什么
            yum list installed | grep package_name
        安装
            yum install package_name
        移除
            yum remove package_name
    
    vim:编辑器
        12种操作模式,但是常用的有三种
        普通模式
        插入模式
        底行模式
        模式切换
            普通《=》插入:i a o I A O    ESC
            普通《=》底行::       ESC
        底行:
            q w  wq  q!  
            set nu
            !pwd
            /string ?string
        普通模式:
            光标移动
                hjkl  ctrl+f/b w/b   gg G
            复制
                yy   nyy
            粘贴
                p   P
            删除
                x dw D dd ndd
            撤销
                u   ctrl+r
            其它
                gg=G    
        /etc/vimrc
        ~/.vimrc
    gcc/g++:编译器
        功能:将c/c++高级语言代码翻译成机器可识别代码
        编译过程:
            预处理:展开所有代码 
            编译:语法语义纠错,翻译成为汇编代码
            汇编:将汇编代码翻译成二进制机器可识别指令
            链接:链接库,将所有代码合到一起生成可执行程序
        库文件:已经汇编完成的公共代码
        链接:将库中的代码拿到要生成的可执行程序中
        静态链接:链接静态库,将库中的代码直接全部拷贝到可
                  可执行程序中,好处是程序运行时,不需要依
                  赖库文件的存在;缺点是占用资源较多
        动态链接:链接动态库,只是记录库中的接口符号位置信
                  息,好处是资源占用冗余较小,缺点是程序运
                  行时需要动态库的存在
                  共享库/运行时库
        gcc默认链接方式:动态链接
    gdb:调试器
        功能:调试一个程序的运行过程
        linux下程序编译默认生成release版本程序,不带有调式
        符号信息,意味着程序无法被调试
        所以程序调试的前提就是编译生成debug版本程序,因此
        gcc编译程序时需要加上-g选项,开启调试,向程序中添
        加调试符号信息
        1. gcc -g main.c -o main
        
        gdb调试程序,需要将程序信息,加载到gdb中
        2.  gdb ./main     
            gdb  进入gdb后   运行  file ./main命令
            
        开始调试:
            运行程序加载运行参数
            r param1 param2 ...
        start   开始逐步调试
        n       下一步;并不跟踪进入函数
        s       下一步;跟踪进入函数
        p var   查看变量数据
        l line  查看指定行(默认当前调试行)附近代码
        until line  直接运行到指定行
        
        b line  向当前调式文件指定行添加断点
        b file:line 向指定文件指定行添加断点
        b func  向函数添加断点
        watch var   变量监控,给变量添加断点,当变量
                    内容发生改变,停止
        i b     查看所有断点信息
        d id    删除指定断点,默认删除所有
        c       继续运行
        
        bt      查看函数调用栈信息
    make/Makefile:项目自动化构建工具
        Makefile:定义编译规则的普通文件
        make:是一个解释程序,解释执行Makefile中定义的
              编译规则
        执行make命令,这时候make程序会到当前目录下寻找
        Makefile文件,解释其中的编译规则
        
        如何编写Makefile;编写规则:
            
        通过目标对象与依赖对象最后一次修改时间,判断目
        标对象是否需要重新生成
        
        make在Makefile中只找第一个目标对象,为了生成这个目
        标对象,而执行命令,完毕之后直接退出(后边的对象都
        不会在生成了)
        
        make在Makefile中找到第一个对象,这时候如果这个对象
        的依赖对象不存在,则在后续编译规则中,寻找是否可以
        生成这个依赖对象,当所有依赖对象生成完毕后,最终生
        成目标对象
        
        预定义变量
        $@  要生成的目标对象
        $^  所有的依赖对象
        $<  依赖对象中的第一个
        
        .PHONY关键字用于声明伪对象
        伪对象:不管对象是否是最新,每次都要重新生成
    git:项目版本管理工具    
        svn:集成式版本管理
        git:分布式版本管理
        三板斧:
            克隆代码到本地
                git clone git地址
            添加本地文件
                git add 新文件
            提交代码到本地仓库
                git commit -m "本次提交备注信息"
            提交本地代码到服务器分支
                git push origin master
                master 是git项目版本主分支

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值