• Linux中的常用命令


    熟练使用Linux命令,提高开发效率

    切换目录

    # 切换到主目录,等价于 cd ~
    $ cd
    
    # 切换到上一次工作目录
    $ cd -
    
    # 切换到当前目录下其他目录
    $ cd ./demo
    
    # 切换到上一级目录
    $ cd ..
    
    # 切换到其他盘
    $ cd E:
    
    # 显示当前目录路径
    $ pwd
    

    列表显示

    # 显示所有文件
    $ ls
    
    # 显示所有文件,包括隐藏文件
    $ ls -a
    
    # 列出每个文件更详细的信息
    $ ls -l
    
    # 查看当前目录属性
    $ ls -ld
    
    # 列出目录中每个文件的大小( K/M/G 单位)
    $ ls -lh
    
    # 递归地列出子目录的内容
    $ ls -R
    
    # 按最后一次修改时间的顺序显示文件
    $ ls -t
    
    # 显示所有以app开头的文件
    $ ls app*
    

    结果描述

    按列描述:类型及权限 | 引用数 | 用户 | 组 | 大小 | 月 | 日 | 年/时间 | 名称

    类型(首字符):

    • -: 普通文件、d: 目录文件、b: 块设备、c: 字符设备、l: 链接、s: 套接字

    权限:

    • r读,w写,x可执行。

    权限说明

    -rw-r--r--为例,第一个-表示是普通文件,rw-表示拥有者有读写权限,r--表示组内用户有读权限,最后一个r--表示其他用户有读权限

    使用 chmod 命令可以修改权限:

    • +: 添加权限
    • -: 去掉权限
    • =: 设置权限
    • u: 用户
    • g: 组
    • o: 其他
    # 给文件添加可执行权限
    $ chmod +x file
    
    # 去掉文件的可执行权限
    $ chmod -w file
    
    # 给文件所有者添加可执行权限
    $ chmod u+w file
    
    # 给文件同组去掉可写权限
    $ chmod g-w file
    
    # 所有者读写执行、同组读执行、其他读执行
    $ chmod u=rwx, g=rx, o=rx file
    

    除了上面的设置方式,也可以通过八进制设置。读的值是4,写的值是2,执行是1,最高权限是7(4 + 2 + 1)。chmod 755 filechmod u=rwx, g=rx, o=rx file效果一样

    显示文件内容

    # 显示file1文件的内容
    $ cat file1
    
    # 依次显示file1和file2的内容
    $ cat file1 file2
    
    # 把file1和file2文件的内容结合起来,复制到file3。file3原有内容会被清除
    $ cat file1 file2 > file3
    
    # 把file1和file2文件的内容结合起来,复制到file3。file3原有内容不会被清除
    $ cat file1 file2 >> file3
    
    # 重写file1文件的内容,内容输入完毕后使用 Ctrl+d 保存
    $ cat > file1
    
    # 显示file1的开头n行
    $ head -n file1
    
    # 显示file1的结尾n行
    $ tail -n file1
    
    # 分页显示,每次显示一屏。空格键向下翻一屏(只能向下),回车键向下翻一行,q退出
    $ cat file1 | more
    
    # less 和 more 操作方式一样,唯一不同点是less可以通过上下键进行翻行
    $ cat file1 | less
    

    说明:more 和 less 参数可以结合其他命令使用,如 ls、find

    文件和文件夹

    # 新建文件。如果存在同名文件,会修改文件的访问和修改时间
    $ touch file
    
    # 新建一个文件夹
    $ mkdir folder
    
    # 强制删除一个文件或文件夹
    $ rm –rf [file | folder]
    
    # 复制a.txt,副本为b.txt
    $ cp a.txt b.txt
    
    # 复制a.txt b.txt,副本保存到test目录
    $ cp a.txt b.txt test
    
    # 递归复制test目录,副本保存到test2目录
    $ cp -R test test2
    
    # mv命令可以对文件重命名。把a.txt重命名为aa.txt
    $ mv a.txt aa.txt
    
    # 把aa.txt文件移动到test目录下
    $ mv aa.txt test
    
    # 把aa.txt文件移动到test目录下,并改名为aaa.txt
    $ mv aa.txt test/aaa.txt
    
    # 把test目录移动到test2目录
    $ mv test test2
    

    文件搜索

    find 命令和 grep(General Regular Expression Parser)命令用于查找文件,grep 支持通过正则的方式检索文件

    find

    格式:find [目录] [条件] [动作]

    • 目录:要搜索的目录及其子目录,默认为当前目录
    • 条件:搜索文件的筛选方式
      • -name: 指定文件名
      • -type: 指定文件类型(b/c/d/p/l/f)
      • -size: 指定文件大小,单位可以是K/M/G。+表示大于,-表示小于
      • -user: 指定用户
      • -group: 指定组
    • 动作:匹配特定的搜索结果,也可以是文件名
    # 查找根目录下名字为install.log的文件
    $ find / -name install.log
    
    # 查找/etc/目录下,大于20KB的文件
    $ find /etc -size +20K
    
    # 查找/etc/目录下,小于50KB的文件
    $ find /etc -size -50K
    

    grep

    格式:grep [选项] pattern [文件名]

    • 选项:-i: 忽略大小写; -n: 显示行号
    • pattern: 所要匹配的正则表达式字符串
    # 在 /etc/passwd 文件中,查找包含fa字符串的行
    $ grep -n fa /etc/passwd
    
    # 过滤ls /bin输出的内容,只显示以m开头的行
    $ ls /bin | grep '^m'
    

    压缩命令

    # 把a.txt打包成a.tar.gz
    $ tar -czvf a.tar.gz a.txt
    
    # 解压a.tar.gz
    $ tar -xzvf a.tar.gz
    
    # 显示压缩包的信息
    $ tar -tzvf a.tar.gz
    
    

    -c: 打包
    -z: 压缩包为.tar.gz格式
    -v: 显示过程
    -f: 指定打包后的文件名
    -x: 解压

    快捷键

    ctrl+l 清屏
    ctrl+c 强制终止当前命令
    ctrl+a 光标移动到命令行首
    ctrl+e 光标移动到命令行尾
    ctrl+u 从光标所在位置删除到行首
    ctrl+z 把命令放入后台
    ctrl+r 在历史命令中搜索
    一次tab 补全
    两次tab 提示
    shift+pageup 向上翻页
    shift+pagedown 向下翻页

    用户管理、组管理

    Linux 是一个多用户系统,允许创建用户和组,可以把某个用户归属于某个组。可以针对组或者用户单独设置权限

    # 创建用户
    $ useradd username
    
    # 为用户设置密码,修改密码也是同样命令
    $ passwd username
    
    # 彻底删除用户
    $ userdel -r username
    
    # 切换用户
    $ su username
    
    # 创建用户组
    $ groupadd groupname
    
    # 向组中添加用户
    $ gpasswd -a username
    
    # 删除组中的用户
    $ gpasswd -d username
    
    # 设置文件所属的组
    $ chgrp groupname filename
    
    # 设置文件所有者
    $ chown username filename
    
    # 删除用户组
    $ groupdel groupname
    

    PATH 变量

    PATH 指的是环境变量,我们之所以可以在任何目录下执行上面的这些命令,是因为/bin目录默认添加到了系统的 PATH 中。可以通过echo $PATH查看当前用户的 PATH 信息:

    /root/.nvm/versions/node/v8.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    

    上面的目录以分号分割,执行命令时会依次查找这些目录,直到找到命令为止。用户也可以自己添加环境变量,打开用户目录下的.bashrc文件,文件末尾添加export PATH=$PATH:dir1[:dir2],添加好后需要使用source filePath命令让配置生效。

  • 相关阅读:
    MapReduce运行原理和过程
    为什么均方差(MSE)不适合分类问题?交叉熵(cross-entropy)不适合回归问题?
    207. 课程表
    131. 分割回文串
    152. 乘积最大子数组
    pandas内存优化函数
    395. 至少有K个重复字符的最长子串
    HTML入门
    递归与链表
    Spring--001
  • 原文地址:https://www.cnblogs.com/yesyes/p/15375402.html
Copyright © 2020-2023  润新知