美文网首页
Linux 常用高级命令总结

Linux 常用高级命令总结

作者: 越大大雨天 | 来源:发表于2019-05-08 12:55 被阅读0次

    重定向命令

    将命令行输出的结果写入指定文件内.

    命令 说明
    > 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式
    >> 如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式

    常用命令为:

    • ls /home > ./info.text

      将home目录的文件目录内容覆盖写入当前目录的info.txt文件中

    • pwd home >> ./info.text

      将home路径信息内容追加写入当前目录的info.txt文件中

    查看文件内容

    查看文件选项

    命令 选项
    cat 查看小型文件
    more 分屏查看大型文件

    常用命令为:

    • cat 1.txt

      查看1.txt文件内容,可结合重定向命令实现文件合并.如下:

    • cat 1.txt >> 2.txt

      将1.txt文件内容追加到2.txt文件内

    • more msg.txt

      分屏查看msg.txt文件内容

    more分屏查看文件时操作命令:

    操作间 说明
    空格 显示下一屏信息
    回车 现实下一行信息
    b 显示上一屏信息
    f 显示下一屏信息
    q 退出查看

    管道命令使用

    管道(|):一个命令的输出可以通过管道做为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容。

    常用命令为:

    • ls -lh | more

      将当前目录信息使用more分屏模式查看

    • 可结合后面的grep文本搜索命令使用,如下:

    • ls | grep 'txt'

      在ls返回的目录信息中搜索'txt'字段

    链接命令

    链接命令是创建链接文件,分为硬链接和软连接两种:

    命令 说明
    ln -s 创建软链接
    ln 创建硬链接

    软链接

    类似于Windows下的快捷方式,当一个源文件的目录层级比较深,我们想要方便使用它可以给源文件创建一个软链接。

    软链接命令为:

    • ln -s /home/python/Desktop/AA/info.txt ./info-s.txt

      给桌面AA文件夹内info.txt文件在当前路径创建软链接,名为info-s.txt

    注意事项:

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

    • 删除源文件或移动源文件位置则软链接失效

    • 可以给目录创建软链接

    硬链接

    类似于源文件的一个别名,也就是说硬链接同源文件名一样,指向的是同一个文件数据,而不是指向它的源文件名.

    硬链接的作用是可以给重要文件创建硬链接,能够防止文件数据被误删。

    硬链接命令为:

    • ln ./AA/info.txt ./info-h.txt

      给当前目录下AA文件夹内info.txt文件在当前路径创建软链接,名为info-h.txt

    注意事项:

    • 创建硬链接使用相对路径和绝对路径都可以

    • 删除源文件,硬链接还可以访问到数据。

    • 创建硬链接,硬链接数会加1,删除源文件或者硬链接,硬链接数会减1。

    • 创建软链接,硬链接数不会加1

    • 不能给目录创建硬链接

    硬链接数:

    硬链接数就是文件数据被文件名使用的次数, 好比引用计数

    文本搜索命令

    命令 说明
    grep 文本搜索

    grep命令选项:

    命令选项 说明
    -i 忽略大小写
    -n 显示匹配行号
    -v 显示不包含匹配的行

    grep结合正则表达式使用:

    正则表达式 说明
    ^ 以指定字符串开头
    $ 以指定字符串结尾
    . 匹配一个非换行符的字符

    常用命令为:

    • grep "python" hello.py -in

      在hello.py文件中搜索"python"内容,忽略大小写,并显示匹配行号.

    • grep "python" hello.py -iv

      在hello.py文件中搜索不包含"python"的行,忽略大小写.

    • grep "^py" hello.py -n"

      在hello.py文件中搜索"py"开头的内容,显示匹配行号.

    • grep "on$" hello.py -n

      在hello.py文件中搜索"on"结尾的内容,显示匹配行号.

    • grep "py.on" hello.py -n

      在hello.py文件中搜索符合"py.on"的内容,显示匹配行号.

    结合管道使用:

    • ls | grep 'txt'

    查找文件命令

    命令 说明
    find 在指定目录下查找文件(包括目录)

    find常用选项:

    选项 说明
    -name 根据文件名(包括目录名)查找
    - perm 根据文件权限查找

    find可结合通配符使用:

    • 通配符不仅可用于文件查找,还可在其他命令中使用,比如ls、mv等
    通配符 说明
    * 代表0个或多个任意字符
    ? 代表任意一个字符

    常用命令为:

    • find . -name "*.txt"

      在当前路径起始向下,所有文件名结尾为.txt的文件.

    • find ~ -perm 755

      在家目录下,查找所有权限为755的文件,即用户、用户组、其他用户权限分别为可读写操作/可读操作/可读操作。详细权限内容参考后文。

    压缩和解压缩命令

    Linux 默认支持的3种格式

    • .gz :使用tar命令来压缩和解压缩

    • .bz2 :使用tar命令来压缩和解压缩

    • .zip :使用zip命令来压缩和解压缩

    tar 命令选项

    选项 命令
    -c 创建打包文件
    -v 显示打包或解包详细信息
    -f 指定文件名称
    -z 压缩或解压缩(用于.gz格式)
    -j 压缩或解压缩(用于.bz2格式)
    -x 解包
    -C 解压缩到指定目录

    常用命令为:

    • tar -zcvf test.tar.gz dir1 dir2

      将dir1和dir2压缩为test.tar.gz 名的gz压缩文件

    • tar -zxvf test.tar.gz -C DIC

      将test.tar.gz文件解压到当前目录的DIC文件夹内

    • tar -jcvf test.bz2 dir1 dir2

      将dir1和dir2压缩为test.bz2 名的bz2压缩文件

    • tar -zxvf test.bz2 -C DIC

      将test.bz2文件解压到当前目录的DIC文件夹内

    可不指定解压或压缩路径,默认解压或压缩到当前路径

    zip 和unzip命令选项的使用

    命令及选项 说明
    zip 压缩成.zip格式文件
    unzip 解压缩.zip格式文件
    -d 解压缩到指定目录

    常用命令为:

    • zip test.zip dir1 dir2

      将dir1和dir2压缩为test.zip

    • unzip test.zip -d DIC

      将test.zip解压到DIC目录内

    说明

    • 压缩文件尽量使用.gz格式,占用空间更少

    • zip格式占用空间较大,但各平台较通用

    用户权限命令

    chmod命令介绍

    chmod用于修改文件权限,修改方式分为两种:

    • 字母法

    • 数字法

    字母法

    角色 说明
    u user,文件所有者
    g group,用户组
    o other,其他用户
    a all,所以用户

    权限说明

    权限 说明
    r 可读
    w 可写
    x 可执行
    - 无任何权限

    权限设置说明:

    操作符 说明
    + 增加权限
    - 撤销权限
    = 设置权限

    各角色权限对应位置说明:

    image.png

    如图:使用ls -l命令以列表方式显示文件信息,信息开头如-rw-rw-r--即为每个文件的权限,其长度为10。第一个位置为文件类型,除开第一个,其于9个每3个为一组,分别对应用户u、g、o权限的r、w、x权限,无权限的为-表示。

    权限对应示例:

    ---------所有用户均无任何权限

    rwxrwxrwx所有用户都有读、写、可执行的权限

    rwxrw-r--user可读、写、执行,group可读、写,other只可读

    字母法修改权限命令示例:

    就以上图1.bz2文件权限为例修改

    • 命令:chmod u=rwx,g-w,o+x 1.bz2

      解析:命令修改1.bz2文件权限:user改为rwx权限,user去掉w权限,other增加x权限,修改后1.bz2权限如下,可与上图对比。

      image.png

    数字法

    数字法可以让“rwx”三个权限字母仅用一个数字来代替

    权限说明:

    权限 说明 权限值
    r 可读 4
    w 可写 2
    x 可执行 1
    - 无任何权限 0

    把对应权限的权限值相加,即可得到最终权限值;

    如rw- 对应权限值6,r-x对应权限值5,r--对应权限值4;

    在修改权限命令中用3个数字可分别对应u、g、o的权限内容。

    数字法修改权限命令示例:

    同样以上图1.bz2文件权限为例修改

    • 命令:chmod 666 1.bz2

      解析:命令修改1.bz2文件权限为666,6=4+2 ,即分别对应u、g、o权限为rw-, 即修改所有角色权限为可读写权限,可继续对比上图。

      image.png

    说明

    常使用的是数字法给不同角色修改权限,语法更简洁。

    获取管理员权限相关命令

    sudo 命令的使用

    命令 说明
    sudo 单个命令l临时获取root权限,命令前加sudo
    sudo -s 切换到root用户,获取管理员权限
    • 例:在根目录新建文件,需使用root权限:

      使用sudo获取临时权限:sudo touch /test.txt

    whoami 命令

    • 查看当前用户权限

    exit 命令

    • 退出登录用户(在不同用户之前切换时需先使用exit推出栈

    who 命令

    • 查看所有登录用户

    passwd 命令

    • 修改用户密码,不指定用户时默认修改当前登录用户密码

    关机重启命令

    • shutdown -h now 立即关机

    • shutdown -h 10 10分钟后关机

    • reboot重启

    用户相关操作

    useradd 创建用户

    创建用户需使用root权限

    选项 说明
    -m 创建用户时,自动创建用户主目录(基本都会使用该选项)
    -g 指定用户所属的用户组,默认不指定时自动创建同名用户组

    示例:

    • sudo useradd -m demo

      解析:创建用户demo,并默认创建同名用户组,图中可见,家目录中新增demo用户。

      image.png

      也可在使用命令cat /etc/passwd/etc/passwd中查看新增用户,最文件最后一行显示demo用户信息:

      image.png
    • id命令查看用户信息

      • 第一个: uid 表示用户id

      • 第二个: gid 表示用户组id

      • 第三个: 组 表示用户所在的用户组

      且可见新建demo用户的组数量小于python用户,这将会在下面详细讲到。

      image.png

    设置密码

    使用sudo passwd 用户名的命令形式给用户设置密码

    • 给新建用户demo设置密码命令:sudo passwd demo
    image.png

    切换用户

    • 使用su 用户命令切换用户

      切换用户后,当前用户名变为demo

      image.png
    • 新建的用户不在sudo的组内,是无法使用使用root权限的

      image.png

      解决办法:

      • 给demo用户设置一个sudo附加组, 需要使用usermod修改用户信息

    修改用户信息

    usermod:修改用户信息

    选项 说明
    -G 设置一个附加组
    -g 修改用户组
    • 切换回原用户给demo用户设置附加组sudo,让其可使用sudo命令:

      sudo usermod -G sudo demo

    image.png
    • 给demo用户修改组信息过后,即可成功切换到root用户下:
    image.png

    删除附加组

    gpasswd :添加或删除附加组信息

    选项 说明
    -a 用户名 给用户添加附加组
    -d 用户名 给用户删除附加组
    • 在python用户下删除demo用户的sudo组

      sudo gpasswd -d demo sudo

    删除用户

    userdel:删除用户

    选项 说明
    -r 用户名 删除用户主目录,必须要设置,否则用户主目录不会删除
    • 命令:sudo userdel -r demo删除创建的demo用户:

      删除前请确保使用exit完全退出了栈

      image.png

      忽略最后的提示,demo用户成功删除。

      删除用户,默认同名的用户组也会被删除

    用户组相关操作

    • groupadd :创建用户组

      • sudo groupadd test
    • sudo useradd -m -g test demo: 创建demo用户同时指定用户组test

    • sudo usermod -g abc demo:修改用户组为abc

    • sudo usermod -G sudo demo: 给用户设置附加组sudo

    • groupdel:删除组

      • sudo groupdel test:删除用户组

      • 如果用户组下面有用户,需要先使用userdel -r删除用户,再删除组

    编辑器 vim

    vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。

    vim的工作模式

    • 命令模式

    • 编辑模式: i

    • 末行模式:

      image.png

    编辑模式和末行模式之间不能直接切换,都需要先退回到命令模式

    vim 末行模式命令

    命令模式下进入末行模式

    • :w 保存

    • :wq 保存退出

    • :x 保存退出

    • :q! 强制退出

    vim 命令模式下常用命令

    命令 说明
    yy 复制光标所在行
    p 粘贴
    dd 删除/剪切当前行
    V 按行选中
    u 撤销
    ctr+r 反撤销
    >> 往右缩进
    << 往左缩进
    :/搜索的内容 搜索指定内容
    :%s/要替换的内容/替换后的内容/g 全局替换
    :开始行数,结束行数s/要替换的内容/替换后的内容 局部替换
    . 重复上一次命令操作
    G 回到最后一行
    gg 回到第一行
    数字+G 回到指定行
    ctr+f 下一屏
    ctr+b 上一屏
    shift+6 回到当前行的行首
    shift+4 回到当前行的行末

    相关文章

      网友评论

          本文标题:Linux 常用高级命令总结

          本文链接:https://www.haomeiwen.com/subject/wpkmoqtx.html