• Linux基础操作命令详解


    我的博客:https://blog.itwk.cc

    Linux基础操作命令详解

    自己总结的一些Linux基础操作命令,适用于小白,大佬请绕道,如有疑问或者不足之处请联系我及时为您解答。

    Linux 操作命令

    文件操作命令

    which;

    查看命令全路径

    which [命令]		#查看命令的全路径
    
    • 1
    ls;

    查看文件

    ls [路径] <参数>
    ls	#列出当前目录所有文件名字
    ls /tmp			#列出tmp目录中所有文件名字
    ls -l /tmp		#列出tmp目录中所有文件名字 数列
    ls -l /tmp |grep ^d 	#显示列出tmp目录中所有目录
    ls -a/l /tmp 	#列出目录中所有文件(包括隐藏文件)
    ls -alt /tmp	#将文件依建立时间之先后次序列出
    ls -Z /			#类型显示安全行文配置
    !ls				#执行上一次执行成功的ls的命令
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    文件类型;
    "-"				#普通文件
    "d"				#目录 directory
    "l"				#链接文件 (软链接、快捷方式)
    "b"				#块设备文件 block
    "c"				#字符设备,例如终端
    "s"				#套接字文件( xxx.socket)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    文件,目录权限;
    	d-rwx r-x r-x. 1 root root
       第一个rwx 文件拥有者的访问权限   属主
       第二个rwx和文件拥有者同一个组的用户的访问权限   属组
       第三个rwx其他人的访问权限   其他
       1是这个文件夹有一个子目录
       第一个root 文件的创建组或者拥有者
       第二个root 文件的属组权限
    r:read读
    w: write写
    x:excute 执行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    cd;

    切换目录

    cd [绝对路径]
    cd /tmp		#切换目录,切换到tmp目录
    cd ~ 		#切换到家目录
    cd /		#切换到根目录
    cd ..		#返回到上一级目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    pwd;
    pwd				#显示当前所在目录
    
    • 1
    mkdir;

    创建文件夹

    mkdir [目录名] <参数>
    mkdir dir		#在当前目录下创建dir文件夹
    mkdir -p /dir1/dir2/dir3/dir4	#递归连续创建文件夹
    
    
    • 1
    • 2
    • 3
    • 4
    rmdir;

    删除目录

    rmdir [目录名] <参数>
    rmdir /tmp		#删除/tmp文件夹 (原则上只能删除空文件夹)
    rmdir -p /tmp/tmp1	#连续删除文件夹 
    
    • 1
    • 2
    • 3
    touch;

    生成空文件,修改时间记录值,如果已存在现有文件,执行touch会篡改时间戳

    touch [文件名] <参数>
    touch -a  #改变文件件的读取时间记录
    
    touch -m  #改变文件的修改时间记录
    
    touch -d 20210101 [文件名] 
    touch -d  # 改变文件的日期时间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    stat;

    查看文件信息

    stat [文件名]
    Access 访问时间  cat|less|more 查看文件
    Modify 修改时间	 echo|vim |nano 修改文件
    Change 状态改变时间 chmod|chown 修改权限
    如果重新touch已有文件三个时间都会同步!
    Amin | Mmin | Cmin 分钟
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    mv;

    移动文件

    mv [文件名] <参数>
    mv -b  当目标目录存在时, 执行覆盖前会创建一个备份
    mv -i 执行移动的源目录或者文件与目标的目录文件同名会先询问是否覆盖
    mv -f 指定移动的源目录文件或者文件与目标目录的目录或者文件名重名不会询问直接覆盖旧文件
    
    • 1
    • 2
    • 3
    • 4
    cat;

    查看文件内容,显示文件内容

    cat [文件名] <参数>
    cat  xxx.txt	#查看xxx.txt文件内容
    cat -n   #查看文件 跟行号
    cat xxx.txt >> hebing.txt
    cat xxx.txt | # more 逐页显示文件内容
    cat xxx.txt |less # 翻看文件内容 :q 退出
    cat /dev/null > xxx.txt 清空文件 "null"丢弃一切写入数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    cp;

    复制文件

    cp [文件名] <参数>
    cp -r  /tmp   #如果复制整个目录,则要+ -r
    cp -f    #覆盖已经存在的文件不提示,反之 -i
    cp -p    # 除了复制为文件内容外,把权限与修改时间也复制到新文件中
    cp -d    #复制时保留链接 快捷方式
    cp -a    #组合使用 d p r 参数
    
    cp -rfvp  # 常用组合
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    head;

    查看文件前几行

    head [文件名] <参数>
    head -n 10 xxx.txt  #查看文件前十行内容
    head -10   xxx.txt	#与上同理
    head -c	   xxx.txt	#显示出字节数
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    tail ;

    查看文件后几行

    tail [文件名] <参数>
    tail -10 xxx.txt	#查看文件后十行内容
    tail -f  xxx		#显示实时输出
    
    • 1
    • 2
    • 3
    more;

    逐页显示文件内容

    more [文件名]
    more xxx.txt
    #空格键翻屏 从上往下
    #b键 从下往上返回
    
    • 1
    • 2
    • 3
    • 4
    less;

    翻页显示文件内容

    less
    [文件名]
    less xxx.txt 
    q退出
    上下键翻滚屏幕
    
    • 1
    • 2
    • 3
    • 4
    • 5
    grep;

    查找关键字 筛选

    cat [文件名] | grep [查找关键字]
    cat /inttab |grep runlevel
    #查看inttab文件 查找runlevel所在行的所有内容
    
    • 1
    • 2
    • 3
    egrep;

    连续筛选

    cat [文件名] | grep [查找关键字1]|[查找关键字2]|[查找关键字3]
    cat xxx.txt |egrep 123|456|789
    egrep 'home/student|ask_pass|devops|host_key_check|become' ansible.cfg
    #查看xxx文件 查找关键字 123 456 789 所在行所有内容并输出
    
    • 1
    • 2
    • 3
    • 4
    tree;

    树状图的形式列出文件目录结构

    tree [参数] <查询的目录>
    	 -d 显示目录名称并非内容
    	 -L 限制目录限制层级
    	 -f 显示完整的相对路径
    	 -p 显示权限表示
    	 -s 列出文件或目录大小
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    ln;

    帮助命令

    man;

    查看使用手册

    man [命令]		#查看ls命令的使用手册
    
    • 1
    help;

    帮助命令

    [命令] --help		#通过命令后面跟  --help 查看命令的使用帮助
    
    • 1

    软链接硬链接

    ln;

    创建链接文件

    ln -S [当前文件绝对目录][链接文件]	
    	#不加S就是硬链接 加S就是软链接
    
    • 1
    • 2

    系统信息类命令

    date;

    显示设定系统日期时间

    date -d    #显示datestr所设定时间
    	 -s	   # 将系统时间设置为datestr所设定的时间
    date 252110122021	#设置时间为2021年11月9日21:25
    hwclock -w 将系统时间写入bios
    
    • 1
    • 2
    • 3
    • 4
    timedatectl;
    root@foundation0 tmp]# timedatectl 
                   Local time: Wed 2021-11-10 05:27:18 CST
               Universal time: Tue 2021-11-09 21:27:18 UTC
                     RTC time: Tue 2021-11-09 21:27:18
                    Time zone: Asia/Shanghai (CST, +0800)
    System clock synchronized: no
                  NTP service: active
              RTC in local TZ: no
    [root@foundation0 tmp]# 
    
    
    timedatectl set-time [年-月-日 小时:分钟:秒]  #配置时间
    timedatectl list-timezones 显示所有时区
    timedatectl set-timezone Aisa/Shanghai #配置时区
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    w;

    查看当前系统有哪些用户登录

    [root@foundation0 tmp]# w
     05:32:48 up  2:26,  1 user,  load average: 0.00, 0.01, 0.00
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/1    172.25.254.1     03:07    0.00s  0.11s  0.03s w
    [root@foundation0 tmp]# 
    
    user:用户
    tty:终端 (pts从远程终端登录)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    who;

    查看用户登录信息的其他命令

    who -f		#开启或关闭用户从何处登录系统
    	-h		#不显示各栏位的标题信息列
    
    • 1
    • 2
    last ;lastb;

    查看用户登录信息的其他命令

    [root@foundation0 tmp]# last
    root     pts/1        172.25.254.1     Wed Nov 10 03:07   still logged in
    root     pts/1        172.25.254.1     Wed Nov 10 03:07 - 03:07  (00:00)
    reboot   system boot  4.18.0-193.el8.x Wed Nov 10 03:06   still running
    root     pts/3        172.25.254.1     Tue Nov  9 04:37 - 05:35  (00:57)
    root     tty2         tty2             Tue Nov  9 04:31 - down   (01:03)
    reboot   system boot  4.18.0-193.el8.x Tue Nov  9 04:31 - 05:35  (01:04)
    kiosk    pts/2        172.25.254.188   Mon May 10 18:50 - 18:50  (00:00)
    kiosk    tty2         tty2             Mon May 10 18:47 - down   (00:03)
    reboot   system boot  4.18.0-193.el8.x Mon May 10 18:46 - 18:50  (00:04)
    kiosk    tty2         tty2             Mon May 10 17:42 - down   (01:02)
    reboot   system boot  4.18.0-193.el8.x Mon May 10 17:41 - 18:45  (01:03)
    kiosk    tty2         tty2             Mon May 10 12:04 - down   (05:37)
    reboot   system boot  4.18.0-193.el8.x Mon May 10 12:02 - 17:41  (05:38)
    kiosk    tty2         tty2             Mon May 10 09:18 - down   (01:43)
    reboot   system boot  4.18.0-193.el8.x Mon May 10 09:16 - 11:01  (01:45)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    hostname;

    查看,配置主机名 FQDN

    /etc/hosts 文件含有ip地址跟fqdn的对应关系

    hostname [-参数]
    foundation0.ilt.example.com 		#FQDN(完全限定域名)
    		-i		#显示主机IP
    		-f		#所在的域
    		-d		#域名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    hostnamectl;

    基于systemd的配置主机名的命令

    hostname #显示系统信息
    foundation0.ilt.example.com
    [root@foundation0 tmp]# hostnamectl 
       Static hostname: foundation0.ilt.example.com
             Icon name: computer-vm
               Chassis: vm
            Machine ID: 1b69907e0dfd4ba0a41c139dc2a718b1
               Boot ID: 1e469fd285fe4a12b7cac5867b96f810
        Virtualization: vmware
      Operating System: Red Hat Enterprise Linux 8.2 (Ootpa)
           CPE OS Name: cpe:/o:redhat:enterprise_linux:8.2:GA
                Kernel: Linux 4.18.0-193.el8.x86_64
          Architecture: x86-64
    [root@foundation0 tmp]# uname -an
    Linux foundation0.ilt.example.com 4.18.0-193.el8.x86_64 #1 SMP Fri Mar 27 14:35:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux   #显示系统信息
    
    
    hostnamectl sethostname [主机名]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    df;

    查看系统各分区占用情况使用率

    [root@foundation0 tmp]# df -Th
    #文件系统	#文件系统格式  #大小 #已使用	#剩余	 #已使用率	#挂载点
    Filesystem     Type      Size  Used Avail Use% Mounted on
    devtmpfs       devtmpfs  3.9G     0  3.9G   0% /dev
    tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
    tmpfs          tmpfs     3.9G  9.8M  3.9G   1% /run
    tmpfs          tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/nvme0n1p3 xfs        92G   38G   54G  42% /
    /dev/loop1     iso9660   428K  428K     0 100% /content/rhel8.2/x86_64/rhcsa-practice
    /dev/loop2     iso9660   3.7G  3.7G     0 100% /content/rhel8.2/x86_64/rhel8-additional
    /dev/loop0     iso9660   7.9G  7.9G     0 100% /content/rhel8.2/x86_64/dvd
    /dev/nvme0n1p1 xfs      1014M  769M  246M  76% /boot
    tmpfs          tmpfs     795M  1.2M  794M   1% /run/user/42
    tmpfs          tmpfs     795M  4.0K  795M   1% /run/user/0
    
    
    df -Th [文件名] 	#查看文件所在的文件系统的使用情况
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    du;

    查看文件的占用空间

    du [文件名] <参数>	
    			-a		#显示目录中所有文件大小
    			-k		#以K字节显示文件大小
    			-m		#以MB为单位显示文件大小
    			-g		#以GB为单位显示文件大小
    			-h		#以易读方式显示文件大小 --常用
    			-s		#仅显示统计	
    			-sh		#显示易读的方式显示文件大小 --常用
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    lscpu;

    显示CPU的信息参数

    lscpu  	#显示CPU的信息参数
    cat /proc/cpuinfo |grep proce  |wc -l
    4		#查看有几颗CPU
    
    • 1
    • 2
    • 3
    free;

    查看系统内存 交换空间

    free -h 		#以读懂的方式显示 系统内存交换空间
    
    • 1

    打包压缩

    tar;

    tar 指定文件或者目录打包成一个大的文件(默认情况下不压缩)

    tar 打包不具备压缩的功能 需要用压缩命令把打包的文件进行压缩

    压缩命令不具备把多个打包文件压缩成单个文件

    tar  <参数> [dir] [dir] 
    		-c		#创建一个tar文件(打包文件)
    		-C		#进行解压缩+执行目录(不指定目录默认当前目录)
    		-v		#显示运行过程中信息
    		-f		#指定文件名
    		-z		#调用gzip压缩命令进行压缩
    		-x		#解开tar 文件
    		-j		#压缩成为bzip2格式的文件
    		-J		#压缩成为xz格式的文件
    tar -zcvf	test.tar.gz   /tmp/* #将tmp目录所有文件打包压缩
    tar -ztvf  [test.tar.gz	]	#查看压缩包里的内容
    tar -zxvf  [test.tar.gz] [需要打压缩的目录]  #打包并压缩
    tar -zxvf  [test.tar.gz]  -C /[解压目录]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    zip;

    如果有许多文件需要压缩,zip可以支持压缩成一个文件

    zip  <参数> [打包文件名][文件][文件][文件]
    	-r		# 把目录里的子目录子文件全部添加
    unzip <参数> [压缩包]
    		-d		#指定解压目录
    
    • 1
    • 2
    • 3
    • 4
    gzip,gunzip;

    .gz文件由此产生,常用的linux中的压缩格式

    gzip只能只能对单文件进行压缩,源文件不在了

    gzip  1.txt	  #自动生成1.txt.gz文件
    gunzip 1.txt.gz #解压缩 
    
    • 1
    • 2

    cut;

    cut [参数] "" -f 1 /etc/passwd	#列出文件第一列的内容
    			-d   	#把一行当中以什么作为分隔符
    			-f		#指定输出第N列
    
    • 1
    • 2
    • 3

    实例:

     cut -d ":" -f 1  passwd	#查看所有行的第一列
     cut -d ":" -f 1,2,3  passwd # 查看所有行的1,2,3列
    
    • 1
    • 2

    sed;

    利用脚本处理文本文件,

    sed			
    			-n 	#只显示出有变化的一行
    
    
    • 1
    • 2
    • 3

    实例

    sed -i  '1,5s/\/bin\/bash/\/sbin\/nologin/g' passwd
    
    • 1

    awk;

    awk -F ":" '{print$1}' [file]	#列出第一列内容
    awk -F ":" 'NR==1{print$2}' [file]  #以:分隔符把第一行中第一列内容筛选出来
    awk -F ":" 'NR==1' [file]  #以:分隔符把第一行内容筛选出来
    awk -F ":" 'NR==1{print$(NF)}' passwd	#列出第一行最后一列
    awk -F ":" 'NR==1{print$(NF-5)}' passwd	#列出第一行最后5列
    
    • 1
    • 2
    • 3
    • 4
    • 5

    awk列出IP地址

    ip addr show eth0 | awk 'NR==3{print$2}' |cut -d  "/" -f1
    
    • 1
  • 相关阅读:
    mysql面试题22:SQL优化的一般步骤是什么,怎么看执行计划(explain),如何理解其中各个字段的含义
    基于docker部署实现接口自动化持续集成
    数据结构-栈结构扩展应用
    Java 序列化和反序列化,为什么要实现Serializable?
    【无人机】无人机的气象数据采集系统设计(Matlab代码实现)
    如何在 Vue 中使用 防抖 和 节流
    主流编程语言介绍
    redis集群的三种方式
    Netty 的整体架构是怎样的?
    岩藻多糖-聚乙二醇-刀豆球蛋白A,ConcanavalinA-PEG-Fucoidan,刀豆球蛋白A-PEG-岩藻多糖
  • 原文地址:https://blog.csdn.net/qq_34185638/article/details/126874842