最常用linux命令——血泪总结

一 Linux简介

命令简介

命令行模式下用户可以直接输入命令控制计算机的运行,这些程序也被称为shell,由bash运行。命令格式如下
command [-options] parameter1 parameter2 …
command是命令的名字
[ ] 中表示可选的参数,选项前带 – ,例如 ls -a。如果用选项全名,带–
parameter这些是参数,例如 cd home
命令、选项、参数之间空格隔开,几个空格Linux都会当成一个
回车键会立即执行命令
命令太长使用 转义回车键

基础命令

基础命令提供一些所有计算机都具备的基础功能

帮助文档

系统与主机名

date 查看系统日期

日历与计算器

开机关机

历史命令

clear 清理cli界面

统计指令执行时间

常用快捷键

  • tab 命令后双击按tab,可补全命令。比如fi 之后双击tab,提示所有以fi开头的命令
  • tab 单击,可补齐文件名
  • ctrl+c 终止当前程序
  • ctrl+d 退出cli(命令行模式),意味无法输命令了
  • q 终端出现end无法退出时按q

二 linux常用命令

目录切换

文件删除与建立

注意,linux下文件并没有windows下必须的文件后缀名。

查看文件

查看日志

工作中,我们经常要查看环境机器上的各种日志文件,以下为例

文件压缩

linux中有各种压缩文件的命令,常见的有gzip/bzip2以及最新的xz,不过这些指令仅能针对一个文件压缩与解压缩。为了支持windows,linux也有zip压缩。打包软件 tar 可以将多个文件打成一个文件,不过它只打包,不压缩。实际工作中,我们把打包和压缩结合起来使用。

tar 打包

tar仅打包后的文件称为tarfile,如果还有进行压缩的支持则称为tarball。

例子

vim基本操作

磁盘管理

df -h 显示系统的整体磁盘使用量(在任何目录看一样),加-h以M或G
du 显示当前目录下每个子文件或子目录的磁盘使用情况。递归显示每个
du -ah 以M显示所有的子文件或子目录磁盘情况(根目录不建议用,输出太多)
du -h –max-depth=1 只显示当前目录下第1层的文件和目录
du -sh user 只显示user的大小
fdisk -l 磁盘分区信息

三 linux目录结构

从左至右用 0-9 这些数字来表示。
第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 – 字符表示,则没有读权限;第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 – 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 – 字符表示,则没有执行权限。
可以用数字表示rwx这三种权限对应的分数,r w x分别是4,2,1。给定一个分数时完全可以确定一组权限。例如有-rwxrwx—,对应权限
owner = rwx=4+2+1=7
grout = rwx=4+2+1=7
others = — = 0+0+0=0
则改文件的权限可以表示为 770。同理给定数字 435,文件的权限只可能为 r—wxr-x。因此可以用三个数字 xyz 指定文件的读写属性
chmod [-R] xyz 目录名
chmod u=rwx,g=rx,o=r filename 也可以这样指定文件的属性, u, g, o 来代表三种身份的权限,此外a代表所有人

chgrp [-R] 属组名 文件名 更改文件属组,-R会更改目录下所有文件
chown [–R] 属主名 文件名 更改文件属主

文件系统

文件系统简介

磁盘的物理组成主要有圆形的磁盘盘(存储数据)、机械手臂(上面有磁盘读取头)、主轴马达(可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据)。磁盘可以进行分区,Linux磁盘分区主要有两种格式,一种是限制较多的MBR分区表,一种是较新且限制较少的GPT分区表。

文件的系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。我们知道磁盘分区完毕后需要进行格式化,格式化的过程就是在给磁盘分区指定一个文件系统,之后操作系统才能使用这个文件系统。

Linux最传统的文件系统是ext2。centos7预设的文件系统从ext4变成了xfs。

磁盘分区和文件系统有什么关系/p>

我对磁盘分区之后还要建文件系统赶到困惑,不能直接使用吗

文件系统的简单操作

df

du

hardlink和softlink

hardlink

linux下的链接文档有两种,一种通过文件系统的inode产生新的文件名,而不产生新文件;一种是类似windows快捷方式功能的文件。前者称为hardlink,后者称为softlink。

新建的hardlink的inode与原文件是一样的,只是文件名不同。如果你删除文件名1,其实inode和block仍是存在的,所以你通过文件名2仍可以访问文件的内容。通过文件名1修改文件,会发现文件名2看到的内容也更新了。

我作为一个初学者,从文件容灾备份的角度看,hardlink显然比softlink安全。但是鸟哥说因为harflink无法跨文件系统等限制,实际中softlink用的比较多。

磁盘分区

lsblk 磁盘分区树

dumpe2fs 查看一个磁盘分区的分区信息

gdisk磁盘分区命令

一个磁盘分区并格式化的例子

1.准备工作

2.gdisk/fdisk分区

mbr分区表用fdisk分区,gpt分区表用gdisk分区。注意gdisk针对整个磁盘使用,如果 gdisk /dev/vda1 会 错。下面以gdisk对磁盘进行分区,fdisk与gdisk非常类似。

export -f name 导出name函数供后续的子shell使用。一个shell脚本的函数想在其他shell中使用,是否需要加export觉得需要,待验证

七 linux 络命令

注意下面这些命令是centOs的,我不确定其它linux发行版是否支持。
curl
curl 用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的命令行参数多达几十种,如果熟练的话,可以做到postman请求后台的功能。
curl https://google.com 请求谷歌
curl -b ‘foo=bar’ https://google.com -b参数用来向服务器发送 Cookie

防火墙
systemctl status firewalld 查看firewall的详细状态
systemctl start firewalld 这也可以开启防火墙
firewall-cmd –state 查看firewall的运行状态
service firewalld start 开启防火墙
service firewalld stop 关闭防火墙
service firewalld restart 重启防火墙

防火墙使用
firewall-cmd –list-all 查看防火墙规则
firewall-cmd –query-port=8080/tcp 查询端口是否开放
firewall-cmd –permanent –add-port=8080/tcp 永久开放8080端口
firewall-cmd –permanent –remove-port=8080/tcp 开放8080端口
firewall-cmd –reload 修改配置后要更新防火墙规则,更新后,设置的端口就能开放了
参数解释
1、firwall-cmd:是linux提供的操作firewall的一个工具;
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;

检查 络
ping
在linux系统中,当能ping通一个主机时,此时ping命令会一直执行,要想终止,可采用ctrl+c或ctrl+z方式退出。也可以设置选项方式,使得ping命令执行若干次包就终止。ping 192.168.34.44 -c 4,此时ping命令将执行4次。

测试端口的连通性
方式1 telnet
yum install telnet –y 安装telnet
telnet 175.24.68.139 3306 测试服务器端口
方式2 ssh
ssh -v -p port username@ip ssh命令来测试端口的连通性
ssh -v -p 8080 root@175.24.68.139

八 搜索查询命令

find直接在硬盘上查找文件,速度较慢,不过查的全
find / -iname *mysql 搜索根目录下以mysql结尾的目录
find / -iname ysq 模糊查询名字包含ysq的目录或文件

whereis
whereis -l whereis只会在特定目录下查询,该命令列出查询目录
whereis filename
locate [-ir] filename locate根据系统已建立的数据库查找文件,该数据库默认一天执行一次,所以新建的文件不能用locate查找
-i 忽略大小写
-r 文件名可用正则表达式

文件内查找
grep (global search regular expression)
grep 命令用正则表达式查找文件里符合条件的字符串。
grep ma dan.txt 查看dan.txt中包含ma的行,返回行的内容
grep -v “ma” dan.txt 查看不包括ma的行。用引 比较保险
grep –n ma dan.txt 显示行
如果不是搜索文件,也可以将其它命令的输出结果传递给 grep 作为其搜索的输入
ps -grep dandan 搜索dandan启动的进程
递归搜索
grep -r ma /home -r会搜索指定目录中的所有文件,查找ma
grep -l ma *.txt 查找当前目录包含ma的文件,仅返回文件名

正则表达式

目前,我理解的linux正则表达式主要就是利用 grep/sed/awk 这些命令处理字符串数据,处理过程中可以用到类似各种编程语言都有的(比如java)正则匹配。

grep/sed/awk 这几个命令一般都可以用在 | 管道符之后。

特殊字符

grep

grep命令主要用于从文件中查找到指令的字符串,它会把目标字符串所在的那行数据全部显示出来。

如果只是这样用grep在文件中查找一个字符串,那根本和正则表达式没有半毛钱关系。实际上,上面的 ‘目标字符串’ 可以使用正则表达式。下面让你见识一下正则匹配的威力

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月23日
下一篇 2021年10月23日

相关推荐