IT序号网

linux基本命令知识解答

itxm 2021年09月05日 程序员 146 0
本文章主要介绍了linux基本命令,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

快捷键

  • tab 自动补全
  • ctrl + u 删除当前光标处之前的所有字符内容
  • ctrl + k 删除当前光标处到尾行的所有字符内容
  • ctrl + L 清空当前屏幕显示的内容
  • ctrl + c 取消当前命令行的编辑

目录操作命令

  • pwd 查看当前的工作目录
  • cd 切换工作目录
  • ~ 当前用户家目录
  • ls 显示目录内容
    # 参数 
    -l 显示文件和目录的列表,包括全线、大小、最后更新时间等详细信息 
    -a 显示所有的目录和文件信息,包括隐藏内容 
    -d 显示目录(Directory)本身的属性,而不是显示目录中的内容 
    -R 以递归的方式显示指定目录及其子目录中的所有内容 
    
  • du 统计指定目录或文件所占磁盘空间的大小,使用目录或文件的名称作为参数
    #参数 
    -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 
    -h 更友好的显示统计结果,将显示K、M、G单位 
    -s 只统计每个参数所占用总空间的大小 
    $ du -hs projects/ 
    118M  projects/ 
    

文件操作命令

  • touch 创建空文件,
    # 格式 
    touch 文件名1 文件名2  
    
  • file 查看文件类型
    # 格式 
    file 文件名称  
    
  • cp 复制文件或目录
    # 格式 
    cp 源文件或目录 目标文件或目录 
    cp /home/test /usr/test 
    # 参数 
    -f 覆盖目标同名文件或目录时不进行提醒,直接强制复制 
    -i 覆盖目标同名文件或目录提醒用户确认 
    -p 复制时保持源文件的权限、属主及时间标记等属性不变 
    -r 复制目录时必须使用此选项,表示递归复制所有文件及子目录 
    
  • rm 删除目录或文件
    # 格式 
    rm 文件名 
    # 参数 
    -f 删除文件或目录时不进行提醒,直接强制删除 
    -i 删除文件或目录时提醒用户确认 
    -r 删除目录时必须使用此项,表示递归删除整个目录树 
    
  • mv 移动文件或目录
    # 格式 
    mv 源文件或目录 目标文件或目录 
    
  • which 查看liunx命令文件并显示所在的位置
    >which cp 
    /bin/cp 
    
  • find 查找文件或目录
    # 格式 
    find [查找范围] [查找条件表达式] 
    -name 按名称查找 
    - size 按文件大小查找,一般使用 + - 设置超过或小于指定文件的大小k、m、g 
    -user 按文件属主查找 
    -type 按文件类型查找 
    # 查找所有的目录 
    find /home -type d 
    # 查找超过1024KB而且文件名以test开头的文件 
    find /home -size +1024k -a -name "test*" 
    
  • ln 为文件或目录建立链接
    # 格式 
    ln [源文件或目录][目标文件或目录] 硬链接 
    ln -s [源文件或目录][目标文件或目录]  软链接 
    软链接: 
    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 
    2.软链接可以 跨文件系统 ,硬链接不可以 
    3.软链接可以对一个不存在的文件名进行链接 
    4.软链接可以对目录进行链接 
    5.删除源文件软链接文件也没有了 
     
    硬链接: 
    1.硬链接,以文件副本的形式存在。但不占用实际空间。 
    2.不允许给目录创建硬链接 
    3.硬链接只有在同一个文件系统中才能创建 
    4.删除源文件硬链接文件还存在 
     
    参数: 
    -b 删除,覆盖以前建立的链接 
    -d 允许超级用户制作目录的硬链接 
    -f 强制执行 
    -i 交互模式,文件存在则提示用户是否覆盖 
    -n 把符号链接视为一般目录 
    -s 软链接(符号链接) 
    -v 显示详细的处理过程 
    

文件内容操作命令

  • cat 查看文件内容
  • nl 查看文件内容并显示行号
  • less 分页显示文件内容
    Enter 逐行向下滚动 
    空格键向下翻一屏 
    b键向上翻一屏 
    q键退出 
    
  • head 查看文件开头
    -n 指定需要显示的行数 默认显示10行 
    
  • tail 查看文件末尾,一般用来查看日志
    -f 用于实时跟踪日志文件末尾的内容变化 
    
  • wc 统计文件内容中的数量等信息,支持管道
    # 格式  
    wc [参数] 文件名  
    # 参数 
    -w 仅列出多少字(英文单字) 
    -l 统计文件内容中的行数 
    -w 统计文件内容中的单词个数 
    

归档及压缩命令

  • gzip 用于创压缩或者解压".gz"文件
    # 格式 
    gzip [参数] 文件名 
    gunzip 文件名  # 解压专用命令 
    # 参数 
    -9 提高压缩比率 
    -d 解压文件 
    
  • bzip2 用于创压缩或者解压".bz2"文件
    # 格式 
    bzip2 [参数] 文件名 
    bunzip2 文件名  # 解压专用命令 
    # 参数 
    -9 提高压缩比率 
    -d 解压文件 
    
  • tar 制作归档文件或者解压文件
    # 制作归档及压缩包/文件 
    tar [参数]  压缩包名 需要压缩的源文件或目录 
    # 解压并释放归档压缩包文件 
    tar [参数] 压缩包名 -C 解压到目标目录 
    # 参数 
    -c 创建.tar格式的包 
    -C 解包时指定释放的目标文件夹 
    -f 表示使用归档文件 
    -j 调用bzip2程序进行压缩或解压 
    -p 打包时暴力文件及目录的权限 
    -t 列表查看包内的文件 
    -v 输出详细信息 
    -x 解开.tar格式的包文件 
    -z 调用gzip程序进行压缩或解压 
    

排序命令

  • sort 排序
    # 格式 
    sort [参数] [文件 or 标准输入] 
    选项与参数: 
    -f :忽略大小写的差异,例如 A 与 a 视为编码相同; 
    -b :忽略最前面的空白字符部分; 
    -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法; 
    -n :使用“纯数字”进行排序(默认是以文字体态来排序的); 
    -r :反向排序; 
    -u :就是 uniq ,相同的数据中,仅出现一行代表; 
    -t :分隔符号,默认是用 [tab] 键来分隔; 
    -k :以那个区间 (field) 来进行排序的意思 
     
    # 示例 
    $ cat /etc/passwd | sort 
    sort 是默认“以第一个”数据来排序, 而且默认是以“文字”型态来排序的,所以由 a 开始排到最后 
     
    # /etc/passwd 内容是以 : 来分隔的,我想以第三栏并以数字形态来排序,该如何? 
    $ cat /etc/passwd | sort -t ':' -k 3 -n 
    
  • uniq 去重, 将重复的数据仅列出一个显示
    # 格式 
    uniq [参数] 
    选项与参数: 
    -i :忽略大小写字符的不同; 
    -c :进行计数  
     
    # 使用 last 将帐号列出,仅取出帐号栏,进行排序,然后取出每个人的登陆总次数  
    $ last | awk '{print $1}' | sort | uniq -c | sort -n 
    # 统计总登录人数 
    last | awk '{print $1}' | sort | uniq -c | sort -n | wc -l 
    

网络命令

netstat -tlnp 查看当前网络开放的端口
netstat -tnp 查看连接当前网络的ip

# 一键搭建网站 
python2 -m CGIHTTPServer 8000 
python3 -m http.server -cgi 8000 
 
根据进程pid查端口:netstat -nap | grep pid 
根据端口查pid:netstat -nap | grep port 

curl 请求网站地址
jq. 格式化 json数据
nc 高手必备

进程命令

ps 查看进程

ps -l 只能查阅自己 bash 程序的程序 
ps aux 可以查阅所有系统运行的程序 

ps -l 只能查阅自己 bash 程序的程序

[root@cen65 ~]# ps -l 
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD 
4 S     0 124563 124561  0  80   0 - 27127 wait   pts/2    00:00:00 bash 
0 R     0 124666 124563  0  80   0 - 27042 -      pts/2    00:00:00 ps 
  • F:代表这个程序旗标 (process flags),说明这个程序的总结权限,常见号码有:
    • 若为 4 表示此程序的权限为 root
    • 若为 1 则表示此子程序仅进行复制(fork)而没有实际执行(exec)
  • S:代表这个程序的状态 (STAT),主要的状态有:
    • R (Running):该程序正在运行中
    • S (Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。
    • D :不可被唤醒的睡眠状态,通常这支程序可能在等待 I/O 的情况(ex>打印
    • T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态
    • Z (Zombie):僵尸状态,程序已经终止但却无法被移除至内存外
    • UID/PID/PPID:代表“此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码”
  • C:代表 CPU 使用率,单位为百分比;
  • PRI/NI:Priority/Nice 的缩写,代表此程序被 CPU 所执行的优先顺序,数值越小代表该程序越快被 CPU 执行。
  • ADDR/SZ/WCHAN:都与内存有关,ADDR 是 kernel function,指出该程序在内存的哪个部分,如果是个 running 的程序,一般就会显示“ - ” / SZ 代表此程序用掉多少内存 / WCHAN 表示目前程序是否运行中,同样的, 若为 - 表示正在运行中。
  • TTY:登陆者的终端机位置,若为远端登陆则使用动态终端接口 (pts/n);
  • TIME:使用掉的 CPU 时间,注意,是此程序实际花费 CPU 运行的时间,而不是系统时间;
  • CMD:就是 command 的缩写,造成此程序的触发程序之指令为何。

ps aux 可以查阅所有系统运行的程序

ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
root          1  0.0  0.0  23560  2392 ?        Ss   09:54   0:00 /sbin/init 
root          2  0.0  0.0      0     0 ?        S    09:54   0:00 [kthreadd] 
root          3  0.0  0.0      0     0 ?        S    09:54   0:00 [ksoftirqd/0] 
  • USER:该 process 属于那个使用者帐号的?
  • PID :该 process 的程序识别码。
  • %CPU:该 process 使用掉的 CPU 资源百分比
  • %MEM:该 process 所占用的实体内存百分比
  • VSZ :该 process 使用掉的虚拟内存量 (KBytes)
  • RSS :该 process 占用的固定的内存量 (KBytes)
  • TTY:该 process 是在那个终端机上面运行,若与终端机无关则显示 ?,另外, tty1-tty6 是本机上面的登陆者程序,若为pts/0 等等的,则表示为由网络连接进主机的程序
  • STAT:该程序目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)
  • START:该 process 被触发启动的时间
  • TIME :该 process 实际使用 CPU 运行的时间
  • COMMAND:该程序的实际指令为何?

top 动态显示进程

# 一秒更新一次 
top -d 1  
参数 
-d 多少秒内统计一次 
-n 需要进行几次 top 的输出结果 
-p 指定进程PID 
P 以 CPU 的使用资源排序显示 
M 以 Memory 的使用资源排序显示 
N 以 PID 来排序 
# 监控进程 
for i in {1..20}; do top -d 1 -n 1 -p 进程PID | awk '{print $9 $10}'; done 
  • PID :每个 process 的 ID 啦
  • USER:该 process 所属的使用者
  • PR :Priority 的简写,程序的优先执行顺序,越小越早被执行
  • NI:Nice 的简写,与 Priority 有关,也是越小越早被执行
  • %CPU:CPU 的使用率
  • %MEM:内存的使用率
  • TIME+:CPU 使用时间的累加

把文件从本地复制到远程 linux(支持内网)

scp -r 本地文件 远程用户名@远程ip:远程存放路径  

发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

shell三剑客知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。