首页 > 系统相关 >Linux常用命令

Linux常用命令

时间:2022-09-19 13:56:43浏览次数:102  
标签:文件 文件名 0.0 常用命令 netstat Linux 权限 目录

1 系统信息

  • date:显示系统日期
  • date 091816152022.00:设置时间 月日时分年.秒

2 关机

  • shutdown -h now:立即关机
  • shutdown -r now:立即重启
  • reboot:重启
  • shutdown -h hours:minutes:在时间为hours:minutes时关机

3 目录

  • cd ..:切换到上一级目录
  • cd -:切换到上次操作所在目录
  • cd ~:切换到用户主目录
  • cd /:切换到系统根目录
  • pwd:显示当前所在目录
  • mkdir 目录名:增加目录
  • rmdir 目录名:删除空目录
    • 非空目录使用rm
  • rm -rf 目录名:强制删除该目录下的所有文件
    • -r:递归删除目录及其内容
  • ls:查看该目录下的文件
  • ls -l:查看该目录下的目录和文件的详细信息
  • ls -a:显示隐藏文件
  • mv 目录名 新目录名:重命名一个目录
  • mv 目录名 目录新位置:移动目录位置
  • cp –r 目录名 目录复制的目标位置: 复制目录下的文件到新目录
    • -r:递归复制文件和目录,使用该指令复制目录时必须使用参数-r或者-R
      图片

4 文件

4.1 权限

文件类型

  • d:代表目录
  • -:代表文件
  • l:代表软链接(可以认为是window中的快捷方式)

Linux中的权限

  • r:代表权限是可读,也可以用数字4表示
  • w:代表权限是可写,也可以用数字2表示
  • x:代表权限是可执行,也可以用数字1表示

文件和目录权限的区别
对于文件

权限名称 可执行操作
r 可以使用cat查看文件的内容
w 可以修改文件的内容
x 可以将其运行为二进制文件

对于目录

权限名称 可执行操作
r 可以查看目录下列表
w 可以创建和删除目录下文件
x 可以使用cd进入目录

Linux中每个用户都必须属于一个组,不能独立于组外。

Linux中每个文件都有所有者(属主owner)、所在组(属组group)、其它组(其他用户other)的概念。

  • 所有者(u) :一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者,用chown 用户名 文件名命令可以修改文件的所有者
  • 文件所在组(g) :当某个用户创建了一个文件后,该用户所在的组就是这个文件的所在组。用ls ‐ahl命令可以看到文件的所有组,用chgrp 组名 文件名命令可以修改文件的所在组
  • 其它组(o) :除文件的所有者和所在组的用户之外,系统的其它用户都是文件的其它组

举例:在某个目录下ls -l

图片

则第一列的信息表示

图片

4.2 命令

  • chmod 权限 目录名/文件名:修改文件/目录的权限

    • 运算符:
      • -:删除权限
      • +:添加权限
      • =:赋值权限
    • chmod ugo+rwx directory1:设置目录的所有人(u)、群组(g)以及其他人(o)有读(r )、写(w)和执行(x)的权限
    • chmod u+x 文件名:给文件的所有者添加执行权限
    • chmod o-rwx 文件名:给文件的其他人删除所有权限
    • chmod g=wx 文件名:给文件的所属组设置读写权限
    • chmod go-rwx directory1:删除群组(g)与其他人(o)对目录的读、写、执行的权限
    • 修改aaa.txt的权限为文件所有者有全部权限,文件所有者所在的组有读写权限,其他用户只有读的权限
      • chmod u=rwx,g=rw,o=r aaa.txt
      • 或chmod 764 aaa.txt(7=4+2+1,6=4+2,4=4)
  • find 目录 条件:在该目录下查找符合条件的文件

    • 列出当前目录及子目录下所有文件和文件夹
      • find .
    • 在/home目录下查找所有以.txt为结尾的文件
      • find /home -name "*.txt"
      • -iname:忽略大小写
    • 在当前目录及子目录下查找所有以.txt和.pdf为结尾的文件
      • find . ( -name ".txt" -o -name ".pdf" )
      • 或find . -name ".txt" -o -name ".pdf"
  • touch 文件名:创建新的空白文件
    图片

  • touch -c -t 09181703 文件名:修改文件的时间戳

    • 修改时间戳为9月18号17:03
    • -c:不创建新文件
    • -d:设定时间,可以使用各种不同的格式
    • -t:设定时间,格式与date命令相同
  • cat/more/less/tail 文件名:查看文件

    • cat 文件名:从第一个字节开始正向查看文件的内容

      • -n:显示行数(空行也编号)
      • -s:显示行数(多个空行算一个编号)
      • -b:显示行数(空行不编号)
        图片
    • tac 文件名:从最后一行开始反向查看一个文件的内容

    • more 文件名:查看一个长文件的内容

    • less 文件名:类似于more命令,但是它允许在文件中和正向操作一样的反向操作

    • head -2 文件名:查看一个文件的前两行

    • tail -2 文件名/tail -n 2 文件名:查看一个文件的最后两行

      • tail默认在标准输出上显示指定文件的最后10行内容,使用tail -n N 文件名可以指定显示文件的最后N行内容
    • tail -f 文件名:对某个文件进行动态监控

  • vim 文件名:修改文件内容

    • 步骤:vim 文件名----->进入文件----->按i进入编辑模式---->编辑文件 ----->按Esc进入底行模式---->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存)
  • rm -f 文件名:删除文件

  • tar -zcvf 打包压缩后的文件名 要打包压缩的文件名:打包并压缩文件

    • Linux中的打包文件一般是以.tar结尾,压缩文件一般是以.gz结尾。一般情况下打包和压缩一起进行,打包并压缩后的文件的后缀名一般为.tar.gz
    • -z:调用gzip压缩命令进行压缩
      • bunzip2 file1.bz2:解压一个叫做file1.bz2的文件
      • bzip2 file1:压缩一个叫做file1的文件
      • gunzip file1.gz:解压一个叫做file1.gz的文件
      • gzip file1:压缩一个叫做file1的文件
    • -c:打包文件
    • -v:显示运行过程
    • -f:指定文件名
    • test目录下有三个文件:aaa.txt bbb.txt ccc.txt,要打包test目录并指定压缩后的压缩包名称为test.tar.gz,使用命令tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txttar -zcvf test.tar.gz /test/
  • tar [-xvf] 压缩文件名:解压缩文件

    • -x:解压
    • 将/test下的test.tar.gz解压到当前目录下,使用命令tar -xvf test.tar.gz
    • 将/test下的 test.tar.gz解压到根目录/usr下,使用命令tar -xvf test.tar.gz -C /usr(-C:指定解压位置)

5 网络通信

  • ifconfig:查看当前系统的网卡信息

  • ping:查看与某台机器的连接情况

  • netstat:查看本机各端口的网络连接情况
    图片

    • -a:显示所有的网络连接和监听端口信息
    • -c:持续列出网络状态
    • -l:显示监控中的服务器的SOCKET
    • -n:直接打印连接的IP地址与端口信息
    • -r:显示路由表(跟route print命令一样)
    • -s:显示每个协议的统计数据(默认情况下统计如下协议:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6)
    • -p:显示与连接有关的程序名和进程的PID
    • -t:显示TCP传输协议的连线状况
    • -u:显示UDP传输协议的连线状况
    • netstat -a:列出所有端口,包括监听的和未监听的
[root@VM-16-9-centos ~]# netstat -a
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 VM-16-9-centos:49326    169.254.0.55:lsi-bobcat ESTABLISHED
tcp        0     52 VM-16-9-centos:ssh      119.137.1.7:20029       ESTABLISHED
tcp        0      0 VM-16-9-centos:ssh      113.110.224.255:63626   ESTABLISHED
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 VM-16-9-centos:ntp      0.0.0.0:*                          
udp        0      0 VM-16-9-centos:ntp      0.0.0.0:*                          
udp        0      0 0.0.0.0:38064           0.0.0.0:*                          
udp6       0      0 VM-16-9-centos:ntp      [::]:*                             
udp6       0      0 VM-16-9-centos:ntp      [::]:* 
    * `netstat -an`:列出所有端口,并直接显示ip和端口
[root@VM-16-9-centos ~]# netstat -an
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 172.17.16.9:49326       169.254.0.55:5574       ESTABLISHED
tcp        0     52 172.17.16.9:22          119.137.1.7:20029       ESTABLISHED
tcp        0      0 172.17.16.9:22          113.110.224.255:63626   ESTABLISHED
tcp        0      0 172.17.16.9:52236       169.254.0.4:80          TIME_WAIT 
* `netstat -at`:列出所有TCP端口
* `netstat -au`:列出所有UDP端口
* `netstat -l`:列出所有处于监听状态的端口
* `netstat -lt`:显示监听TCP端口
* `netstat -lu`:显示监听UDP端口
* `netstat -s`:显示所有端口的统计信息
* `netstat -p`:显示PID和进程名称
* `netstat -c`:每隔一秒输出网络信息
* `netstat -antp | grep 程序名`**:找出程序运行的TCP端口和相关进程**
    * `grep 要搜索的字符串 要搜索的文件 --color`:搜索命令(--color:高亮显示)
[root@node1 ~]# netstat -antp | grep ssh
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      734/sshd            
tcp        0     52 192.168.130.20:22       119.129.118.189:58737   ESTABLISHED 1846/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      734/sshd
```plain
    * `netstat -antp | grep 端口号`**:找出运行在指定TCP端口的进程**
```plain
 [root@node1 ~]# netstat -antp | grep 22
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      734/sshd            
tcp        0     52 192.168.130.20:22       119.129.118.189:58737   ESTABLISHED 1846/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      734/sshd            

6 进程

  • ps -ef/ps aux:查看当前系统正在运行的全部进程,两者的区别是展示格式不同
    • a:显示所有运行进程,包括其他用户的进程
    • u:显示所有用户的所有进程
    • x:显示没有终端的进程
    • -e:效果和指定a参数相同
    • -f:用ASCII字符显示树状结构,表达进程间的相互关系
    • ps命令通常结合grep命令查看某进程的状态
[root@hadoop101 datas] ps aux

图片

[root@hadoop101 datas] ps -ef

图片

  • kill -9 [PID]:杀死进程(-9:强制终止)
  • top:默认按照CPU的占用情况,实时显示占用量较大的进程
    • -d 秒数:指定top命令每隔几秒更新(默认3秒)
    • -i:不显示任何闲置或者僵死进程
    • -p [PID]:查看指定的进程ID信息
    • -u 用户名:只监听某个用户的进程
  • mpstat -P ALL/sar -P ALL:查看多核CPU(https://www.cnblogs.com/niuben/p/12017242.html

7 环境变量

7.1 分类

  • 按作用域来分,环境变量分成:
    • 用户级别环境变量: ~/.bashrc、 ~/.bash_profile
    • 系统级别环境变量:/etc/bashrc、/etc/environment、/etc/profile、/etc/profile.d
      上述配置文件执行先后顺序为:/etc/enviroment –> /etc/profile –> /etc/profile.d –> ~/.bash_profile –> /etc/bashrc –> ~/.bashrc。

建议用户级别环境变量在~/.bash_profile中配置,系统级别环境变量在 /etc/profile.d中配置

  • 按生命周期来分,环境变量分成:
    • 永久的:需要用户修改相关的配置文件,变量永久生效
    • 临时的:用户利用export命令,在当前终端下声明环境变量,关闭 shell终端失效

7.2 命令

  • export:列出环境变量
    • -p:列出当前所有的环境变量
  • echo:输出指定环境变量的值
    • echo $PATH:输出当前的PATH环境变量的值
    • echo $HOME:输出当前的HOME环境变量的值
    • -n:不输出结尾的换行符
    • -e:允许对下面列出的加反斜线转义的字符进行解释
      • -e“\a”:发出警告音
      • -e“\b”:删除前面的一个字符
        • echo -e "123\b456"
        • 12456
      • -e“\c”:结尾不加换行符
      • -e“\f”:换行,光标仍停留在原来的坐标位置
      • -e“\n”:换行,光标移至行首
        • echo -e "a\nb\nc"
        • a
        • b
        • c
      • -e“\r”:光标移至行首,但不换行
    • -E:禁止反斜线转义,与-e参数功能相反

标签:文件,文件名,0.0,常用命令,netstat,Linux,权限,目录
From: https://www.cnblogs.com/ycylikestudy/p/16707450.html

相关文章

  • git常用命令
    gitinit    初始化一个空仓库 / 创建空仓库gitadd.  代码提交到暂存区gitcommit-m'提交名'  提交到本地git仓库gitremoteaddorigin'仓库地......
  • Java获取本地IP(Linux和windows)
    在Linux系统和windows系统使用java获取本地IP的方法是不同的,这就导致了生产环境与实际运用环境不同而导致代码出错。1packagecom.cfcc.cfcs.common.utils;23imp......
  • Linux运维笔记[2]-宝塔面板
    宝塔面板宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过2......
  • linux安装mysql
    原文链接:https://blog.csdn.net/m0_54849806/article/details/126113296在Linux系统安装MySQL8.0,网上已经有很多的教程了,到自己安装的时候却发现各种各样的问题,现在把安装......
  • linux创建本地svn仓库
    记录代码迭代,创建本地svn仓库:#mkdir/home/svn#cd/home/svn#svnadmincreatemwork   //创建仓库mwork#cdmwork#vimconf/passwd         //......
  • HK32F030MF4P6的Linux GCC工具链和VSCode开发环境
    HK32F030MF4P6简介航顺的HK32F030MF4P6,TSSOP20封装,ArmCortexM0内核,内建32MHz时钟,16KFlash,2KRAM(实际上可用的有4K).这个型号的目的应该是硬件替换STM......
  • Linux三剑客之一——grep及正则表达式的学习
    1.grep理论1.1grep作用1.2grep参数及说明1.3 基本正则表达式BRE集合1.4 扩展正则表达式ERE集合2.grep实践2.1grep基本参数2.2 grep正则表达式3.总结 1.gr......
  • VMware虚拟机中安装redhat-linux系统
    步骤:------------1.下载redhat-linux.764位ios。------------2.使用VMware创建虚拟机问题:##############-1.无法将系统语言改成中文------------:安装系统不进行......
  • 《Unix&Linux系统编程》第十章学习笔记
    第10章sh编程10.1sh脚本​ sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。sh脚本的第一行通常以#!组合开始,成为shebang,当主sh见到shebang时,会读取脚本......
  • 轻松使用 Debian的Linux
    Spiral Linux 就是这样一种发行版,它源于Debian。它的重点在于促进简单性并为最终用户提供开箱即用的特性和功能。如果您是开源操作系统的新手,并且想熟悉一个易于使用......