linux基础学习

# coding:utf-8
'''基础奠定'''
'''基础学习linux'''
'''学习需要持之以恒!加油!'''
# /根目录
'''文件大小都以 Byte 字节 保存 ,1K = 1024B, 1024B = 2**10B '''
'''
绝对路径 / 表示相对当前目录所在的目录位置
相对路径 没有应用/的路径 表示从根目录/家目录开始的具体目录位置
'''
'''小技巧:
ctrl + shift + + 放大终端窗口的字体显示
ctrl + - 缩小终端窗口的字体显示
再敲出 文件/目录/命令 的前几个字母后敲 tab 键 补全命令
ctrl + c 停止当前命令输入,直接开启新的一行进行输入
'''

'''终端命令格式
commend [-options] [parameter]
[] 代表可选
commend 命令名:相应功能的英文单词或者单词缩写
[-options] 选项:可用来对命令进行控制,也可以省略
parameter 传给命令的参数,可以是零个,一个,或者多个
'''
'''两种查看帮助 
commend --help
man commend
'''

'''linux下文件和目录的特点
·Linux文件或者目录名称最长可以由256个字符
·以 . 开头的文件为隐藏文件,需要使用-a 参数才能显示 命令示例:ls -a 解释 -a all 所有文件
· .代表当前目录
· ..表示上级目录
'''

'''linux常用的终端命令:
ls list 查看当前文件夹下的内容 配合使用 ls -alh 
    参数 -a 显示指定目录下的全部文件,包括隐藏文件
    参数 -l 以列表方式显示文件的详细信息
    参数 -h 配合-l显示文件大小
    ls 配合通配符使用:(ex为示例)
        * 代表任意个数的字符  ls ex* ,ls *ex.txt。如果为ls *ex 则需表明文件类型,若未表明文件类型会显示没有那个文件。 
        ?代表一个字符,至少是一个  ls ?e?.txt , ls e?.txt .
        [] 表是可以匹配字符组中任一一个
        [abc]匹配a,b,c的任意一个
        [a-f]匹配a到f范围内的任意一个字符
    
pwd  print work directory 查看当前所有文件夹

cd /目录 change directory 切换文件夹
    命令 cd 切换到当前用户的主目录(/home/用户目录)
    命令 cd ~ 切换到当前用户的主目录(/home/用户目录)
    命令 cd . 保持当前目录不变
    cd .. 切换到上一目录
    cd - 来回切换工作目录
    
touch 文件名 touch 如果文件不存在,新建文件
    ·如果文件不存在,则会建立一个空白的文件
    ·如果文件存在,则会修改文件末次修改文件时间

mkdir 目录名 make directory 创建目录
    -p 可以递归创建目录
    !!!新建目录的名称不能与当前目录中已有的目录或文件同名
    
rm  文件名 remove 删除指定的文件名
    -f 强制删除所选择的文件,删除不提示
    -r 递归地删除目录下的内容,删除文件夹时必须有此参数 re -r ex , rm -r * 删除所有    
    !!!删除的内容不可恢复

clear clear 清屏

tree[目录名] tree 以树状显示所有文件 
    -d 只显示目录 tree -d
    
cp copy 拷贝文件
    cp 目标文件 副目标文件 cp ~/ex/111.txt ./111.txt
    ~表示根目录下 , .表示当前目标路径 
    命令 -i 覆盖文件前提示
    命令 -r 若给出的源文件时目录文件,则cp,将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
    
mv move 移动文件 mv 源文件 目标文件
    mv 目标文件 目标文件夹或者目录
    !!!可以移动文件,也可以给文件或者目录重命名
    命令 -i 覆盖文件前提示
    重命名 mv 文件夹/文件 名字
    
cat 文件名  concatenate 查看文件内容,常见文件,文件合并,追加文件内容等功能
    cat 会一次性显示所有的内容,适合查看内容较少的文本文件
    cat ex.txt 查看文件内容
    命令 -b 对非空输出行编号
    命令 -n 对输出的所有行编号
    
    -Linux中 nl 的命令和 cat -b 的效果相同
    
more  文件名 more 分屏显示文件内容

grep 搜索文本文件名 grep 搜索文本文件内容
    grep允许对文本进行模式查找,所谓模式查找,又称为正则表达式,
    命令 -n 显示匹配行及行号
    命令 -v 显示不包含匹配文本的所有行(相当于求反,去不被选择的一面)
    命令 -i 忽略大小写
    常用的查找方式:
        ^a 行首,搜索以a开头的行
        z$ 行尾,搜索以z结尾的行

shutdown 关机/重新启动  shutdown 选项 时间
    若只输入命令 shutdown 则默认重新启动时间为1分钟
    命令 -r 重新启动
    shutdown -c 取消关机
    
reboot 重启

!!!
ifconfig configure a network interface 查看/配置计算机当前的配置信息
    ifconfig 查看当前网卡配置
    查阅当前计算机ip地址 ifconfig | grep inet 
     
ping ip地址 ping 检测到目标ip地址的连接是否正常

'''
'''方法
echo 文字内容 
    echo 会在终端中显示参数指定的文字,通常会和重定向联合使用
    echo 'some_file' > file 若没有文件,则会创建文件
    
重定向>和>>
    linux允许将命令执行结果重定向到一个文件
    将本应该显示终端的内容输出/追加到指定文件中去
    · > 表示输出,会覆盖原有内容
    · >> 表示追加,在原本基础上添加内容到底端
    
| 管道 
    linux允许将一个命令的输出 可以通过管道 作为 另一个命令的输入
    可以理解为 : 写 | 读
    ·more 分屏显示
    ·grep 查询
'''
'''
SSH(secure shell 协议连接1到计算机的软件程序)
ssh 用户名@ip   secure shell 关机/重启 
scp用户名@ip:文件名或路径 用户名@ip:文件名或路径 secure copy 远程复制文件

ssh [-p port] user@remote
user 远程机上的用户名,如果不指定的话就认为当前用户
port 是 ssh server 监听的端口,如果不指定,默认端口号为22
remote 是远程机器的地址,可以是ip/域名

scp 掌握
scp 就是shell copy ,是一个在linux下用来进行远程拷贝文件的命令
地址格式与ssh 基本相同,需要注意,scp在指定端口时 -P 是大写的
scp -P port ex.py user@ip:home/desktop/ex.py 
    命令 -r 复制文件夹
    命令 -P 指定端口
'''
'''ssh 相关知识
配置公匙
    执行 ssh-keygen 即可生成ssh要是,后回车进行下一步
上传公匙到服务器:
    执行 ssh-copy-id -p port user@remote ,即上传公匙到服务器
配置别名:
    ~/.ssh/config
    Host mys_server
        HostName ip地址
        User ith
        Port 22
        
'''

'''用户权限  r-w-x 可读,可写,执行
在 linux 下 ls-l 显示的信息中
权限:d表示目录
硬连接数:通俗的讲,就是有多少种方式,可以连接访问到当前目录/文件
拥有者:家目录下文件/目录 的拥有者通常都是当前用户
组:方便权限管理
大小
时间
名称及类型/
目录````````硬连接数``用户`````组`````字节````
-rwx-w-r--   1        hadoop  Hadoop
d-w-rw-rw-   2        hadoop  Hadoop
其中 - / d 为目录  
权限为三个一组,意味 管理员-组-其他用户

chmod 修改用户/组对文件/目录的权限
    chmod +/- rwx 用户/组/目录/文件
    添加权限 x 执行文件时格式 ./filename.py/.c/.java

 超级用户 root 
 root账号通常用来系统的维护和管理,对操作系统的所有资源所有权限
 
 sudo 
 su 是 substitute user 的缩写,表试使用另外一个身份
 sudo 命令用来以其他身份来执行命令,预设的身份为root 
 用户使用 sudo 时,必须输入密码,之后有5分钟的有效期限,超过期限需要重新输入密码执行
 ·---若为授权使用sudo指令,则会有使用记录发送至管理员信息

组的管理
创建组/删除组的终端命令都需要通过 sudo 执行
    groupadd 组名 添加组  sudo groupadd dev
    groupdel 组名 删除组  sudo groupdel dev
    cat /etc/group 确认组的信息
    chgrp -R 组名 文件/目录名 修改文件/目录的所属组
    ···组的信息保存在 /etc/group 文件中
    ··· /etc 目录专门用来保护 系统配置信息 目录
    
'''
'''
创建用户/设置密码/删除用户
useradd useradd -m -g 组 新建用户名 添加新用户  -m 自动建立用户家目录 -g 指定用户所在组
passwd 用户名 设置用户密码
userdef -f 用户名 删除用户  -f 会自动删除用户家目录
cat /etc/passwd | grep 用户名
usermod 可以用来设置用户的主键/附加组和登录shell命令格式如下
    主键:
    附加键:
    #修改用户的主键
    usermod -g 组 用户名
    #修改用户的附加组
    usermod -G 组 用户名
    #修改用户登录 shell
    usermod -s /bin/bash

注意:创建用户时,如果忘记添加-m选项指定新用户的家目录--最简单的方法就是删除用户,重新建立
创建用户时,默认会创建一个和用户同名的组名
用户信息保存在/etc/passwd文件中

id  查看列表
who 查看登录用户
whoami  查看当前用户 
'''

'''bin 存放可执行文件
sbin 存放系统执行文件
'''

'''su -用户名 切换用户,并且切换目录 -可以切换到用户目录,否则保持位置不变
exit 退出当前登录账户
'''

'''修改文件权限
chown 修改拥有者  chown 用户拥有者 文件名|目录名
chgrp 修改组      chgrp -R 组名 文件名|目录名
chmod 修改权限  chmod -R 755 文件名 | 目录名
755 
拥有者     组       其他
r w x     r w x     r w x
4 2 1      4 2 1    4 2 1 
方便给定权限,在使用chmod -R +/-权限rwx 文件名|目录名
方便给定不同角色的权限给定。  
'''

'''
系统信息相关命令
# 时间和日期
date  查看系统时间
cal    calendar 查看日历,-y 选项可以查看一年的日历

# 磁盘和目录空间
df  df -h  disk free 显示磁盘剩余的空间
du  du -h [目录名]  disk usage 显示目录下的文件大小 -h以人性化的方式显示文件大小

# 进程信息
ps  ps aus   process status 查看进程的详细状况
    a 显示终端上所有的进程,包括其他用户的进程
    u 显示进程的详细信息
    s 显示没有控制终端的进程
top   动态显示运行中的程序并且排序
kill  kill [-9] 进程代号 终止指定代号的进程,[-9]表示强制终止 
    在使用kill终止进程时,只可终止当前用户下的进程,不可终止root下的进程,防止系统奔溃。

'''

'''
查找文件 find
  find [path] -name "*.py"
软连接 ln 
    ln -s 被链接的源文件 链接文件      建立文件的软连接,用通俗的方式讲类似windows下的快捷键
    建立软链接时,以绝对路径创建。若以相对路径创建的软链接,若移动工作目录,则无法正常工作

    若建立连接时没有使用 -s 则创建的链接为硬链接 硬链接链接源文件删除不会对硬链接产生影响
    
打包和压缩 tar
    #打包文件
    tar -cvf 打包文件.tar 被打包文件/路径
    #解包文件
    tar -xvf 打包文件.tar
    c 生成档案文件,创建打包文件
    x 解开档案文件
    v 列出归解档的详细过程,显示进度
    f 指定档案文件名称,f后面一定时.tar 文件,所以必须放到最后
  
    gzip 压缩/解压缩
    #压缩文件
    tar -zcvf 打包文件.tar.gz 被解压的文件/路径
    #解压缩文件
    tar -zxvf 打包文件.tar.gz
    #解压缩到指定路径
    tar -zxvf 打包文件.tar.gz -C 目标路径
        -C 解压缩到指定目录,要解压的目录必须存在
    
    bzip2
    #压缩文件
    tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径
    # 解压缩文件
    tar -jxvf 打包文件.tar.bz2
    
软件安装 apt-get
    sudo apt install 软件包
    sudo apt remove 软件名
    sudo apt upgrade
    
'''
'''vi 和 vim
# vi 
语法
    vi 文件名

打开文件并且定位行
    vi 文件名+行数

vi 三种基本工作方式
    1.命令模式
        
    2.末行模式
        通常执行保存,退出
        在命令模式下输入  : 
            w  -write
            q  -quit
            q!  强行退出
            wq 保存并退出
            x   保存并退出
    3.编辑模式
        在命令模式下输入  i -insert 
        
移动命令
    h 向左
    j 向右
    k 向上
    l 向下
    w 按单词跳转
    b 向前移动一个单词
    0 行首
    $ 行尾
    ^ 行首
   行数移动
        gg  文件顶部
        G    文件尾部
        数字gg  跳转
        数字G
         :数字  移动到该行数
    屏幕移动
        ctrl + b 向上翻页
        ctrl + f 向下翻页
        H 屏幕顶部
        M 屏幕中间
        L 屏幕底部

    程序移动
        段落移动
            {  上一段
            }  下一段
        括号切换
            % 括号匹配及切换    
        标记
            对于某一些程序段稍后处理
            mx mark 添加标记 x ,x 是 a-z 或者 A - Z 之间的任意一个字母
            'x 直接回到标记位置
    
    选中文本(可视化模式)
        v 可视模式  
        V 可视行模式
        CTRL + v 可是块模式
        在可视模式下 ggVG 选中全部文本
    
    撤销和恢复撤销
        u undo 撤销命令
        ctrl+e redo 恢复撤销命令
        
    删除文本
        x cut 删除光标所在字符,或者选中文字
        d(移动命令) delete 删除移动命令对应的内容
        dd 删除光标所在的行,可以使用ndd复制多行
        D  删除至末尾
        删除命令和移动命令连用,常见组合命令:
            dw  从光标位置删除到单词尾部
            d0  从光标位置删除到起始位置
            d}  从光标位置删除到段落尾部
            ndd  从光标位置向下连续删除n行
            d代码行G  从光标位置所在行删除到指定代码行之间的所有代码
            d'a  从光标位置删除到标记所在所有代码
   复制,粘贴
        y(移动命令)  复制  
        yy  复制一行  nyy 复制n行
        p     粘贴
    
    替换
        r  替换当前字符
        R  替换当前行光标后的字符
    
    缩排和重复执行
        >>  向右增加缩进
        <<  向左增加缩进
        .   重复复上次命令
        在可视模式下,缩排命令通常只使用一个 < 或 >
        
    查找
        /str 查找str
            查找到之后:
                n next 查找下一个str 出现的位置
                N 查找上一个
        单词快速匹配
            * 向后查找但前光标所在单词
            # 向前查找当前当前光标所在单词
    
    查找并替换
        :%s///g
        1.全局替换
         :%s/旧文本/新文本/g
         2.可视区域范围替换
            可选择要替换文字的范围
            :s/旧文本/新文本/g
         3.确认替换
            :%s/旧文本/新文本/gc  是否替换
            回复:
                y   替换
                 n   不替换
                 a   替换所有
                 q   退出替换 
                 l   替换最后一个
                 ^E   向下滚屏 
                 ^y   向上滚屏
                 
     插入命令:
        在命令模式输入 i 
        i   在当前字符前插入文本
        I   在行首插入文本
        a   在当前字符后添加文本
        A   在行末添加文本
        o   在当前行后插入一空行
        O   在当前行首查如一个空行
        
   使用末行命令:
        :e  edit 会打开默认浏览器
        :n  新建文件
        :w  另存为,但是任然编辑当前文件,并且不会切换文件
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糊涂的leo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值