zoukankan      html  css  js  c++  java
  • Linux笔记

    Linux - 基础笔记

    Linux文件目录

    目录 描述
    /: Linux系统根目录
    /bin、/usr/bin 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等
    /boot 存放Linux系统启动时用到的一些文件,如Linux内核文件:/boot/vmlinuz
    /dev 存放Linux系统下的设备文件,常用的是挂载光驱 mount/dev/cdrom/mnt
    /ect 系统配置文件
    /home 系统默认的用户家目录,每一个用户家的目录都存在这里
    ~表示当前用户的家目录
    ~edu便是用户edu的家目录
    /lib、/usr/lib、/usr/local/lib 系统使用的函数库目录
    /lost + fount 系统异常阐述错误时,会将一些遗失的片段放置在此目录
    /mnt、/media 光盘默认挂载点
    /opt 系统额外安装软件的目录
    /root 系统管理员root的家目录
    /sbin、/usr/sbin、/usr/local/sbin 存放系统管理员使用的命令,如 :fdisk、shutdown、mount
    /tmp 正在执行程序临时存放文件的目录
    /srv 服务启动之后访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
    /usr 应用程序存放目录
    /usr/bin:存放应用程序
    /usr/share:存放共享数据
    /usr/lib:存放不能直接运行却是许多程序运行所必需的一些函数库文件/usr/local : 存放软件升级包
    /usr/share/doc: 系统说明文件存放目录
    /usr/share/man: 程序说明文件存放目录

    Linux基础命令(一)

    tips :

    • ctrl + shift + =放大终端窗口的字体显示
    • ctrl + -终端窗口的字体显示
    • ctrl + c退出当前执行的命令

    命令终端格式 :

    command [-options] [parameter]
    
    
    说明:
    command:命令名,相应功能的英文单词或单词的缩写
    [-options]:选项,可用来对命令进行控制,也可以省略
    parameter:传给命令的参数,可以是零个、一个或者多个
    []代表可选
    

    1. cd 命令 - 去指定目录

    命令 说明
    cd 路径 去哪个目录
    pwd 查看当前所在目录
    cd .. 返回上级目录
    cd ../.. 返回上级的上级目录
    cd . 当前目录
    cd ~ 当前用户的家
    cd - 切换到上一个目录

    2. ls 命令 - 查看当前目录下的内容

    命令 说明
    ls -l 显示当前文件夹下的内容,显示详细列表
    ls - a 显示所有文件,包括隐藏文件, 以"." 点开头的文件就是隐藏文件
    ls -lh 以k、m、g显示文件的大小
    ll 是ls -l 的简写形式
    . .. 任何目录下都会有.和..这两个文件夹
    ----------------- -------------------------------------------------------------------------------------------------------
    ls常用参数
    -a 显示指定目录下所有子目录与文件,包括隐藏文件
    -l 以列表方式显示文件的详细信息
    -h 配合 -l 以人性化的方式显示文件大小

    3. 创建命令

    命令 说明
    touch 文件名 创建文件
    touch 文件1 文件2 创建多个文件, 文件之间空格即可
    touch 文件夹1/文件2 在文件夹1下创建文件2 文件夹1必须存在
    gedit 文件名.txt 用记事本打开文件
    gedit 新文件.txt 创建文件并用记事本打开
    mkdir 文件夹名 创建文件夹 makedir
    mkdir 文件夹1 文件夹2 创建多个文件夹, 文件夹之间空格即可
    mkdir 文件夹1/文件夹2 在已存在文件夹1下创建文件夹2
    mkdir 文件夹1/文件夹2 -p 在文件夹1下创建文件夹2 ,若1不存在则创建
    ---------------------------- -------------------------------------------
    rm 文件名 删除指定的文件名 remove
    rm 文件1 文件2 删除多个文件
    rm 文件夹 若文件夹下有文件,则无法删除
    rm 文件夹 -r 文件夹下有无文件都会删除
    rm * 删除当前目录下的所有文件(不会删除文件夹)
    rm * -r 删除当前目录下的所有文件和文件夹(无法删除隐藏文件/文件夹)
    要想删除隐藏文件或文件夹,只能打全要删除的文件/文件夹
    clear 清屏
    ------------------------------------------ -----------------------------------------------------------------------------------------------
    删除命令参数 rm
    -i 以进行交互式方式执行
    -f 强制删除,忽略不存在的文件,无需提示
    -r 递归地删除目录下的内容,删除文件夹时必须加此参数

    4. 通配符 :

    通配符 含义
    * 文件代表文件名中所有字符
    ls te* 查找以te开头的文件
    ls *html 查找结尾为html的文件
    代表文件名中任意一个字符
    ls ?.c 只找第一个字符任意,后缀为.c的文件
    ls a.? 只找只有3个字符,前2字符为a.,最后一个字符任意的文件
    [] [”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。
    [abc] 匹配a、b、c中的任意一个
    [a-f] 匹配从a到f范围内的的任意一个字符
    ls [a-f]* 找到从a到f范围内的的任意一个字符开头的文件
    ls a-f 查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用
    如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。
    ls *a 查找文件名为*a的文件
    history 查看历史命令
    命令 -- help 查看这个命令的帮助 例如 : ls -- help
    man 命令 linux手册(英文) 例如 : man ls
    ----------------------- -------------------------------
    使用man时的操作键:
    操作键 功能
    空格键 显示手册页的下一屏
    Enter 键 一次滚动手册页的一行
    b 回滚一屏 back
    f 前滚一屏
    q 退出
    /word 搜索word字符串

    5. 拷贝 :cp

    命令 说明
    cp 文件 新名字 拷贝到当前目录下并重命名
    cp 文件 路径 拷贝到指定目录下
    cp 文件 路径/新名字 拷贝到指定目录下并重命名
    cp 文件夹 路径 -r 拷贝文件夹的时候后面必须用 -r
    cp参数 含义
    -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
    -f 覆盖已经存在的目标文件而不提示
    -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
    -r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
    -v 显示拷贝进度

    6. 移动 /重命名: mv

    命令 说明
    mv 文件 路径 移动文件到指定目录
    mv 文件 路径/新文件名 一定文件到指定目录下并重命名
    mv 文件夹 路径 移动文件夹 没有 -r -p什么的,直接移动
    mv 文件夹 新的文件夹名 重命名文件夹名

    Linux 文件基本属性

    Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

    在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如 :

    [root@www /]# ls -l
    total 64
    dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
    dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
    

    实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

    在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

    • 当为[ d ]则是目录

    • 当为[ - ]则是文件;

    • 若是[ l ]则表示为链接文档(link file);

    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

      接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。每个文件的属性由左边第一部分的10个字符来确定

    文件类型 属主权限 属组权限 其他用户权限
    0 1 2 3 4 5 6 7 8 9
    d r w x r - x r - x
    目录文件类型 读 写 执行 读 写 执行 读 写 执行

    从左至右用0-9这些数字来表示 :

    • 第0位确定文件类型,
    • 第1-3位确定属主(该文件的所有者)拥有该文件的权限。
    • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限
    • 第7-9位确定其他用户拥有该文件的权限。

    第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

    第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;

    第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。


    Linux基础命令(二)

    1. 输出重定向命令:>

    将原本输出结果显示在终端的内容保存在文件中

    ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 
    

    注意:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

    2. 分页查看显示:more

    分页查看文件内容 Enter :下一行 空格键: 下一页 b键 : 上一页 q键 : 退出

    more test.txt
    

    3. 管道:|

    管道 : 输出结果|接收结果

    ls / | more
    把前面输出的结果返回给more展示
    

    4. 建立链接文件:ln

    Linux链接文件类似于Windows下的快捷方式。

    链接文件分为软链接和硬链接。

    软链接:软链接不占用磁盘空间,源文件删除则软链接失效。可以链接目录

    ln -s 源文件 链接文件
    

    硬链接:硬链接只能链接普通文件不能链接目录。修改其一,另一会同步更新,删除其一,另一不受影响

    ln 源文件 链接文件
    

    注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

    5. 查看或者合并文件内容:cat

    查看文件的内容并输出到终端窗口,可以一次查看多个文件,用空格隔开

    cat test1.txt text2.txt
    

    将查看的多个文件合并到新的文件

    cat test1.txt text2.txt > test3.txt
    
    

    6. 文本搜索:grep

    grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

    grep一般格式为:

    grep [-选项] ‘搜索内容串’文件名
    
    
    # 在123.txt文件中搜索hello
    grop hello 123.txt
    
    # 忽略大小写
    grop -i hello 123.txt
    
    # 忽略大小写,显示行号
    grop -ni hello 123.txt
    
    

    在grep命令中输入字符串参数时,最好引号或双引号括起来 :

    grep 'a' 1.txt
    
    

    常用选项说明:

    选项 含义
    -v 显示不包含匹配文本的所有行(相当于求反)
    -n 显示匹配行及行号
    -i 忽略大小写

    grep搜索内容串可以是正则表达式。

    参数 含义
    ^a 行首,搜寻以 m 开头的行;grep -n '^a' 1.txt
    ke$ 行尾,搜寻以 ke 结束的行;grep -n 'ke$' 1.txt
    [Ss]igna[Ll] 匹配 [] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt
    . (点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt
    # 当前目录下的所有文件查找内容
    grep -n 内容 . -r
    . 代表当前目录 -r 递归文件夹
    
    

    7. 查找文件:find

    通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

    常用用法:

    命令 含义
    find . -name test.sh 查找当前目录下所有名为test.sh的文件
    find . -name '*.sh' 查找当前目录下所有后缀为.sh的文件

    8. 归档管理:tar

    tar命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

    打包 :
    将所有以.txt为结尾的文件打包为a.tar文件,打包不是压缩文件
    tar cvf a.tar *.txt
    
    解包 :
    # 将 a.tar包解压到当前目录
    tar xvf a.tar -C atar
    # 将a.tar包解药到atar目录  C 必须是大写
    tar xvf a.tar -C atar
    
    

    tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

    常用参数:

    参数 含义
    c 生成档案文件,创建打包文件
    v 列出归档解档的详细过程,显示进度
    f 指定档案文件名称
    t 列出档案中包含的文件
    x 解开档案文件

    9. 文件压缩解压:gzip

    tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。

    gzip  [选项]  被压缩文件
    
    

    常用选项:

    选项 含义
    -d 解压
    -r 压缩所有子目录

    tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

    压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...

    -z :指定压缩包的格式为:file.tar.gz
    
    

    解压用法: tar zxvf 压缩包包名

    -z :指定压缩包的格式为:file.tar.gz
    
    

    解压到指定目录:-C (大写字母“C”)

    10. 文件压缩解压:bzip2

    tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

    tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。

    在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

    压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)

    解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

    11. 文件压缩解压:zip、unzip

    通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。

    压缩文件:zip [-r] 目标文件(没有扩展名) 源文件

    解压文件:unzip -d 解压后目录文件 压缩文件

    12. 查看命令位置:which

    which 后面通常跟的是命令

    which ls  输出的是ls命令文件所在的文件目录
    
    

    13. 修改文件权限:chmod

    chmod 修改文件权限有两种使用格式:字母法与数字法。

    字母法:chmod u/g/o/a +/-/= rwx 文件

    # 更改hello.txt 文件的u权限为所有者都不能读、写、执行
    chmod u=--- hello.txt
    # 更改hello.txt 文件的u、g、o权限都为:- --- --- --- 所有人所有权限都没有
    chmod a=--- hello.txt
    # 给hello.txt 的u增加一个读权限 r : - r-- --- ---
    chmod u+r hello.txt
    # 给不同的用户、群组设置不同的权限
    chmod u=r,g=w,o=x hello.txt
    chmod u+r,g+w,o+x hello.txt
    
    
    [ u/g/o/a ] 含义
    u user 表示该文件的所有者
    g group 表示与该文件的所有者属于同一组( group )者,即用户组
    o other 表示其他以外的人
    a all 表示这三者皆是
    [ +-= ] 含义
    + 增加权限
    - 撤销权限
    = 设定权限
    rwx 含义
    r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
    w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
    x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

    如果需要同时进行设定拥有者、同组者以及其他人的权限,参考如下:

    数字法:“rwx” 这些权限也可以用数字来代替

    字母 说明
    r 读取权限,数字代号为 "4"
    w 写入权限,数字代号为 "2"
    x 执行权限,数字代号为 "1"
    - 不具任何权限,数字代号为 "0"
    # chmod 666 file
    - rw-rw-rw-
    
    

    如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

    chmod 751 file:

    • 文件所有者:读、写、执行权限
    • 同组用户:读、执行的权限
    • 其它用户:执行的权限

    注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限

    14. 切换到管理员账号

    Centos下切换到root的命令 : su

    然后输入root密码就进入root用户

    su 用户名 切换到普通用户 切换到普通用户不需要密码
    
    

    15. 设置用户密码:passwd

    命令行内直接输入 passwd回车后

    输入旧密码后再输新密码可设置当前用户密码 密码

    root用户下修改其他普通用户密码 :

    输入 passwd 用户名 后,直接输入新密码即可

    在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户密码。用户也可以直接使用该命令来修改自己的密码,而无需在命令后面使用用户名。

    16. 退出登录账户: exit

    • 如果是图形界面,退出当前终端;
    • 如果是使用ssh远程登录,退出登陆账户;
    • 如果是切换后的登陆用户,退出则返回上一个登陆账号。

    17. 查看登录用户:who

    who命令用于查看当前所有登录系统的用户信息。

    常用选项:

    选项 含义
    -q或--count 只显示用户的登录账号和登录用户的数量
    -u或--heading 显示列标题

    18. 关机重启:reboot、shutdown

    命令 含义
    reboot 重新启动操作系统
    shutdown –r now 重新启动操作系统,shutdown会给别的用户提示
    shutdown -h now 立刻关机,其中now相当于时间为0的状态
    shutdown -h 20:25 系统在今天的20:25 会关机
    shutdown -h +10 系统再过十分钟后自动关机
    ctrl + c 取消关机

    vim编辑器

    vi简介

    vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。 vi没有菜单,只有命令,且命令繁多。

    vi有三种基本工作模式 :

    • 命令模式
    • 文本输入模式
    • 末行模式

    命令行模式

    任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。

    文本输入模式

    在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

    末行模式

    末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:

    :sp newfile
    
    

    则分出一个窗口编辑newfile文件。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。

    vim基础操作

    vi a.txt  # 用vi打开文件,若文件不存在会创建  也可用vim
    
    

    vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富

    进入插入模式:

    i: 插入光标前一个字符 
    
    I: 插入行首 
    
    a: 插入光标后一个字符 
    
    A: 插入行未 
    
    o: 向下新开一行,插入行首 
    
    O: 向上新开一行,插入行首
    
    

    进入命令模式:

    ESC:从插入模式或末行模式进入命令模式

    移动光标:

    h: 左移 
    
    j: 下移 
    
    k: 上移 
    
    l: 右移
    
    M: 光标移动到中间行 
    
    L: 光标移动到屏幕最后一行行首 
    
    G: 移动到指定行,行号 -G
    
    w: 向后一次移动一个字 
    
    b: 向前一次移动一个字
    
    {: 按段移动,上移 
    
    }: 按段移动,下移
    
    Ctr-d: 向下翻半屏 
    
    Ctr-u: 向上翻半屏
    
    Ctr-f: 向下翻一屏 
    
    Ctr-b: 向上翻一屏
    
    gg: 光标移动文件开头 
    
    G: 光标移动到文件末尾
    
    

    删除命令:

    x: 删除光标后一个字符,相当于 Del 
    
    X: 删除光标前一个字符,相当于 Backspace
    
    dd: 删除光标所在行,n dd 删除指定的行数 D: 删除光标后本行所有内容,包含光标所在字符 
    
    d0: 删除光标前本行所有内容,不包含光标所在字符
    
    dw: 删除光标开始位置的字,包含光标所在字符
    
    

    撤销命令:

    u: 一步一步撤销 
    
    
    Ctr-r: 反撤销
    
    

    重复命令:

    .: 重复上一次操作的命令
    
    

    文本行移动:

    >>: 文本行右移 
    
    
    <<: 文本行左移
    
    

    复制粘贴:

    yy: 复制当前行,n yy 复制 n 行 
    
    p: 在光标所在位置向下新开辟一行,粘贴
    
    

    可视模式:

    v: 按字符移动,选中文本 
    
    V: 按行移动,选中文本可视模式可以配合 d, y, >>, <<实现对文本块的删除,复制,左右移动
    
    

    替换操作:

    r: 替换当前字符
    R: 替换当前行光标后的字符,直到按esc
    
    

    查找命令:

    /: str查找
    n: 下一个
    N:上一个
    
    

    退出命令:

    ESC进入命令模式
    打出":"冒号 (shift+;)进入末行模式
    w :  保存
    wq : 保存并退出
    q! : 不保存,强制退出
    
    
  • 相关阅读:
    Java 概述
    快速开始
    Essential Java.《Java 编程要点》
    SpringBoot属性配置-第三章
    SpringBoot项目属性配置-第二章
    SpringBoot学习-第一章
    spring boot configuration annotation processor not found in classpath
    IntelliJ IDEA 2017 完美注册方法及破解方法
    springmvc-初次接触
    mybatis的多表联查
  • 原文地址:https://www.cnblogs.com/qmuy/p/11477425.html
Copyright © 2011-2022 走看看