Linux第二章-Linux常用命令

一、Linux常用快捷键

快捷键 作用
Tab 补全文件名或者路径
Ctrl + L 清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。
Ctrl + C 终止当前进程
Ctrl + D 注销系统或结束终端
Ctrl + K 删除从光标到行末的所有字符
Ctrl + U 删除从光标到行首的所有字符
Ctrl + Insert 复制
Shift + Insert 粘贴

二、关机和重启

  • 如果想终止该操作,可以使用 Ctrl + C 强制终止命令即可
关机:
    shutdown -h now       立刻关机
    shutdown -h 10        10分钟后关机
    shutdown -h 22:22     计算机将在22:22这个时刻关机
    poweroff              立刻关机
    halt                  就是直接使用,效果等价于关机
    
重启:
    shutdown -r now       立刻重启
    shutdown -r 10        10分钟后重启
    reboot                立刻重启

把内存的数据同步到磁盘:
    sync                  把内存的数据同步到磁盘

当我们关机或者重启时,都应该先执行以下 sync 指令,把内存的数据写入磁盘,防止数据丢失。


三、目录切换 cd

命令:cd [相对路径或绝对路径]

    cd /        切换到根目录
    cd /usr     切换到根目录下的usr目录
    cd ../      切换到上一级目录 或者  cd ..
    cd          切换到当前用户的主目录也就是home目录
    cd ~        切换到当前用户的主目录也就是home目录(和上面 cd 效果一样)
    cd -        切换到上次访问的目录

四、目录查看 ls

命令:ls [-al]

    ls          查看当前目录下的所有目录和文件
    ls -a       查看当前目录下的所有目录和文件(包括隐藏的文件)
    ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
    ls /dir     查看指定目录下的所有目录和文件   如:ls /usr
    ll -h       以容易理解的格式列出文件大小 (例如 1K 234M 2G)

五、目录操作

5.1 创建目录——mkdir

命令:mkdir [-p] 目录
-p 父目录不存在情况下先生成父目录

    mkdir hello         在当前目录下创建一个名为hello的目录
    mkdir /usr/hello    在指定目录下创建一个名为hello的目录
    mkdir -p a/b/c.txt  递归创建多个目录


5.2 删除目录或文件——rm

命令:rm [-rf] 目录
-r 递归 -f 强制
两个一起用你可以删掉世界(很暴力很血腥,危险的命令)

删除文件夹:
    rmdir abc   删除名为abc的文件夹(仅能删除空文件夹)
    rm -rf abc  递归强制删除名为abc的文件夹及它下面的所有文件

删除全部 谨慎使用!!!:
    rm -rf *    将当前目录下的所有目录和文件全部删除
    rm -rf /*  【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都可以直接使用 rm -rf 目录/文件/压缩包


5.3 目录修改——mv 和 cp

  • 5.3.1 重命名目录 mv

//语法:
    mv 当前目录 新目录
//示例:
    mv aaa bbb    //将目录aaa改为bbb
    //注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作


  • 5.3.2 剪切目录 mv

//语法:
    mv 目录名称 目录的新位置
//示例:
    mv ./abc ./hello/hi     //将当前目录下的abc目录剪切到 当前目录下的hello目录中的hi目录下
    //注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作


  • 5.3.3 拷贝目录 cp

//语法:
    cp -r 目录名称 目录拷贝的目标位置   //-r代表递归
//示例:
    cp c/abc.java ./b   //将c目录下的abc.java文件 复制到b目录下
    //注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归


5.4 搜索目录——find

//语法:
    find 目录 参数 文件名称
//示例:
    find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件


5.5 > 指令 和 >> 指令

  • >:输出重定向
    • 会将原来的文件内容覆盖
  • >>:追加
    • 不会覆盖原来的文件内容,而是追加到文件的尾部
>:指令用法
    ll t6 > a.txt      将ll t6展示的内容,覆盖写入a.txt(如果a.txt文件不存在,会自动创建)
    cat /etc/profile > b.txt    将cat /etc/profile展示的内容,覆盖写入b.txt
    
>>:指令用法
    ll t6 >> a.txt   将ll t6展示的内容,追加写入a.txt(如果a.txt文件不存在,会自动创建)
    echo "hello world!" > a.txt    将"hello world!"追加写入 a.txt


5.6 输出内容到控制台——echo

命令:echo [选项] [输出内容]

示例:使用 echo 指令输出环境变量,输出当前的环境路径。
    echo $PATH    输出 $PATH 环境变量路径


5.7 显示文件的开头部分内容——head

命令:head 文件

    -n 显示的行数
示例:
    head /etc/profile    显示profile文件的前10行内容(默认显示前10行)
    head -n 20 /etc/profile    显示profile文件的前20行内容


5.8 输出文件中尾部的内容——tail

tail:指定行数或者动态查看

    -n :后面接数字,代表显示几行的意思
    -f :表示持续侦测后面所接的档名,追踪日志时会经常用到。【Ctrl + C】可强制终止命令。
示例:
    tail abc.java        默认显示abc.java这个文件的后10行数据
    tail -n 20 abc.java  显示该文件的后20行数据
常用:
    tail 30 -f abc.java  显示该文件后30行数据,并追踪查看后续内容


5.9 查看已经执行过历史命令——history

示例:
    history      查看所有的历史指令
    history 10   查看历史指令的后10个
    
    !178         运行历史指令 编号为178 的指令




六、文件操作以及 文件权限 的修改

6.1 新建文件——touch

命令:touch 文件名

    touch  aa.txt  //在当前目录创建一个名为aa.txt的文件


6.2 删除文件——rm

命令:rm -rf 文件名

    rm -rf aa.txt  //删除当前文件夹下的aa.txt文件


6.3 修改文件——(vi编译器)

vi编辑器

vi是linux中最经典的文本编辑器,vi一共有3种工作模式,分别是正常模式,编辑模式(插入模式),命令行模式:
-命令:vi 文件名vim 文件名 都可进入vi编译器进行文件的编译

---首先输入 vi 文件名 进入的是正常模式
---正常模式-->编辑模式:按 i o a任意一个键
---正常模式-->命令行模式:按 :
---编辑模式-->命令行模式:按 Esc

  • 1.正常模式
    • 在正常模式下,我们可以使用快捷键以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、贴上】来处理你的文件数据。
  • 2.插入模式/编辑模式
    • 在模式下,程序员可以输入内容。按下i,I,o,O,a,A等任何一个字母之后才会进入编辑模式,一般来说按i即可
  • 3.命令行模式
    :q!:强制退出,不保存
    :wq!:保存并强制退出

vi编译器快捷键的使用
1.拷贝当前行 yy,拷贝当前行向下的5行 5yy,并粘贴 p;
2.删除当前行 dd,删除当前行向下的5行 5dd;
3.在文件中查找某个单词(命令行模式下)/关键字 ,回车进行查找,输入 n 查找下一个
4.设置文件的行号,取消文件的行号(命令行模式下) :set nu 和 :set nonu
5.编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg],注意这些都是在正常模 式下执行的。
6.在一个文件中输入 "hello" ,然后又撤销这个动作,再正常模式下输入 u


6.4 文件的查看——cat、more、less

文件的查看命令:cat more less tail

cat:由第一行开始显示文件内容

    -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
    -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
示例:
    cat abc.java  显示当前目录下abc.java文件的内容


more:百分比显示

    [回车]:向下一行
    [空格]:向下一页
     q:退出查看
示例:
    more abc.java  显示当前目录下abc.java文件的内容


less:翻页查看

    [回车]:向下一行
    [空格]:向下一页
    [上下]:上一行或下一行
    [左右]:左右移动文档
     q:退出查看
示例:
    less abc.java  显示当前目录下abc.java文件的内容


tail:指定行数或者动态查看

    -n :后面接数字,代表显示几行的意思
    -f :表示持续侦测后面所接的档名,追踪日志时会经常用到。【Ctrl + C】可强制终止命令。
示例:
    tail abc.java        默认显示abc.java这个文件的后10行数据
    tail -n 20 abc.java  显示该文件的后20行数据
    tail 30 -f abc.java  显示该文件后30行数据,并追踪查看后续内容


6.5 文件 及 文件夹 的权限修改——chmod

6.5.1 Linux权限介绍

  • Linux权限格式:<类型><用户><组><其他用户>
    Linux权限
    • 所属用户(user) 代表的字母:u
    • 所属组(group)代表的字母: g
    • 其他用户(other)代表的字母:o
    • 所有用户(all) 代表的字母:a
    -             没有权限
    r   read      读取权限
    w   write     写入权限
    x   execute   执行权限
  • 第一部分:第一位,文件类型(d 目录,- 普通文件,| 超链接文件)
  • 第二部分:所属用户权限,文件属于哪个用户。所代表的英文:u
  • 第三部分:所属组权限, 所属用户所在组别。 所代表的英文:g
  • 第四部分:其他用户权限,文件不属于该用户,不属于该用户所在组。所代表的英文:o


6.5.2 对 单个文件 或 单个文件夹 的权限更改——chmod

  • 方式一:
    命令:chmod 权限设置 需要更改权限的文件名
示例:(更改 所属用户 的权限)
    chmod u=rwx aaa.java    更改aaa.java 所属用户  的权限为所有权限
    
示例:(更改 所属组 的权限)
    chmod g=rx aaa.java    更改aaa.java 所属组  的权限为rx
    
示例:(更改 所有用户 的权限)
    chmod a=r aaa.java    更改aaa.java 所有用户  的权限为a


  • 方式二:
    通过数字变更权限:
    r=4 w=2 x=1 rwx=4+2+1=7
示例:
    chmod 744 abc.java      更改 abc.java 文件的权限为 -rwxr--r--


6.5.3 对 多个文件 或 多个文件夹 的权限更改——chmod

命令:chmod -R 权限设置 需要更改权限的文件夹名

示例:
    chmod -R u=r abc    将abc目录及abc目录中的所有文件及文件夹的 所属用户权限 改为 r


七、grep 指令 和 管道符号 |

grep:查找字符串

    -i  忽略大小写查找数据
格式:
    grep 需要搜索的字符串 搜索的文件
示例:
    grep class demo.java  从demo.java文件中搜索class字符串(返回该字符串所在的行)

grep命令通常要和管道命令进行连用:

要求:
    查找当前目录下带有字母 ins 的所在行
示例:
    ll | grep ins           将ll结果中带有 ins 字符的所在行进行返回
    ps -ef | grep -i vim    忽略大小写,将系统所有进程中有关vim的进程查询出来


八、文件的解、压缩命令

Linux压缩包的两种后缀格式:
-xxx.tar 打包,大小不会进行压缩
-xxx.tar.gz 打包并压缩文件大小

命令:tar

    -c   建立一个压缩文件的参数指令(create) --压缩
    -x   解开一个压缩文件的参数指令(extract)--解压
    -z   用gzip压缩
    -v   压缩的过程中显示文件
    -f   使用档名,在 f 之后要立即接档名
    常用的 压缩 参数组合:zcvf  (顺序不可变)
    常用的 解压 参数组合:zxvf  (顺序不可变)

压缩:
    tar -zcvf 压缩包的名字.tar.gz 需要压缩的内容
示例:
    tar -zcvf hello.tar.gz *           //将当前目录下所有内容进行打包压缩,最终文件名为:hello.tar.gz

--------------------------------------------------------------------------

解压:(解压到当前文件夹)
    tar -zxvf 需要解压的压缩包名称
示例:
    tar -zxvf hello.tar.gz             //将当前目录下的hello.tar.gz文件,解压到当前目录。
(解压到指定文件夹)【常用】:(-C 大写)
    tar -zxvf 需要解压的压缩包名称 -C 指定解压路径
示例:
    tar -zxvf home/hello.tar.gz -C /usr/local/java    //将home文件夹下的hello.tar.gz解压到指定文件夹


九、Linux磁盘情况查询

9.1 查询系统整体磁盘使用情况——df -lh

    df -lh    查询系统整体磁盘使用情况

9.2 查询指定目录的磁盘占用情况——du -h

命令:du -h /目录

    -s 指定目录占用大小汇总
    -h 带计量单位
    -a 含文件
    --max-depth=1 子目录深度
    -c 列出明细的同时,增加汇总值
示例:
    du -ach --max-depth=1 /opt    查询 /opt 目录的磁盘占用情况,深度为 1

9.3 磁盘情况-工作实用指令

    ll /home | grep "^-" | wc -l    统计/home 文件夹下文件的个数
思路:
    先列出home文件所有内容,过滤以"-"开头的普通文件,统计个数
---------------------------------------------------------------
    ll /home | grep "^d" | wc -l    统计/home 文件夹下l目录的个数
思路:
    先列出home文件所有内容,过滤以"d"开头的普通文件,统计个数
---------------------------------------------------------------
    ll -R /home | grep "^-" | wc -l    统计/home 文件夹下文件的个数,包括子文件夹里的
思路:
    先列出home文件包括子文件夹中所有内容,过滤以"-"开头的普通文件,统计个数
---------------------------------------------------------------
以树状显示目录结构:tree
如果提示tree 指令没有找到,则需要执行 yun install tree 进行安装,安装成功后
    tree /usr/local    以树状显示/usr/local中的目录结构


十、Linux网络配置

10.1 显示网络配置(查询ip)——ifconfig

命令:ifconfig

    ifconfig   查看ip


10.2 监控网络状态——netstat(查看端口号)

命令:netstat [-anp]

    -t    TCP协议
    -u    UDP协议
    -l    监听
    -r    路由
    -n    显示IP地址和端口号
示例:(常用)
    netstat -tlun     查看本机监听的端口
    netstat -anp      查看本机所有的网络连接
    netstat -lnpt     查看监听的端口


10.3 测试与目标主机的连通性——ping

命令:ping ip地址

    -c   设定ping的次数,如果没有设定默认会一直ping下去直到按 Ctrl + C 结束
    -f   洪水ping,也就是以最快的速度去ping,可以用来测试丢包率
    -i   设定ping的时间间隔,如 ping -i 0.5 www.baidu.com 表示每隔0.5秒ping一次,如果没有设置默认是一秒一次
    -s   设置发送的数据包的大小,默认发送56字节,最大只能设置为65507字节

示例:
    ping www.baidu.com        对目标主机域名进行连通性测试
    ping 14.215.177.38        对目标主机IP进行连通性测试
    ping -c 5 www.baidu.com   指定ping的次数,如果不指定会一直ping下去
    ping -f www.baidu.com     洪水ping,也就是以最快的速度去ping,可以用来测试丢包率




十一、进程管理

11.1 查看系统进程——ps

命令:ps [-ef]

    -e   显示所有程序,此参数与 a 的效果相同
    -f   显示UID、PPID、C与STIME栏位
示例:
    ps -ef   查看系统进程
    ps -ef | grep -i vim    忽略大小写,将系统所有进程中有关vim的进程查询出来
进程图解


11.2 杀死进程——kill

命令:kill -9 PID号

    -9    表示强迫进程立即停止
示例:
    kill -9 7834   将进程号为7834的进程,强制杀死


11.3 服务(Service)管理

命令:service 服务名 [start | stop | restart | reload | status]
在 CentOS7.0 后 不再使用 service ,而是下面这个命令
service [start | stop | restart | reload | status] 服务名

Centos7以后示例:
    systemctl status firewalld    查看防火墙状态
    systemctl start firewalld     启动防火墙
    systemctl stop firewalld      停止防火墙


11.4 动态监控进程——top

命令:top [选项]

    -d    指定top命令每隔几秒更新,默认是3秒刷新一次
    -i    使top不显示任何闲置或者僵死进程
    -P    通过指定监控进程ID来仅仅监控某个进程的状态

示例:
    top        动态查看执行的进程
    top -d 10  动态查看执行的进程,每10秒刷新一次

进入top指令后:
    u:然后输入"u"回车,再输入用户名,即可只监控该用户的所有进程
    k:然后输入“k”回车,再输入要结束的进程 ID 号
    
交互操作说明:
    P    以CPU使用率排序,默认就是此项
    M    以内存的使用率排序
    N    以PID排序
    q    退出top




十二、RPM 和 YUM

12.1 rpm 包的简单查询指令

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

    -a    查询所有套件
    -q    使用询问模式,当遇到任何问题时,rpm 指令会先询问用户
示例:
查询软件包:
    rpm -qa    查询所安装的所有 rpm 软件包
    rpm -qa | more    分页显示所有
    rpm -qa | grep jdk    查询 jdk 的软件包
    
查询软件包信息:
    rpm -qi file    查询安装的file的软件包信息
    
查询软件包中的文件:
    rpm -ql file    查询 rpm 包安装到哪里去了
    
查询某个文件属于哪个 rmp 包:
    rpm -qf /etc/passwd    查询passwd文件属于哪个 rpm 包


12.2 rpm 包的卸载——rpm -e

命令:rpm -e rpm包的名称

    --nodeps    强制删除
示例:
    rpm -e jdk    删除安装的 jdk 的 rpm 包(删除后电脑中就没有jdk了)
    rpm -e --nodeps jdk    强制删除(尽量不使用强制删除)


12.3 rpm 包的安装

命令:rpm -ivh rpm包全路径名称

    i    安装(install)
    v    提示(verbose)
    h    进度条(hash)




12.4 yum 基本介绍

全称:Yellow dog Updater ModifiedYum 是一个 Shell 前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。


12.5 yum 基本指令【查询与安装】

查询 yum 服务器是否有需要安装的软件:
    yun list | grep -i jdk    查询 yum 服务器所有包含jdk的(不区分大小写)
    
安装:
    yum install jdk    下载安装(默认安装最新版本)





【温馨提示】:

想掌握这些命令,那就听我一句劝![拿起键盘就是干]

[图片上传失败...(image-f71252-1630371708953)]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容