一、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权限格式:<类型><用户><组><其他用户>

    • 所属用户(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

	-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 基本介绍

Yum 是一个 Shell 前端软件包管理器。

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

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

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

【温馨提示】:

想掌握这些命令,那就听我一句劝

Linux第二章-Linux常用命令的更多相关文章

  1. 第二章 FFmpeg常用命令

    2.1 FFmpeg常见的命令大概分为6个部分 ffmpeg信息查询部分 公共操作参数部分 文件主要操作参数部分 视频操作参数部分 字幕操作参数部分 2.1.1 FFmpeg的封装转换 FFmpeg ...

  2. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  3. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  4. Linux 文件夹相关常用命令

    Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf  -r  就是向下递归,不管有多少级目录,一并删 ...

  5. Linux文件管理和编辑常用命令

    Linux文件管理和编辑常用命令 mkdir 命令 功能说明 mkdir 命令用于创建一个目录,mkdir是make directory的缩写 格式: mkdir [选项] 目录名 mkdir 命令的 ...

  6. Linux系统管理和维护常用命令

    Linux系统管理和维护常用命令 ls 命令 功能说明 ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录. 语法结构: ls [选项] [路径或文件] ls 选项及说明 -a 显示 ...

  7. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

  8. [转帖]「日常小记」linux中强大且常用命令:find、grep

    「日常小记」linux中强大且常用命令:find.grep https://zhuanlan.zhihu.com/p/74379265 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍 ...

  9. 第二章 Qt常用工具的介绍

    第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...

随机推荐

  1. nitacm20301 poor math

    题目:给你一个n(1<=n<=1,000,000,000,000 ),找到满足1/n=1/a+1/b(0<a<=b)的数量. 题目链接:https://www.nitacm.c ...

  2. A.Two Rival Students

    题目:两个竞争的学生 链接:(两个竞争的对手)[https://codeforces.com/contest/1257/problem/A] 题意:有n个学生排成一行.其中有两个竞争的学生.第一个学生 ...

  3. 《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐

    大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近在写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用dot ...

  4. HTTP请求流程你了解了么?

    我又回来了,先来波推广,最硬的资源来自公众号:前端美食汇,欢迎大家关注公众号获取最新的技术.提示,文末有福利,最硬的文章会首先发布在公众号上喔 预备知识 前文没有描述到传输和协议直接的层级对应关系,大 ...

  5. Bootstrap响应式栅格系统设计

    为了方便起见,我们通过1200px宽的屏幕来讲解bootstrap中container.row.col的css属性值为何这样设置的原理 在1200px屏幕中为何container的宽度设置为1170p ...

  6. 聊聊技术选型 - Angular2 vs Vue2

    作者介绍:李旸,美团点评前端工程师,3 年 Web 前端开发经验,现在是美团点评点餐团队的一员. "Come, and take choice of all my library, And ...

  7. 基于 raft 协议的 RocketMQ DLedger 多副本日志复制设计原理

    目录 1.RocketMQ DLedger 多副本日志复制流程图 1.1 RocketMQ DLedger 日志转发(append) 请求流程图 1.2 RocketMQ DLedger 日志仲裁流程 ...

  8. nginx代理grafana

    希望通过Nginx为服务器上的grafana进行代理,实现通过在当前域名后加/grafana在公网进行访问,开始按照百度的方法弄了几个小时都不行,后面仔细看了官方的文档才弄好,Mark一下. Ngin ...

  9. AJAX中的dataType

    参考ajax的api文档 dataType的类型:String ajax中的dataType的属性: text:返回纯文本字符串 json:返回json数据 jsonp:jsonp格式(我没用过) h ...

  10. jvm面试题 新生代和 老年代的区别

    新生代和老年代的区别(阿里面试官的题目): 所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区.加上老年代就这三个区.数据会首先分配到Eden区 当中(当然 ...