【Linux笔记】Linux命令与使用

博文将不断学习补充

学习参考博文:

Linux命令大全:掌握常用命令,轻松使用Linux操作系统-优快云博客

文件或目录操作指令

 pwd

显示当前工作目录


pwd

cd

 切换目录


#        默认切换至用户主目录

cd

#        用户主目录

cd ~

#        根目录

cd /

#        上一级目录

cd ..

#        上二级目录

cd ../..

#        切换至上一次目录位置

cd -

ls

文件和目录列表


#        默认显示当前目录下的文件和目录列表。

ls

#        显示当前目录下所有文件和目录,包括隐藏文件

ls -a

#        递归列出目录下文件,连同子目录文件一起列出

ls -R

#        反转列出文件的顺序

ls -r

#        列出文件或者目录的详细信息

ls -l

格式:

文件类型与权限| 硬链接数| 文件所有者| 文件所属组| 文件大小| 最后修改时间| 文件名

#        按行列出每个文件或者目录

ls -1

#        按照文件修改时间顺序,逆序排列

ls -t

#        只列出目录本身信息,不列出其中内容

ls -d

#        查看文件的inode编号

ls -i filename

当filename为目录名时,默认列出此目录下的目录和文件的inode编号

注:文件或者目录的inode编号,是一个用于标识的唯一数字,由内核分配给文件中每一个对象

#        列出当前目录下的文件和目录,同时以特定方式格式化输出

ls -F

在每个条目后面添加特定的字符,以指示该条目的类型

/表示这是一个目录
@表示这是一个符号链接link
|表示这是一个管道
=表示这是一个套接字
*

表示这是一个可执行文件

#        过滤输出的列表

?表示一个字符
*

表示0或多个字符

[]匹配字母或者字母范围
!a不匹配字母a

1、列出当前目录下的文件或目录

ls -l word? 

或者

ls -l word*

2、列出指定目录下的文件或目录

ls word? 

或者

ls word*

file

查看文件类型


file filename1 [filename2…]

如下指令常用于处理文件或目录

touch

创建空文件


touch filename

mkdir

创建空目录


mkdir dirname

cp

复制文件


cp source destination

1、备份整个文件夹(归档模式);递归复制目录与内容,保留源文件所有属性

cp -a source destination

或者

cp -R source destination

当前目录存在destination目录时,source 目录备份到destination目录下;

当前目录不存在destination目录时,先创建destination目录,再将source目录下的文件和目录复制到destination目录下。

2、交互式复制;覆盖目标文件前,进行提示

cp [-i] source destination

若destination文件已经存在,会提示是否覆盖原文件内容;

若不存在destination文件,则创建该文件  

3、强制复制;覆盖目标文件前,不提示

cp -f source destination

4、目标文件保留原文件的属性(包括所有者、所属组、权限和时间戳等)

cp -p source destination

5、在当前目录下备份一份文件

cp source .

使用单点符(.),表示当前工作目录

mv

移动或重命名文件

文件的inode编号与时间戳不变


1、移动文件或目录到另一目录下

mv source1 [source2…] destination

mv [-i] source1 [source2…] destination

默认存在相同名称文件时,mv上诉指令在覆盖前会进行提示

2、强制移动

mv -f source destination

3、移动并重命名文件或目录;仅能操作单个文件或目录

mv oldname newname

rm

删除文件或目录


1、删除文件;默认进行确认提示

rm [-i] filename1 [filename2…]

2、强制删除;不进行提示

rm -f filename1 [filename2…]

3、递归删除子目录文件与当前目录

rm -r dirname1 [dirname2…]

4、禁忌指令

rm -rf /*

rmdir

删除空目录

若目录存在文件无法删除


rmdir dirname

 zip

zip是使用最多的文档压缩格式

方便跨平台使用,但是压缩率不是很高


zip指令未安装

安装zip

yum install zip

安装unzip

yum install unzip

1、压缩

zip -r archive_name.zip filename

# 将几个文件和目录同时压缩成一个zip格式的压缩包

2、解压

unzip archive_name.zip

输入输出重定向

wc

统计文本行数、单词数、字符数

>>

<

<<

如下指令常用于查看文件内容

cat

查看整个文件内容


cat filename

1、给所有行加上行号

cat -n filename

2、只给有文本的行加上行号

cat -b filename

3、不让制表符出现:使用^I字符替换文本中的制表符

more

按页显示文本内容


more filename

此命令会根据当前终端页面大小,会动态调整输出的文本内容

空格键按页输出后续内容
回车键按行输出后续内容
Q键退出输出
Ctrl + Z键中断输出

Q键

Ctrl + Z键

less

在more命令基础上增加更多选项

常用如:增加支持键盘上下键翻页功能


less filename

tail

查看文件尾部内容,默认显示末尾10行;

-f 参数允许用户在其他进程使用文件时查看文件内容;

tail命令会保持活跃状态,并不断显示添加到文件中的内容(适用于实时监测log)


tail filename

1、自行设置显示尾部行数

tail -n number filename

head

查看文件头部内容,默认显示头部10行;

除无-f 参数外,其他与tail命令类似


head filename

grep

在指定文件中查找匹配的文本


grep [options] pattern [file]


系统指令

如下指令常用于监控系统

ps

探查进程


Linux系统中的GNU ps命令支持3中不同类型的命令行参数:

Unix风格——前面加单破折线;

BSD风格——前面不加破折线;

GNU风格——前面加双破折线

故使用前,可使用 ps --help 查看当前系统参数风格。

1、ps --help用法

Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
ps --help simple

Usage:
 ps [options]

Basic options:
 -A, -e               all processes
 -a                   all with tty, except session leaders
  a                   all with tty, including other users
 -d                   all except session leaders
 -N, --deselect       negate selection
  r                   only running processes
  T                   all processes on this terminal
  x                   processes without controlling ttys

TTY 字段代表“Terminal Type”,即终端类型。它表示进程关联的终端或控制台。

2、显示当前终端会话中属于当前用户的进程列表

ps

3、显示系统所有进程的信息

ps -e 或者 ps -A

4、 显示终端上的所有进程,包括其他用户的进程

ps -a

5、显示没有终端控制的进程

ps -x

ps --help output

Usage:
 ps [options]

Output formats:
 -F                   extra full
 -f                   full-format, including command lines
  f, --forest         ascii art process tree
 -H                   show process hierarchy
 -j                   jobs format
  j                   BSD job control format
 -l                   long format
  l                   BSD long format
 -M, Z                add security data (for SELinux)
 -O <format>          preloaded with default columns
  O <format>          as -O, with BSD personality
 -o, o, --format <format>
                      user-defined format
  s                   signal format
  u                   user-oriented format
  v                   virtual memory format
  X                   register format
 -y                   do not show flags, show rss vs. addr (used with -l)
     --context        display security context (for SELinux)
     --headers        repeat header lines, one per page
     --no-headers     do not print header at all
     --cols, --columns, --width <num>
                      set screen width
     --rows, --lines <num>
                      set screen height

6、显示长格式的进程信息,例如进程命令行、进程状态(S)、进程的会话ID(SID)等

ps -l

7、使用全格式显示进程信息,包括父进程ID(PPID)、进程状态、CPU使用率(%CPU)、内存使用率(%MEM)等

ps -f

ps -F 提供了比 ps -f 更加详细的进程信息,是其增强版。

添加了SZ(进程使用的虚拟内存大小)、RSS(进程使用的物理内存大小)、PSR(进程当前运行的CPU编号)、ADDR(进程在内核虚拟地址空间中的地址)和WCHAN(进程正在等待的内核函数名称)等字段。

8、自定义输出格式,指定要显示的列

ps -o 自定义列

ps --help list

Usage:
 ps [options]

Selection by list:
 -C <command>         command name
 -G, --Group <GID>    real group id or name
 -g, --group <group>  session or effective group name
 -p, p, --pid <PID>   process id
        --ppid <PID>  parent process id
 -q, q, --quick-pid <PID>
                      process id (quick mode)
 -s, --sid <session>  session id
 -t, t, --tty <tty>   terminal
 -u, U, --user <UID>  effective user id or name
 -U, --User <UID>     real user id or name

  The selection options take as their argument either:
    a comma-separated list e.g. '-u root,nobody' or
    a blank-separated list e.g. '-p 123 4567'

VSZ字段代表“Virtual Memory Size”,表示进程占用的虚拟内存大小(单位通常是KB)。

RSS字段代表“Resident Set Size”,表示进程当前占用的物理内存大小(单位通常是KB)。

STAT表示进程的状态;该字段包含了多个字符,每个字符都代表了一种状态。

字段解释
D不可中断的睡眠状态,通常表示进程正在进行I/O操作
R运行中或就绪状态
S可中断的睡眠状态,表示进程正在等待某个事件或资源,并且可以被信号唤醒
T停止状态
Z僵尸进程,即已经终止但尚未被父进程回收的进程
W没有足够的内存分页可分配
<高优先级的进程
N低优先级的进程
L内存锁定(memory locked)。这表示进程的一部分或全部内存被锁定在内存中,不会被换出(swapped out)
s会话领导者(session leader)。这表示进程是某个会话的领头进程
+前台进程组的成员。这表示进程属于某个前台进程组,与当前终端关联

9、显示指定用户的进程信息

ps -u [用户名]

默认当前用户的信息

10、列出指定程序的进程信息

ps -C 进程名

11、显示指定进程ID的进程信息

ps -p PID

ps --help threads

Usage:
 ps [options]

Show threads:
  H                   as if they were processes
 -L                   possibly with LWP and NLWP columns
 -m, m                after processes
 -T                   possibly with SPID column

12、查看当前系统运行的所有用户的所有进程

ps aux

13、查看所有进程ID、进程名、内存占用百分比

ps -e -o pid,comm,%mem

MobaXterm持续获取CPU和内存

1、使用top持续输出

2、直接读取文件

while true; do  
    echo "CPU Info at $(date)" >> system_info.log  
    cat /proc/cpuinfo >> system_info.log  
    echo "Memory Info at $(date)" >> system_info.log  
    cat /proc/meminfo >> system_info.log  
    echo "------------------------" >> system_info.log  
    sleep 5  
done

top

实时显示系统中各个进程CPU、内存等资源的使用情况。


top

1、在top界面中,按下“M”键(或“Shift+M”)可以根据内存使用率对进程进行排序。

2、按下 1 键来显示每个CPU核心的详细使用情况。

3、使用Ctrl + C键退出top命令

df

显示文件系统的磁盘空间使用情况


dmesg

显示内核环形缓冲区(kernel ring buffer)内容;

用于查看系统启动时的内核消息,以及系统运行期间内核产生的日志信息


常用选项含义
-c清除环形缓冲区的内容
-s <SIZE>设置缓冲区大小<SIZE>
-r显示原始消息缓冲区内容

如下指令常用于控制系统

shutdown

参数

-H, --halt
           Halt the machine.

       -P, --poweroff
           Power-off the machine (the default).

       -r, --reboot
           Reboot the machine.

       -h
           Equivalent to --poweroff, unless --halt is specified.

       -k
           Do not halt, power-off, reboot, just write wall message.

       --no-wall
           Do not send wall message before halt, power-off, reboot.

       -c
           Cancel a pending shutdown. This may be used cancel the effect of an invocation of shutdown with a time argument that is not "+0" or "now".

1、关闭系统

        shutdown -h now
        init 0 
        telinit 0 

2、按预定时间关闭系统
        shutdown -h hours:minutes &

3、取消按预定时间关闭系统
        shutdown -c

4、立即重启
        shutdown -r now
        reboot

5、注销

        logout

6、测算一个命令(即程序)的执行时间
        time

man

网络配置指令

ifconfig


1、显示当前系统中所有处于激活状态的网络接口信息

ifconfig

2、显示所有网络接口的信息,无论是否激活。

ifconfig -a

3、显示指定网络接口的信息

ifconfig [interface]

4、激活指定网络接口

ifconfig [interface] up

5、关闭指定网络接口

ifconfig [interface] down

6、为指定网络接口设置IP地址和子网掩码,并自动激活;

ifconfig [interface] [ip] netmask [netmask]

7、修改指定网络接口的MAC地址与MTU

ifconfig [interface] hw ether [mac_address] mtu [mtu]

IP


route


1、显示当前路由表

route

或者

ip route show

2、添加一条静态路由

route add -net [ip] netmask [netmask] gw [gw] dev [interface]

3、删除一条静态路由

route del -net [ip] netmask [netmask] gw [gw]

4、添加默认路由

route add default gw [gw] [interface]

添加默认网关时,需要确保所选的网络接口(如ens36或ens33)是活动的,

并且与网关IP地址在同一网络段内。

如果网络接口未正确配置或未连接到网络,则无法添加默认网关(如此处报错Network is  unreachable)。

5、删除默认路由

route del default gw [gw]

6、添加到主机路由

route add -host [ip] gw [gw] 

7、删除到主机路由

route del -host [ip] gw [gw]

路由表参数

Flags解释
U[p]路由已经启动,是一个有效路由
G[ateway]该路由到指定网络需要使用gw转发
H[ost]该路由目标为主机Host
R[einstate]使用动态路由时,恢复路由标识
D[ynamic]该路由是由服务功能设定的动态路由
M[odified]该路由已经被修改
!该路由不被接受
A[ddress]某些上下文中,可能表示该路由是一个广播地址
C[ache]该路由是来自路由缓存

iptables


  是用于配置Linux内核防火墙的工具,具有IP包过滤功能。

基本语法格式
iptables [-t table] [-A|-C|-D chain] [-i interface] [-o interface] [-p protocol] \  
         [-s source_ip/mask] [-d destination_ip/mask] [--sport source_port] \  
         [--dport destination_port] [-j target]

[-t table]:指定要操作的表,省略[-t table]时,默认filter

[-A|-C|-D chain] :

-A        向链添加规则

-C        检查链中是否存在规则(通常用于脚本中的条件检查)

-D        从链中删除规则

[-i interface] :指定数据包进入接口

[-o interface] :指定数据包离开接口

[-p protocol] :  指定协议(TCP、UDP、ICMP等)

 [-s source_ip/mask] :指定源IP和子网掩码

[-d destination_ip/mask] :指定目的IP和子网掩码

[--sport source_port] : 指定源端口
[--dport destination_port] :指定目的端口

[-j target]:匹配规则后的动作(accept,drop,reject,redirect,log等)


图:iptables中数据包处理流程

图:iptables简化处理流程


iptables的基本组件

I、表

内建规则表:nat、mangle和filter。

fiter:

决定数据包处理方式(接受、拒绝或丢弃);

拥有input、forward、output三个规则链。

nat

网络地址转换,进行一对一、一对多、多对多地址转换。

拥有prerouting、postrouting两个规则链。

mangle:

修改数据包头信息

拥有prerouting、forward、postrouting三个规则链。

raw:

用于处理数据包在路由决策之前。

security:

用于SELinux等安全模块的数据包访问控制。

II、链

INPUT:处理进入本机的数据包。

FORWARD:处理经过本机转发的数据包。

OUTPUT:处理从本机发出的数据包。

PREROUTING:用于处理目的地址转换前的数据包。

POSTROUTING:用于处理源地址转换后的数据包。

注意:链的英文必须大写,否则会报错。

III、规则

定义如何处理匹配特定条件的数据包。

可以基于源地址、目的地址、协议类型(TCP、UDP、ICMP)、端口号等条件。


#        允许SSH访问

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#        打印当前的iptables全部规则和特定的链规则

iptables -L -v -n        全部规则

或者

iptables -L [chain] -v -n        特定的链规则

-L :列出规则

-v:详细模式Verbose,显示更多信息

-n:不进行DNS解析,直接显示IP地址和端口号

如:iptables -L INPUT -v -n

#        拒绝HTTP访问

iptables -A INPUT -p tcp --dport 80 -j DROP

#        转发所有流量到8080端口

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

此处查看时,必须要指定为nat表。

#        删除规则

iptables -t nat -D PREROUTING 1        此处1为规则编号

#        保存和恢复规则

iptables规则在重启后会丢失。

iptables-save > 文件

iptables-restore < 文件

ping


防火墙相关


#        查看防火墙状态

systemctl status firewalld

#        启动防火墙

systemctl start/restart firewalld

#        关闭防火墙,临时停用,重启后失效

systemctl stop firewalld或者systemctl stop firewalld.service

#      永久关闭防火墙

systemctl disable firewalld 或者 systemctl disable firewalld.service

#        开机自启动防火墙

systemctl enable firewalld 或者 systemctl enable firewalld.service  

#        查看防火墙是否开机自启动

systemctl is-enabled firewall

#        firewall-cmd指令

其他工具指令

Python相关


1、

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值