zoukankan      html  css  js  c++  java
  • linux1

    day1

    Linux的基本使用

    输入密码登录,不能以访客登陆

    关机时候先关闭ubuntu,在关闭vmware

    Linux文件系统介绍

    Linux没有类似windows的盘符,只有一个根目录,用/表示

    所有的文件和子目录都在根目录下面

    Linux是多用户操作系统,每个用户都有一个属于自己的目录,叫主目录,主目录在/home下

    Linux常用的系统目录,系统目录的文件不能随便修改删除

    Linux命令快速演练

    进入终端--右键打开终端

    Ctrl+shift+ +--放大字体

    Ctrl+- --缩小字体

    ls # 查看当前目录内容

    cd # 切换目录

    cd dbs # 进入dbs目录

    cd .. # 回到上级目录

    touch a.txt # 创建一个空文件a.txt

    mkdir aaa # 创建一个目录aaa

    rm a.txt # 删除a.txt

    rm -r aaa # 删除目录aaa

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps1.jpg)

    Linux命令的常用方式

    上下键快速调出之前执行过的命令

    Tab自动补齐

    Linux下所有的命令和文件目录名大小写字母不同

    Linux命令后面如果有参数,命令和参数之间一定有空格

    Linux命令一般都是小写字母构成的

    查看linux命令帮助

    命令--help

    Man命令

    按空格键向下翻页

    按tab键向上翻页

    按q退出

    Pwd查看当前目录

    Pwd

    Ls查看内容

    -a查看所有内容

    -l用列表方式显示详细信息

    -h一般和-l联合使用,-hl显示文件大小的时候,用人性方式显示大小

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps2.jpg)

    Ls -l的结果

    第一部分:d目录,-是文件,l链接文件

    第二部分:rwxrwxr-x,文件存储权限

    第三部分:2 硬链接数

    第三部分:python python 文件所属的用户和组名

    第四部分:4096,文件大小

    第五部分:文件最后修改时间

    第六部分:文件或者目录名

    权限

    Rwxrwxrwx,三部分组成,每三个字母为一组

    第一组:文件所属用户的权限

    第二组:文件所属组的权限

    第三组:其他用户和组对文件的权限

    r读 w写 x执行 -没有对应权限

    rwx---r-- # 用户可读可写可执行,组不能读写执行,其他用户可读,不能写和执行

    rw-rw---- # 用户可读可写不可执行,组可读可写不可执行,其他用户无任何权限

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps3.jpg)
    Ls 目录名 显示指定目录内容

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps4.jpg)

    通配符

    *任意多个字符

    ?一个字符

    [abc]abc字符中的任意一个

    [a-f]a到f字符的任意一个

    cd /bin # 把当前目录切换为根目录的bin目录

    ls *l # 查看前面任意字符,最后l结尾的文件或者目录

    ls l* # 查看l开头,后面任意

    ls a*l # 查看a开头,l结尾,中间任意

    ls l? # l开头,后面只有一个任意字符

    ls [abc]* # a或者b或者c开头,后面任意

    ls [a-g]* # a到g之间任意开头,后面任意

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps5.jpg)

    Chmod修改权限

    u用户user,g组group,o其他other,a所有all

    +增加-去除=直接赋值

    cd # cd直接回车代表回到用户的主目录

    touch a.txt # 新建一个文件,用于练习chmod命令

    chmod u+r a.txt # 为a.txt所属用户增加r权限

    chmod u-r a.txt # 所属用户去掉r权限

    chmod g+rw a.txt # 组增加r和w权限

    chmod o-rwx a.txt # 其他用户所有权限都去掉

    chmod a+rwx a.txt # 所有用户增加所有权限

    chmod u=r a.txt # 给所属用户赋值r,wx不要

    chmod a=r a.txt # 给所有用户入职r,wx不要

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps6.jpg)

    数字法

    R4 w2 x1

    chmod 777 a.txt rwxrwxrwx

    chmod 567 a.txt r-xrw-rwx

    chmod 123 a.txt --x-w--wx

    Cd切换当前目录

    cd 目录名 进入指定的目录

    cd .. 回到上级目录

    cd

    cd ~ 回到用户的主目录

    cd / 回到根目录

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps7.jpg)

    相对路径和绝对路径

    相对路径总是从当前目录开始计算

    cd dbs # 进入当前目录下的dbs目录

    cd .. # 返回当前目录的上级目录

    绝对路径总是从根目录开始

    cd / # 回到根目录

    cd /home # 回到根目录的home下

    cd /bin # 回到根目录的bin目录下

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps8.jpg)

    cd # 回到主目录

    cd ..

    cd

    cd /home

    cd

    cd dbs

    cd

    cd /home/python/dbs

    cd

    cd ../../bin

    cd

    cd /bin

    Touch

    如果文件不存在,创建新文件

    如果文件存在,修改文件的最后修改日期

    touch a.txt

    touch b.txt

    Mkdir

    创建目录

    -p创建有层级关系的多级目录

    mkdir abc # 创建一个abc目录

    mkdir -p a/b/c # 创建a目录,里面有b目录,里面有c目录

    rm

    删除文件或者目录

    -r删除目录

    -f强制删除,即使不存在,也不提示

    rm a.txt # 删除文件a.txt

    rm -r abc # 删除目录abc

    rm -f a.txt # 删除文件a.txt,即使文件不存在,也不报错不提示

    rm -rf abc # 删除目录abc,即使目录不存在,也不报错不提示

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps9.jpg)

    cp拷贝文件

    cp 源文件 目标文件

    -r 如果是目录,那么就需要加r参数

    -i 如果目标文件已经存在,i参数会提示是否覆盖目标文件

    cd

    touch a.txt

    mkdir abc

    cp a.txt abc/a.txt # 把文件a.txt拷贝到目录abc下,文件名还叫a.txt

    cp a.txt abc/b.txt # 把文件a.txt拷贝到目录abc下,文件名改为b.txt

    cp -i a.txt abc/b.txt # 把文件a.txt拷贝到目录abc下,文件名改为b.txt,如果b.txt已经存

    在,会提示是否覆盖

    mv移动文件

    mv 源文件 目标文件

    mv命令与cp命令语法基本一致,区别是cp之后源文件存在, mv之后源文件不存在

    cd

    touch a1.txt

    mv a1.txt abc/a1.txt # 把a1.txt移动到abc目录下,名字还叫a1.txt

    mv abc/a1.txt a1.txt # 把abc目录下的a1.txt移动到当前目录

    mv a1.txt a2.txt # 把a1.txt改名为a2.txt

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps10.jpg)

    cat查看文件

    查看文件内容

    cd /proc

    cat cpuinfo # 查看文件cpuinfo的内容

    cat version # 查看文件version的内容

    cat -n cpuinfo # 显示文件内容同时显示行号

    cat -b cpuinfo # 显示文件内容,空行不编号

    more分屏显示

    查看文件内容,如果内容特别多,会自动分屏显示

    more memino # 查看文件meminfo内容,如果内容一屏显示不下,会自动分屏, 按空格键显示下一屏

    grep查找指定内容

    在指定的文件中查找指定的内容

    grep '要找的内容' 文件名

    grep 'cpu' cpuinfo # 在文件cpuinfo中查找字符串cpu

    grep -n 'cpu' cpuinfo # 查找字符串cpu,并显示行号

    grep -v 'cpu' cpuinfo # 查找没有字符串cpu的行

    grep -i 'cpu' cpuinfo # 查找字符串cpu不区分大小写

    Grep的模式查找

    ^字符 # 查找以指定字符开头的行

    字符$ # 查找以指定字符结尾的行

    ^字符.*字符$ 查找指定字符开头,指定字符结尾的行

    grep ^a cpuinfo # 查找字符a开头的行

    grep 0$ cpuinfo # 查找字符0结尾的行

    grep ^a.*0$ # 查找a开头,0结尾的行

    Echo回显

    echo hello # 执行结果就是显示hello

    echo aaaaa # 执行结果就是显示aaaaa

    Clear清除屏幕

    clear # 把当前屏幕清空

    重定向

    Linux允许把一个命令执行的结果,放入另外一个文件中

    重定向符

    >如果目标文件不存在,就创建文件,如果存在就覆盖文件

    >>如果目标文件不存在,就创建文件,如果存在就在文件后面追加

    cd

    ls > a.txt # 把ls命令执行的结果放入a.txt中,如果a.txt文件不存在就创建,如果存在就覆盖

    ls -l >> a.txt # 把ls -l命令执行结果方法哦a.txt,如果a.txt不存在就创建,如果存在,在文件

    内容后面追加

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps11.jpg)

    管道 |

    Linux允许把一个命令的输出作为另一个命令的输入

    命令1 | 命令2

    ls -l > a.txt

    grep ^d a.txt

    # 把以上两步合成一步的语法

    ls -l | grep ^d

    ls -al | more # 把ls -al的结果分屏显示

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps12.jpg)

    ![img](file:///C:Users39861AppDataLocalTempksohtml4800wps13.jpg)

    Find

    查找指定文件

    find 开始目录 -name 文件名

    find ./ -name a.txt # 从当前目录开始查找所有子目录,是否有文件a.txt

    Ln

    Ln作用是创建一个链接文件,链接文件类似于windows的快捷方式

    -s创建软连接

    ln a.txt a # 给文件a.txt创建一个硬链接a

    ln -s a.txt aa # 给文件a.txt创建一个软链接aa

    硬链接和软链接的区别

    硬链接文件与源文件大小一致

    软链接不管源文件多大,总是很小

    源文件每多一个硬链接ls -l的时候显示硬链接数会增加1

    软链接不会影响ls -l显示的硬链接数

    当源文件不存在了,硬链接可以使用,但软链接就无效了

    目录的权限

    R--可以用ls查看目录的内容

    W--可以在目录下增加和删除文件

    X--可以通过cd进入目录

    操作这个练习的步骤

    回到主目录下

    创建一个目录

    尝试用chmod修改这个目录的权限,然后ls查看目录,或者cd进入目录,或者在目录下增加文件

    Cd user进入当前目录下的user目录

    Cd /user 进入根目录下的user目录

    命令1 | 命令2

    Ls | grep

    Ls -a | more

    命令1必须有输出, 命令2必须能读文件

    如果只在当前目录查找文件用ls,在当前文件的子目录查找用find

    day2

    随堂材料
    cd user    # 进入当前目录下的user目录
    cd /user  # 进入根目录下的user目录
    cd -user #  这样写是不对的
    
    cd * 
    
    命令1 | 命令2
    命令1必须有输出  命令2必须能读文件
    
    ls | more
    
    ls | grep
    grep | ls
    
    /etc目录下有文件ucf.conf
    /proc目录下有文件cpuinfo
    把这两个文件通过vi, 内容合并为一个文件,文件在用户的主目录下,文件名为a1.txt
    文件第一行修改为hello
    最后一行修改为world,保存a1.txt退出
    
    gzip

    压缩和解压文件

    压缩--gzip 要压缩的文件
    

    压缩后源文件不存在

    解压--gzip -d 要解压的文件
    

    解压后,压缩文件不见了

    ls -l > a.txt
    gzip a.txt
    gzip -d a.txt.gz
    

    image-20200818110602837

    zip

    压缩和解压文件

    压缩:zip a.zip a.txt#把文件a.txt压缩为 a.zip
    #压缩完之后,源文件和压缩文件都存在
    解压:uzip a.zip
    #解压之后,压缩文件a.zip仍然存在
    

    linux和unix下,首选用gzip压缩,zip压缩是为了和windows有通用的压缩格式

    tar

    把多个文件或者目录打包成一个文件

    打包:tar -cvf 打包文件.tar 要打包的目录
    
    查看打包文件内容:tar -tvf 打包文件.tar
    
    解包:tar -xvf 打包文件.tar
    
    mdkir abc
    cd abc
    #在abc目录下随便创建几个文件
    cd ..#打包abc目录,一定要返回abc的上级目录
    tar -cvf abc.tar abc#把目录abc打包成一个文件abc.tar
    rm -r abc#已经打包成文件了,abc目录没用了
    tar -tvf abc.tar#查看tar文件内容
    tar -xvf abc.tar解包
    

    image-20200818140304164

    tar和gzip的配合使

    不会单独使用tar,实际场景是tar之后总是用gzip压缩

    z参数可以实现自动使用gzip压缩和解压

    打包同时压缩:tar -zcvf 打包压缩文件名.tar.gz 目录名
    
    解压后解包:tar -zxvf 打包压缩文件名.tar.gz
    
    tar -zcvf abc.tar.gz abc#把abc目录打包并压缩为abc.tar.gz
    
    tar -zxvf abc.tar.gz#把文件解包同时解压
    
    df

    查看磁盘使用情况

    df
    df -h用人性化方式显示
    
    ps

    查看系统进程信息

    进程就是正在运行的程序

    ps aux或者ps -aux效果相同

    image-20200818103659965

    top

    动态查看进程信息c

    top#推出top界面按q键
    

    image-20200818103239319

    image-20200818103816354

    kill

    终止进程

    kill PID
    kill -9 pid强制杀死进程pid
    

    使用kill的步骤

    • 先用ps aux找到要杀的进程pid
    • 然后用kill pid杀死

    image-20200818104831817

    ping

    检查与目标主机是否网络联通

    ping 目标域名或者ip地址
    

    image-20200818105104275

    ifconfig

    查看网卡信息

    ifconfig
    

    image-20200818110126370

    su

    切换用户

    su - 用户名

    如果是root,切换到其他用户不需要密码

    su - root #等价于su - 切换到root用户的主目录
    su root等价于 su
    -代表切换用户,同时把当前目录修改为用户的主目录
    没有-  代表只切换用户,不改变当前用户的目录
    

    image-20200818112045597

    exit

    返回前一个用户

    su切换到用户,可以用exit返回到之前的用户

    useradd

    增加用户

    useradd -d 目录名
    useradd -m 目录名
    
    1. 只有root有权限添加用户,所有执行useradd前先切换到root用户
    2. -d指定添加用户的主目录
    3. -m如果指定的用户不存在,就自动创建这个目录
    4. 用户的主目录和用户名一样
    5. 主目录都要放到/home下
    su - #切换到root用户的主目录
    useradd -d /home/user1 user1 -m#创建一个用户名叫user1,主目录在/home/user1,如果主目录不存在,自动创建
    

    image-20200818113849964

    passwd

    修改密码.

    passwd 用户名,省略用户名代表修改用户自己的密码
    普通用户只能修改自己的密码,只有root用户才能修改其他用户的密码

    passwd user1 #修改用户user1的密码
    
    whoami

    显示当前登录用户名

    whoami
    

    image-20200818115207809

    userdel

    删除用户

    1. 只有root用户才有权限删除用户
    2. r删除用户的主目录和邮箱
    3. f强制删除,即使用户已经登陆,也删除
    不要用user1用户su到root用户
    su - 
    userdel -rf user1
    user1最好不是登陆状态
    

    image-20200818115649576

    vi
    • 用vi新建一个文件--vi a.txt

    • 输入内容--hello

      进入vi后按i键(插入文本)接下来可以输内容

    • 保存退出--按esc保存,按冒号,输入wq回车

    image-20200818141718280

    vi的三种模式
    1. 命令模式--第一次进入vi,默认就是命令模式
    2. 输入模式--在命令模式下按i键,进入输入模式//输入模式下按esc,回到命令模式
    3. 末行模式--在命令模式下按冒号进入末行模式//输入wq进入命令模式
    4. 不论在什么模式,按esc总能回到命令模式
    5. 输入模式不能直接进入末行模式
    vi的启动方式
    1. vi新文件 创建一个新文件
    2. vi 已有文件--打开文件
    3. vi 空--没有输入文件,先进入vi的命令模式
    从命令模型进入输入模式的指令
    • i--在光标当前位置插入
    • a--在光标后面的位置插入
    • o--在关闭所在行的下一行插入
    • O--在光标所在行的上一行插入
    • A--在关闭所在行的行尾插入
    • L--在光标所在行的行首插入
    启动vi没有指定文件名的操作方式
    • 如果启动vi没有输入任何内容--按冒号进入末行,接着按q回车

    • 启动vi输入了内容

      1.不保存退出(先回到命令行//按冒号进入末行,输入q!)

      2.保存退出(先回到命令行//按冒号进入末行,输入w 文件名,末行继续输入q)

    命令模式下的删除指令
    • x--删除光标所在的一个字符
    • dd--删除光标所在的一行
    • ndd--n是数字,代表删除从光标开始向下指定的数量行eg 5dd删除光标一下5行
    命令模式下的撤销指令
    1. u--撤销
    2. ctrl+r--反撤销
    命令模式下的复制和粘贴
    • yy--复制光标所在的一行
    • nyy--复制光标所在向下n行eg3yy
    • p--在光标以下进行粘贴
    命令模式下的查找指令
    /要查找的字符串
    
    • n--查找下一个
    • N--查找上一个
    末行模式指令
    • w--保存不退出
    • w 文件名--保存到指定文件
    • wq--保存退出//不可写qw
    • q!--不保存退出
    • q--如果文件内容没有修改,q直接退出||如果文件修改,不能用q退出,否则报错

    image-20200818154937921

    案例

    image-20200818162244144

    cd
    vi /proc/cpuinfo # 进入vi后在命令模式下27yy,代表拷贝27行,退出vi 
    vi /etc/ucf.conf # 把光标移动到文件最后,按p,把刚才的内容粘贴过来 
    # 把第一行内容修改为hello,最后一行修改为world 
    # 回到末行模式 w a1.txt 
    # q!退出vi
    
  • 相关阅读:
    Java泛型
    Hibernate JPA实体继承的映射(一) 概述
    Hibernate JPA实体继承的映射(二) @MappedSuperclass
    rownum使用说明
    Javascript 中使用Json的四种途径
    JavaScript中使用JSON,即JS操作JSON总结
    Refresh Tokens: When to Use Them and How They Interact with JWTs
    Nginx 安装与启动
    JSON与js对象序列化
    js对象小结
  • 原文地址:https://www.cnblogs.com/rainsnow/p/13816326.html
Copyright © 2011-2022 走看看