1 前言

  1. Linux Shell命令应该是算是非常入门的东西,但是实际上在使用的时候,会遇到各种各样的问题,前几天写了一个课程设计,要杀死一个进程。

    我们正常的操作是:
    ps | grep xxx
    kill -9 xxxx
  2. kill命令是常用的,但是用killall命令会更快:
    killall -9 xxx

2 正文

2.1 关机/重启

  1. #关机(root用户)
    shutdown -h now # 立刻关机
    shutdown -h +10 # 10分钟后关机
    shutdown -h 12:00:00 # 12点整关机
    halt # 等于立刻关机 #重启
    shutdown -r now # 立刻重启
    reboot # 等于立刻重启

2.2 echo

  1. root@Ubuntu:~# a="Hello World!"
    root@Ubuntu:~# echo a # 单纯的把字母a打印
    a
    root@Ubuntu:~# echo &a # 报错
    [1] 8012 a:command not found
    [1]+ Done echo
    root@Ubuntu:~# echo $a # 正确打印a代表的字符串
    Hello World!
    root@Ubuntu:~#

2.3 vim文本编辑器

2.3.1 最基本用法

  1. vim filename
  2. 首先会进入“一般模式”,此模式只接受各种快捷键和命令,不能直接编辑文本内容
  3. 按i键,就会从一般模式进入编辑模式,在此模式下,敲入的都是文本内容
  4. 编辑完成之后,按Esc键退出编辑模式,重新回到一般模式
  5. 再按:,进入“底行命令模式”,输入wq命令,回车即可保存退出

2.3.2 常用快捷键

  1. # 下面的一些快捷键或命令只是简单的一小部分,我只是列举出来一些比较常用的命令
    # 在一般模式下使用
    a # 在光标后一位开始插入
    A # 在该行的最后插入
    I # 在该行的最前面插入
    gg # 直接跳到文件的首行
    G # 直接跳到文件的尾行
    nG # 直接跳到第n行
    dd # 删除一行
    3dd # 删除3行
    yy # 复制一行
    3yy # 复制3行
    p # 粘贴
    u # undo撤销
    v # 进入字符选择模式,选择完成后,按y复制,按p粘贴
    Ctrl+v # 进入块选择模式,选择完成后,按y复制,按p粘贴
    V(Shift+v) # 进入行选择模式,选择完成后,按y复制,按p粘贴

2.3.3 查找/替换

  1. :set nu  # 显示行号
    :set nonu # 隐藏行号
    :/you # 查找文本中出现的you,并定位到第一个出现的地方,按n可以定位到下一个(按N定位到上一个)
    :s/aaa/bbb # 查找光标所在行的第一个aaa,替换为bbb
    :%s/aaa/bbb # 查找文本中所有的aaa,替换为bbb

2.4 拷贝/删除/移动/重命名

  1. cp filename /home/tmp/  # 将filename拷贝到 /home/tmp/下
    rm /home/tmp/filename # 删除/home/tmp/下的filename文件
    rm -f /home/tmp/filename # 强制删除/home/tmp/下的filename文件
    mv /home/tmp/filename ./ # 移动/home/tmp/下的filename文件到本层目录
    mv filename1 filename2 #将filename1重命名为filename2

2.5 打包压缩

  1. gzip压缩
    gzip a.txt
  2. gzip解压
    gunzip a.txt.gz
    gzip -d a.txt.gz
  3. bzip2压缩
    bzip2 a
  4. bzip2解压
    bunzip2 a.bz2
    bzip2 -d a.bz2
  5. 打包:将指定文件或文件夹整理成包
    tar -cvf bak.tar ./a  # 将本目录下的a打包成bak.tar
    tar -rvf bak.tar /etc/password # 将/etc/password追加到bak.tar中
  6. 解包
    tar -xvf bak.tar
  7. 打包并压缩
    tar -zcvf a.tar.gz a/
  8. 解包并解压缩
    tar -zxvf a.tar.gz
    tar -zxvf a.tar.gz -C /usr # 解压到/usr/下
  9. 查看压缩包内容
    tar -ztvf a.tar.gz
  10. 打包并压缩成bz2
    tar -jcvf a.tar.bz2
  11. 解包并解压缩
    tar -jxvf a.tar.bz2

2.6 常用查找命令的使用

  1. 查找可执行的命令所在路径
    which ls
  2. 查找可执行的命令和帮助的位置
    whereis ls
  3. 从某个文件夹开始查找文件
    find / -name "file*"
    find / -name "file*" -ls
  4. 查找并删除
    find / -name "file*" -ok rm {} \;
    find / -name "file*" -exec rm {} \;
  5. 查找用户为lzyuse的文件
    find /usr -user lzyuse -ls
  6. 查找用户为lzyuse的文件夹
    find /home -user lzyuse -type d -ls
  7. 查找权限为777的文件
    find / -perm -777 -type d -ls
  8. 在指定目录不分大小写查找某个文件
    find ./a/ -iname a.txt
  9. 显示历史命令
    history  # 查看历史命令
    history -c # 清理历史命令记录

2.7 grep命令

  1. 最常用的全字匹配
    grep -wrn lzy ./a/
  2. 查找某个字符串,但是不在指定文件夹查找
    grep -E "http" ./ -R --exclude-dir=./a/
    grep -E "http" . -R --exclude-dir={.git,res,bin}
    grep -E "http" . -R --exclude=*.{java,js} # 排除扩展名为java和js的文件

2.7.1 基本使用

  1. 查询包含lzy的行
    grep lzy /etc/password
    grep lzy ./*.txt
  2. cut截取以:分割保留第七段
    root@Ubuntu:~# grep root /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    root@Ubuntu:~# grep root /etc/passwd | cut -d: -f7
    /bin/bash
    root@Ubuntu:~#
  3. 查询不包含lzy的行
    grep -v lzy /etc/passwd
  4. 正则表达包含lzy
    grep 'lzy' /etc/passwd
  5. 正则表达
    grep 'l.*y' /etc/passwd
  6. 正则表达以lzy开头
    grep '^lzy' /etc/passwd
  7. 正则表达以lzy结尾
    grep 'lzy$' /etc/passwd

2.7.2 正则表达

  1. .   # 任意一个字符
    a* # 任意多个a(零个或多个a)
    a? # 零个或一个a
    a+ # 一个或多个a
    .* # 任意多个任意字符
    \. # 转义.
    o\{2\} # o重复两次
  2. 查找不是以#开头的行
    grep -v '^#' a.txt | grep -v '^$'
  3. 以h或r开头的
    grep '^[hr]' /etc/passwd
  4. 不是以h或r开头的
    grep '^[^hr]' /etc/passwd
  5. 不是以h到r开头的
    grep '^[^h-r]' /etc/passwd

2.8 Linux 文件/文件夹

2.8.1 Linux文件权限的描述格式解读

  1. drwxr-xr-x(二进制表示 111 101 101 --> 755)

    d: 标识节点类型(d:文件夹 -:文件 l:链接)

    r: 可读 w: 可写 x: 可执行

    第一组rwx: 表示这个文件夹的拥有者对它的权限: 可读可写可执行

    第二组r-x: 表示这个文件夹的所属组用户对它的权限: 可读,不可写,可执行

    第三组r-x: 表示这个文件夹的其他用户(相对于上面两类用户)对它的权限: 可读,不可写,可执行

2.8.2 修改文件权限

  1.  chmod g-rw phd.dat  # 表示将phd.dat对所属组的rw权限取消
    chmod o-rw phd.dat # 表示将phd.dat对其他人的rw权限取消
    chmod u+x phd.dat # 表示将phd.dat对所属用户的权限增加x
    chmod a-x phd.dat # 表示将phd.dat对所用户取消x权限 # 也可以用数字的方式来修改权限
    chmod 664 phd.dat # 将权限修改成 rw-rw-r--
    # 如果要将一个文件夹的所有内容权限统一修改,则可以添加-R参数
    chmod -R 770 a/

2.8.3 修改文件所有权

  1. 只有root权限能执行
    chown angela aaa  # 改变所属用户
    chown :angela aaa # 改变所属组
    chown angela:angela aaa/ # 同时修改所属用户和所属组

2.8.4 统计文件或文件夹的大小

  1. du -sh a/  # 查看文件夹a的大小
    du -sh a.txt # 查看文件a.txt的大小
    df -h # 查看磁盘空间

3 END

    这些Linux shell命令只是一些简单常见的命令,并没有多么的nb,但是是很实用的一些命令。学习命令并不是一定要去背,要熟悉了解一些命令,最好的办法就是一行一行的执行,不断尝试,自然而然熟悉每行命令,每个参数。

    如果本文有什么写的不对的地方或有什么更好地建议和想法,欢迎在下方评论留言或私信我,大家一起进步学习!大佬勿喷~~

常用Linux Shell命令,了解一下!的更多相关文章

  1. 精选37条强大的常用linux shell命令组合

    任务                             命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f ...

  2. 37条常用Linux Shell命令组合

    序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程, ...

  3. 转 精选37条强大的常用linux shell命令组合

    1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 p ...

  4. 常用Linux shell命令汇总

    1.检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台:Ctrl + z 3 ...

  5. 常用Linux Shell命令组合

    序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f -size 0 -delete 2 查看进程,按 ...

  6. Linux下最常用的Shell命令的介绍

    Shell基础: 你可以通过打开Linux的terminal(终端)来执行Shell命令.Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux ...

  7. 常用的shell命令整理

    工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {}   获取当前所在目录的名称 2.ps -ef|grep -w   ...

  8. 73条日常Linux shell命令汇总,总有一条你需要!

    转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...

  9. Lua 常用的shell命令

    lua作为一种小巧的脚本语言,其函数等动作可以使用shell命令进行运行和调试,以下是几个常用的shell命令.基本格式是  lua [选项参数] [脚本参数] (1)%lua 程序名.lua     ...

随机推荐

  1. JavaFX桌面应用开发系列文章

    ~ JavaFX桌面应用开发系列文章汇总篇 ~ JavaFX桌面应用开发-HelloWorld JavaFX布局神器-SceneBuilder JavaFX让UI更美观-CSS样式 JavaFX桌面应 ...

  2. 使用MIPS完成汇编程序——选择排序实现

    题目: 从键盘输入10个无符号字数并从大到小进行排序,排序结果在屏幕上显示出来.要求能输入数字 和输出数字 且由大到小来排列 1.代码以及伪代码: 首先写出对应c++代码然后把c++代码翻译成汇编语言 ...

  3. JavaScript基础-01

    1. Javascript是一门动态的.弱类型的.解释型的脚本语言 动态:数据类型在运行时决定 弱类型:变量数据的类型不是确定的,可以随意的进行改变: 解释型:相对编译型来说,编译型计算机在执行之前需 ...

  4. 编译hotspot8

    编译hotspot8 ubuntu desktop 18 全新准备与编译过程再记录下: # 建议使用此gcc和g++版本,过高版本比如gcc7或引发编译报错 sudo apt-get install ...

  5. error PRJ0003 : 生成“cmd.exe”时出错 2010-01-19 22:26

    今天用vs2005编译时代码时竟然出现了error PRJ0003 : 生成“cmd.exe”时出错这样的错误,这不是刺激我吗,我们先看msdn的解释吧. 错误消息 生成“command line”时 ...

  6. Python钉钉报警及Zabbix集成钉钉报警

    钉钉报警设置 创建群机器人 11111 接口地址 发送短消息 发送普通消息 import requests import json url = 'https://oapi.dingtalk.com/r ...

  7. Ng-Matero V10 正式发布!

    Angular v10 在六月下旬就悄无声息的发布了,虽然 v9 的发布延期了两个月,但是 v10 并没有受影响,仍然如期而至. 相比 v9 的重量级发布,v10 并没有颠覆性的变化,主要还是 bug ...

  8. css两种常用的不定宽高的水平垂直居中方法,记住它,不再为样式发愁

    css 几种常用的简单容易记住的水平垂直居中方法 前言 正文 第一种方法 第二种方法 结束语 前言 我们在设计网页时,会大量的运用到水平垂直居中,如果知道元素的宽高,那水平垂直居中是很简单的,无非是用 ...

  9. Linux基础 Day2

    Linux-Day2 1.文件目录结构 文件和目录被组织成一颗倒置的树的结构 文件系统从根开始,"/" 文件名称严格区分大小写 隐藏文件以"."开头 路径的分隔 ...

  10. Ubutun重启网卡

    一.network利用root帐户# service networking restart 或者/etc/init.d/networking restart 二.ifdown/ifup# ifdown ...