如果你觉得内容对你有帮助的话,不如给个点赞+收藏,鼓励一下更新😂。
友情提示: 本文很多命令只举例子,不做详细介绍,具体请自行查询资料做笔记🐱👓
最后更新时间:2021/7/6 更新网络命令章节
文件
在Linux中一切皆文件
常见目录介绍
- / 根目录
- /root root用户的家目录
- /home(家目录) 用于存放用户的个人数据,比如用户lagou的个人数据会存放到/home/lagou下面。
- /etc(配置文件),Linux 用它来保管程序的配置。比如说mysql通常会在/etc/mysql下创建配置。再比如说/etc/passwd是系统的用户配置,存储了用户信息。
- /bin(二进制) 包含了许多所有用户都可以访问的可执行文件,如 ls, cp, cd 等。
- /sbin(系统二进制) 和/bin类似,通常是系统启动必需的指令,也可以包括管理员才会使用的指令。
- /usr/bin,/usr/sbin系统预装的其他命令
- /opt(Optional Software,可选软件) 通常会把第三方软件安装到这个目录。以后你安装软件的时候,可以考虑在这个目录下创建。
- /tmp(临时文件) 用于存放应用的临时文件,通常用的是tmpfs文件系统。因为tmpfs是一个内存文件系统,系统重启的时候清除/tmp文件,所以这个目录不能放应用和重要的数据。
- /var (Variable data file,,可变数据文件) 用于存储运行时的数据,比如日志通常会存放在/var/log目录下面。再比如应用的缓存文件、用户的登录行为等,都可以放到/var目录下,/var下的文件会长期保存。
绝对路径
目标文件的绝对路径(Absolute path),也叫作完全路径(full path),是从/开始,接下来每一层都是一级子目录,直到定位到目标文件为止。
文件种类
Linux目录下的七种文件:
普通文件、目录文件、可执行文件、管道文件、Socket文件、软链接文件、硬链接文件。
文件权限中的第一个字符代表的是文件类型
- 普通文件的第一个字符为“-”
- 目录文件的第一个字符为“d”
- 字符设备文件的第一个字符为“c”
- 块设备文件的第一个字符为“b”
- 符号链接文件的第一个字符为“s”
- 管道文件的第一个字符为“p”
- 命名管道 “f”
文件相关命令
查看
- pwd 查看工作目录。
- cd 切换工作目录,支持绝对路径和相对路径(. or …)
-
回退
- which 指令查找一个执行文件所在的路径。
- ls 显示文件信息
- 用空格隔开,可以同时显示多个目录
- cat 查看文件,适合小型文件。
- more,less 查看一个文件但是只读取用户看到的内容到内存,因此消耗资源较少,适合在服务器上看日志,less比more更方便,支持前后浏览。
- head、tail 可以用来看文件的头和尾。
- -f 文件内容更新后,显示信息同步更新
- grep、egrep 指令搜索文件内容。
- find 指令全局查找文件。
- wc 统计文件内容
- type 用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令
- du 查看文件或者目录大小
- -sh 支持通配符匹配
多条命令顺序执行,可以使用 ;
分开
操作
- rm 删除文件。
- touch 修改一个文件的时间戳,如果文件不存在会触发创建文件。
- vi 和 nano 可以用来编辑文件。
- mkdir 创建目录,rmdir创建空目录
- tar 打包/解包
- -c 是表示产生新的包;
- -f 指定包的文件名;
- -v 显示执行过程;
- -z 以zip压缩;案例:**
tar -zcvf log.tar.gz *.log
** - -x 解包
在选项
f
之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z
选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j
选项,则以.tar.bz2来作为tar包名。
man命令和指令的help参数的区别
man比较详细,会把全部的选项与使用方法等详细信息都展现出来。而help是选项帮助命令,顾名思义你可以把单独某个命令的某个选项列出来,方便快捷很多,省去了man当中查找的繁琐,但是help只支持shell的内部命令。内部命令即存储在shell内部可以直接调用的一些简单命令,比如说ls,pwd等
管道命令
管道(Pipeline)的作用是在命令和命令之间,传递数据。比如说一个命令的结果,就可以作为另一个命令的输入。我们了解了进程,所以这里说的命令就是进程。更准确地说,管道在进程间传递数据。
管道和重定向很像,但是管道是一个连接一个进行计算,重定向是将一个文件的内容定向到另一个文件,这二者经常会结合使用。
重定向符号
>
符号叫作覆盖重定向,>>
叫作追加重定向,>
每次都会把目标文件覆盖,>>
会在目标文件中追加。
管道符(匿名管道)
管道符是“|”,将前一个命令执行的结果传递给后一个命令
中间结果
管道一个接着一个,是一个计算逻辑。有时候我们想要把中间的结果保存下来,这就需要用到tee指令。tee指令从标准输入流中读取数据到标准输出流。
举个栗子:env | tee xxx | grep “匹配的字符”
网络命令
SSH
SSH(Secure Shell)是一个提供数据通信安全、远程登录、远程指令执行等功能的安全网络协议
# ssh [端口号] 用户名@远程服务器地址
sftp [-P port] username@remote_ip
sftp文件传输协议
SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于可靠数据流(data stream),提供文件存取和管理的网络传输协议,因为 SFTP 是基于 SSH 协议的,所以默认的身份认证方法与 SSH 协议保持一致。
sftp 用户名@远程服务器地址
SFTP 解释器中预置了常用的命令,但是没有自带的 Bash 来得丰富。支持常见的文件操作命令:cd、ls、mkdir、pwd等,使用 !
可以直接运行 Shell 中的指令。
以上的命令都是用来操作远程服务器的,如果想要操作本地目录呢?只需要在每个命令前添加 l
即可,例如显示本地操作目录下的文件:
sftp> lls
拉取文件
使用 get
命令可以从远程服务器拉取文件到本地: sftp> get remoteFile [newName]
- 使用
-r
参数可以拉取整个目录
上传文件
使用 put
命令可以从本地上传文件到服务器:sftp> put localFile
- 同样的,可以使用
-r
参数来上传整个目录,但是有一点要注意,如果服务器上不存在这个目录需要首先新建
scp命令
用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
复制文件,从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可
#scp 文件路径 用户名@远程服务器地址:远程服务器目录或文件名
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
复制目录:scp -r local_folder remote_username@remote_ip:remote_folder
net-tools工具集
比如常用的:netstat -ntlp | grep 端口,查看占用某端口的程序
-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同
ifconfig 配置和显示Linux系统网卡的网络参数
如何查看正在 TIME_WAIT 状态的连接数量?
netstat -an | grep TIME_WAIT | wc -l
iproute2工具集
iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,旨在替代老派的工具链net-tools,即大家比较熟悉的ifconfig,arp,route,netstat等命令。
网络管理工具ip命令
- ip addr 显示网卡ip信息
- ip route 显示系统路由
查询 socket 的有关统计信息
ss命令 用来显示处于活动状态的套接字信息,它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
比如:ss -ntlp 它可以显示和netstat类似的内容。常用参数和netstat类似
和net-tools对比
功能 | 老用法 | 新用法 |
---|---|---|
路由表 | netstat -r/route | ip route |
网络接口统计信息 | netstat -i | ip -s link |
组播 | netstat -g | ip maddr |
网络接口地址和链路 | ifconfig | ip addr /ip link |
ARP | arp | ip neigh |
隧道 | iptunnel | ip tunnel |
网络连接 | netstat -a | ss |
网络管理命令
service network status 查看当前活跃网卡
查看网关: route 加 -n 不解析主机名
端口登录: telnet 命令的格式为 telnet+空格+IP地址/主机名称 端口号
网络故障排除命令
测试网络畅通: ping,想知道本机到某个网站的网络延迟,就可以使用ping指令。
查询域名解析: nslookup + 域名**
网络配置文件
- ifcfg-eth0 网卡配置文件
- /etc/hosts 配置主机名
其他网络命令
查看主机名: hostname
修改主机名: hostnamectl set-hostname xxx
host: 查看dns解析后的ip地址;
wget: 下载命令;例如:
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
用户和权限管理指令
用户和组
为了方便分配每个用户的权限,Linux 还支持组 (Group)账户。组账户是多个账户的集合,组可以为成员们分配某一类权限。每个用户可以在多个组,这样就可以利用组给用户快速分配权限,同时Root 账户也叫作超级管理员。
-rw-------. 1 root root 1337 9月 3 15:59 anaconda-ks.cfg
类型 权限 所属用户 所属组
Linux 还对文件进行了权限抽象。Linux 中一个文件可以设置下面 3 种权限:
- 读权限(r = 4):控制读取文件。
- 写权限(w = 2):控制写入文件。
- 执行权限(x = 1):控制将文件执行,比如脚本、应用程序等。
然后每个文件又可以从 3 个维度去配置上述的 3 种权限:
- 用户维度。每个文件可以所属 1 个用户,用户维度配置的 rwx 在用户维度生效;
- 组维度。每个文件可以所属 1 个分组,组维度配置的 rwx 在组维度生效;
- 全部用户维度。设置对所有用户的权限。
因此 Linux 中文件的权限可以用 9 个字符,3 组rwx描述:第一组是用户权限,第二组是组权限,第三组是所有用户的权限。然后用-代表没有权限。比如rwxrwxrwx代表所有维度可以读写执行。rw–wxr-x代表用户维度不可以执行,组维度不可以读取,所有用户维度不可以写入。
文件被创建后的权限通常是: rw-rw-r–,也就是用户、组维度不可以执行,所有用户可读。
用户配置文件: /etc/passwd
目录权限: x(进入目录)、rx(显示目录中的文件名)、wx(修改目录中的文件名)
用户命令
创建用户: useradd 用户名
- -g 组名,创建用户的时候指定用户组
删除用户: userdel 用户名
- -r 删除用户家目录
修改密码: passwd 用户名
创建组: groupadd 组名
用户切换: su
用来以其他身份来执行命令: sudo,预设的身份为root
修改文件权限
可以用chmod修改文件权限,chmod( change file mode bits),设置权限也是rwx,只不过在 Linux 中是用三个连在一起的二进制位来表示。
u # 操作对象简称,用户user,文件或目录的所有者。
g # 操作对象简称,同组用户group,文件或目录所属群组
o # 操作对象简称,其它用户others
a # 操作对象简称,所有用户all,系统默认使用此项
# 设置foo可以执行
chmod +x ./foo
# 不允许foo执行
chmod -x ./foo
# 也可以同时设置多个权限
chmod +rwx ./foo
# 设置rwxrwxrwx (111111111 -> 777)
chmod 777 ./foo
# 为文件f01设置自己可以执行,组员可以写入,其他用户只能读的权限
chmod u=rwx,g=rw,o=r f01
因为rwx在 Linux 中用相邻的 3 个位来表示。比如说111代表rwx,101代表r-x。而rwx总共有三组,分别是用户权限、组权限和全部用户权限。也就是可以用111111111的9 个 1 代表rwxrwxrwx。又因为111的10 进制是 7,因此当需要一次性设置用户权限、组权限和所有用户权限的时候,我们经常用数字表示。
修改文件属主、属组
有时候我们需要修改文件所属用户和所属组,这个时候会使用chown
指令。
chown bar ./foo
修改foo文件所属的用户为bar
chown :group1 ./foo
修改foo文件所属的组为group1
chown bar:group1 ./foo
同时修改
扩展:如果一个目录是只读权限,那么这个目录下面的文件还可写吗?
答:可以写,因为linux中目录也是文件,目录文件中存放的只是目录下文件的清单,并不包括内容,但是想要创建新文件就会出现报错,因为创建新文件也需要改目录文件。
Vim
四种模式:正常模式、插入模式、命令模式、可视模式
进入可视模式的方式
- v 字符可视模式
- V 行可视模式
- ctrl+v 块可视模式
全局设置文件:/etc/vimrc
基本操作
插入:
i(当前位置),I(头),a(后一个位置),A(尾),o(下一行),O(上一行)
移动:
h(左移)j(上)k(下)l(右移)
复制/剪切/粘贴:
- yy 复制一行、dd 剪切一行、3yy 复制三行
- y$ 复制当前位置到结尾
- p 粘贴
撤销: u
行号: 显示行号 :set nu
和 关闭行号 :set nonu
保存/退出: :w
和 :w!
、:q
和 :q!
执行外部命令: :!
跳转
跳转指定行: 行号 + shift + g
跳到第一行: gg
最后一行 : shift + g
查找/替换
- / + 查找的内容,内容会被高亮
:noh
关闭高亮
- n 移动到下一个匹配的内容,shift + n 移动到上一个匹配的内容
- s 和 %s,前者只替换光标所在行,后者全文替换
- 案例:
:%s/x/X
,将全文中的x替换成X - 在s追加3,5,表示3-5行之间
- 案例:
软件安装
Centos、RedHast使用yum包管理器,安装包格式为rpm
Debian、Ubuntu使用apt包管理器,安装包格式为deb
yum命令常用选项
- install 安装软件包
- remove 卸载软件包
- list | grouplist 查看软件包
- update 升级软件包
- yum makecache 重建缓存
系统管理
- ps 查看进程
- ps -ef | hrep xxx 查看某些进程的PID
- top 查看系统CPU负载,进程等,我们也可以
sudo apt install htop
查看的更加清晰一点- -p 指定进程
- shift + p:根据CPU使用率排序
- shift + m:根据内存占用排序
- 当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行 command &
- 但此时如果这个进程有输出,还是会显示出来。所以可以考虑把标准输出重定向到某个文件去,如:command >output &
- jobs 显示所有作业
- history [n] 用于显示历史命令,n表示显示最近的多少条
- 关机:
init 0
、shutdown -h now
- 重启:
reboot
进程间通信
- kill -l 列出所有信号名称
- kill -2 和 ctrl + c等同
- kill -9 立即结束,强制结束
服务管理工具
- service
- centos6及其以前版本使用的是service
- systemctl start | stop | restart | reload | enable | disable 服务名
- systemctl 命令强化了 service,并兼容它
内存使用率查看
- free
- -h 适合人类阅读的形式
系统综合状态查看
- top
- sar 命令
- 查看CPU:
sar -u 1 10
- 查看内存:
sar -r 1 10
- 查看磁盘:
sar -b 1 10
- 查看进程:
sar -q 1 10
- 查看CPU:
平均负载
uptime
查看Linux系统负载信息
从上图中我们可以看到过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。所以,它不仅包括了正在使用 CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。
最后别忘了点赞哦!!!🐱👓
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15194.html