• Linux命令学习


    目录与文件

    ls

    • 列出目录的内容
    -a      列出隐藏文件,文件中以“.”开头的均为隐藏文件,如:~/.bashrc
    -l      列出文件的详细信息
    -R    连同子目录中的内容一起列出
    
    • 1
    • 2
    • 3
    • 文件类型
    - 普通文件
    d 目录
    l 符号链接
    b 块设备文件
    c 字符设备文件
    s socket文件,网络套接字
    p 管道
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 操作权限
    r 读
    w 写
    x 可执行。对于目录,表示进入权限
    
    • 1
    • 2
    • 3
    • 访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数

    cd

    change dir 改变当前所在路径
    cd  ~   :返回当前用户家目录
    cd  /   :返回根目录
    cd ..  :返回上层目录
    cd -  :返回上次访问的目录
    cd  相对路径  :进入到相对当前位置的目录
    cd  绝对路径  :进入到指定的绝对路径
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    which

    which

    pwd

    image-20221104163658130

    mkdir

    • 创建目录(可以一次创建多个)
    -m, --mode=模式
    	设置文件模式(类似chmod),而不是 rwx 减 umask
    -p, --parents
    	如果目录已存在,不报错,且按需创建父目录
    -v, --verbose
    	为每一个已创建的目录打印信息
    -Z     将每个创建的目录的 SELinux 安全上下文设置为默认类型
    --context[=CTX]
    	类似 -Z,或者如果指定了上下文,则将 SELinux 或者 SMACK 安全上下文设置为指定类型
    --help 显示此帮助信息并退出
    --versionq 显示版本信息并退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 可以创建多级目录

      mkdir -p a/b/c

    rmdir

    • 删除空目录,可以一次删除多个
    --ignore-fail-on-non-empty
    	忽略每一个仅因目录非空而导致的错误
    -p, --parents
    	删除目录及其路径上的目录;
    	比如,'rmdir  -p  a/b/c' === 'rmdir a/b/c a/b a'
    -v, --verbose
    	为每一个处理过的目录输出诊断信息
    --help 显示此帮助信息并退出
    --version 显示版本信息并退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    touch

    touch [OPTION]… FILE…
    将每个文件的访问及修改时间都更新为目前的时间
    除非提供了-c-h参数,如果文件不存在,则创建一个字节数为0的文件。

    -a 仅更改文件访问时间
    -c, --no-create 不要创建任何文件
    -d, --date=字符串 使用指定字符串所表示的时间而非当前时间
    -m  仅更改文件修改时间
    -r, --reference=文件 使用指定文件的时间代替当前时间
    -t STAMP 使用 [[CC]YY]MMDDhhmm[.ss] 代替当前时间
    -h, --no-dereference 影响所有符号链接而非被引用的文件(
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    rm

    删除文件:rm file
    删除目录:rm -rf dir

    -r, -R, --recursive 递归地移除目录及它们的内容
    -d, --dir 删除空目录
    -v, --verbose 解释正在发生的情况
    -f, --force  忽略不存在的文件和参数,从不提示
    -i  在每次删除前提示
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20221104165417612

    mv

    • 文件重命名 mv file1 file2
    • 移动文件 mv file1 ~/(路径)

    cp

    • 拷贝文件:cp file1(路径) file2(路径)
    • 拷贝目录 : cp dir1 dir2 -r

    cat

    cat filename
    查看文件里内容,输出到终端,如果cat时没跟文件名,则读标准输入,遇到\n后,输出到标准输出,终端下输入Ctrl-d表示结束

    image-20221104171450022

    more

    more filename
    查看文本文件的内容,屏幕显示完一屏就等待用户按下任意键再滚动到下一屏,如果中
    途不想继续看下去了,可以按Ctrl+C或q终止显示。

    less

    less filename
    查看文本文件的内容,屏幕显示完一屏就等待用户按键,用户可以向上或向下查看,如果中途不想继续看下去了,可以按Ctrl+C或q终止显示。

    head

    显示指定文件的前面几行。
    image-20221104172154147

    tail

    显示文件的最后几行。
    image-20221104172450295

    ln

    • ln -s 产生符号链接
    • ln 产生硬链接

    tree

    Ubuntu下安装 sudo apt-get install tree
    按结构树的形状显示目录和文件

    wc

    用来计算文件的字节数、字数、行数
    若不指定文件名称或文件名为’-',表示从标准输入设备读取数据

    -c, --bytes 输出字节统计数
    -m, --chars 输出字符统计数
    -l, --lines  输出换行符统计数
    -w, --words 输出单词统计数
    
    • 1
    • 2
    • 3
    • 4

    image-20221104173533316

    od

    od(octal dump)命令默认为八进制字节形式。如果指定了多于一个文件,将它们以列出的顺序连接起来作为输入
    od [-A 地址进制] [-t 显示格式] 文件名
    默认进制 8进制

    -A ( 地址进制)按指定的进制显示地址信息;
        o:八进制(系统默认值)
        d:十进制
        x:十六进制
        n:不打印位移值
    -t 指定数据显示的格式。
        c:ASCII字符或反斜杠序列(如\n)
        d:有符号十进制数
        f:浮点数
        o:八进制(系统默认值)
        u:无符号十进制数
        x:十六进制数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    image-20221104174236746

    du

    显示目录的大小

    -m  M
    -k  K
    -b  B
    
    • 1
    • 2
    • 3

    image-20221104174717208

    df

    查看磁盘的使用情况
    df --block-size=GB
    df --block-size=MB

    image-20221104200859786

    文件属性和用户用户组

    whoami

    查看当前登陆用户

    whoami

    chmod

    改变文件模式

    image-20221104201632806chmod [who] [+|-|=] [mode]
    chmod a+w filename
    设置一个文件允许所有用户可写

    image-20221104204831614

    • 数字设定法

    image-20221104203410846

    chown

    chown [OPTION]… [OWNER:GROUP] FILE…

    OPTION的主要参数:
        -R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
        -v 显示chown命令所做的工作。
    
    • 1
    • 2
    • 3

    image-20221104210658918

    chgrp

    chgrp [OPTION]… GROUP FILE…

    image-20221104211141670

    查找与检索

    find

    find [OPTION] path… [expression]

    image-20221104211721802

    grep

    grep [options] PATTERN [FILE...]

    [options]部分包含的主要参数:
        -c:只输出匹配行的计数。
        -I:不区分大小写(只适用于单字符)。
        -h:查询多文件时不显示文件名。
        -l:查询多文件时只输出包含匹配字符的文件名。
        -n:显示匹配行及行号。
        -s:不显示不存在或无匹配文本的错误信息。
        -v:显示不包含匹配文本的所有行。
        -R: 连同子目录中所有文件一起查找。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    软件安装

    apt-get

    sudo vi /etc/apt/sources.list 更新源服务器列表
    sudo apt-get update 更新源,包资源索引文件放在/var/lib/apt/lists/
    sudo apt-get upgrade 更新已安装的包
    sudo apt-get install package 安装包
    sudo apt-get remove package 卸载包
    sudo apt-get remove package --purge 卸载包,包括配置文件等
    sudo apt-cache search package 搜索软件包
    sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
    sudo apt-get install package --reinstall 重新安装包
    sudo apt-get -f install 修复安装(fix-missing)
    sudo apt-get build-dep package 安装相关的编译环境
    sudo apt-get dist-upgrade 升级系统
    sudo apt-cache depends package 了解使用该包依赖那些包
    sudo apt-cache rdepends package 查看该包被哪些包依赖
    sudo apt-get source package 下载该包的源代码
    sudo apt-get clean && sudo apt-get autoclean 清理无用的包
    sudo apt-get check 检查是否有损坏的依赖
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    deb包安装

    安装deb软件包命令: sudo dpkg -i xxx.deb (--install)
    删除软件包命令: sudo dpkg -r xxx.deb (--remove)
    连同配置文件一起删除命令: sudo dpkg -r --purge(-P) xxx.deb
    查看软件包信息命令: sudo dpkg -i xxx.deb (--info)
    验证包的完整性:sudo dpkg -V xxx.deb (--verify)
    查看系统中已安装软件包信息命令: sudo dpkg -l
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    源码安装

    1. 解压缩源代码包
    2. 进入源码包目录,参考README文件
    3. ./configure 检测文件是否缺失,创建Makefile,检测编译环境
    4. make 编译源码,生成库和可执行程序
    5. sudo make install 把库和可执行程序,安装到系统路径下
    
    • 1
    • 2
    • 3
    • 4
    • 5

    压缩包管理

    tar

    档案文件(压缩包)管理程序

    tar [操作参数+选项] 文件或者目录

    • 操作参数
    	c --create 创建新的压缩包
    	r --append 给压缩包追加文件
    	t --list 列出压缩包的内容
    	u --update 更新文件
    	x --extract 从档案文件中释放文件。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 常用选项
    f --file 使用档案文件或设备
    v --verbose 详细报告tar处理的文件信息
    w --interactive 每一步都要求确认。
    z --gzip 
    j --bzip2
    J --xz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20221104221813900

    image-20221104223030387

    rar

    需要安装 sudo apt install rar

    rar [- -] archive [files...] [@listfiles...] [path_to_extract]

    image-20221104224216694
    image-20221104224426567

    zip

    image-20221104224738393

    进程管理

    who

    查看当前在线上的用户情况。
    image-20221104225011010

    ps

    image-20221104225713236

    image-20221104230226104

    jobs

    用来显示当前shell 下正在运行哪些作业(即后台作业)

    fg

    fg [job…]

    把指定的后台作业或挂起作业移到前台运行。

    bg

    bg [job…]
    把被挂起的进程提到后台执行。 其中,job是一个或多个进程的PID、命令名称或者作业号,在参数前要带%号。

    kill

    • 向指定进程发送信号
      kill [ -signal | -s signal ] pid ...

    • 查看信号编号
      kill -l [ signal ]

    image-20221104230853428

    env

    查看当前进程环境变量

    vim ∼/.bashrc 配置当前用户环境变量
    vim /etc/profile 配置系统环境变量,配置时需要有root权限
    
    • 1
    • 2

    image-20221104231615354

    用户管理

    创建用户

    -s 指定新用户登陆时shell类型
    -g 指定所属组,该组必须已经存在
    -G 指定附属组,该组必须已经存在
    -d 用户家目录
    -m 用户家目录不存在时,自动创建该目录
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20221104232612593

    设置用户组

    image-20221104232901544

    设置密码

    sudo passwd ghost1

    切换用户

    su username

    root用户

    sudo su

    删除用户

    userdel 选项 用户名
    image-20221104233221426

    网络管理

    ifconfig

    1.查看网卡信息 
    	ifconfig
    2.关闭网卡 eth0
    	sudo ifconfig eth0 down
    3.开启网卡eth0 
    	sudo ifconfig eth0 up
    4.给eth0配置临时IP
    	sudo ifconfig eth0 IP
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    相关文件

    /proc/net/dev
    /proc/net/if_inet6
    ghost-linux@ghost-linux:~$ sudo cat /proc/net/if_inet6
    00000000000000000000000000000001 01 80 10 80       lo
    fe80000000000000c11f7e1ed3897604 02 40 20 80    ens33
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ping

    ping [选项] 主机名/IP地址

    netstat

    netstat [选项]

    -a 显示所有socket,包括正在监听的。
    -c 每隔1秒就重新显示一遍,直到用户中断它。
    -i 显示所有网络接口的信息,格式同“ifconfig -e”。
    -n 以网络IP地址代替名称,显示出网络连接情形。
    -r 显示核心路由表,格式同“route -e”。
    -t 显示TCP协议的连接情况。
    -u 显示UDP协议的连接情况。
    -v 显示正在进行的工作。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    nsleekup

    nslookup name

    finger

    -s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
    -l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下.plan、.project和.forward文件的内容。
    -p 除了不显示.plan文件和.project文件以外,与-l选项相同。
    
    • 1
    • 2
    • 3

    磁盘管理

    mount

    mount [-t vfstype] -o options device dir

    • 从光盘制作光盘镜像文件。
      cp /dev/cdrom /home/username/mydisk.iso
      dd if=/dev/cdrom of=/home/username/mydisk.iso

    • 文件和目录制作成光盘镜像文件
      mkisofs -r -J -V mydisk -o /home/username/mydisk.iso /home/username/ mydir

    • 建立一个目录用来作挂接点(mount point)
      mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
      使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。

    • 挂载U盘

    1.检测存储设备名称
    	sudo fdisk -l
    2.挂载存储设备sdb1到挂载点/mnt目录
    	sudo mount  /dev/sdb1    /mnt
    3.访问/mnt
    4.卸载/mnt
    	sudo umount /mnt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    umount

    sudo umount 挂载点

    dd

    • 将文件sfile拷贝到文件 dfile中。
      dd if=sfile of=dfile
    • 创建一个100M的空文件
      dd if=/dev/zero of=hello.txt bs=100M count=1

    常用服务器构建

    ftp

    1.安装vsftpd服务器
    	sudo apt-get install vsftpd
    2.配置vsftpd.conf文件
    	sudo vi /etc/vsftpd.conf
    3.重启服务器,重新加载/etc/vsftpd.conf配置文件
    	sudo /etc/init.d/vsftpd restart
    4.进入你家目录下创建一个空目录
    	cd ~
    	mkdir ftpfile
    	chmod 777 ftpfile
    5.测试上传功能,登陆ftp服务器,进入到ftpfile目录
    	ftp IP
    	cd ftpfile
    6.上传命令,可以把你当前目录下的文件上传到ftp服务器的ftpfile目录
    	put somefile
    主要指令
        put 上传文件
        mput 上传多个文件
        get 下载文件
        mget 下载多个文件
        mirror 下载整个目录及其子目录
        mirror –R 上传整个目录及其子目录
        !command 调用本地shell执行命令command
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    image-20221025211049740

    image-20221025211340017

    nfs

    通常做系统移植时可以挂载文件系统

    1.安装nfs服务器
    	sudo apt-get install nfs-kernel-server
    2.设置/etc/exports配置文件
    	/home/用户名/nfs *(rw,sync,no_root_squash)
    	sudo vi /etc/exports
    3.在用户目录下创建nfs目录
    	mkdir /home/用户名/nfs
    4.重启服务器,重新加载配置文件
    	sudo /etc/init.d/nfs-kernel-server restart
    5.在/home/用户名/nfs目录下创建测试文件hello
    	cd /home/用户名/nfs
    	touch hello
    6.测试服务器,把服务器共享目录nfs挂在到/mnt节点
    	sudo mount -t nfs -o nolock -o tcp IP:/home/用户名/nfs /mnt
    7.进入/mnt目录可以看到hello文件,表示构建成功
    8.卸载网络共享目录
    	sudo umount /mnt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    ssh

    可以远程登录linux终端

    1.安装ssh服务器
    	sudo apt-get install openssh-server
    2.远程登陆
    	ssh 用户名@IP
    
    • 1
    • 2
    • 3
    • 4

    telnet

    关机重启

    poweroff

    reboot

    shutdown

    shutdown -t 秒数 [-rkhncfF] 时间 [警告讯息]

    其他命令

    clear

    alias

    alias [-p] name=value …
    将value字符串起个别名叫name,以后在命令行输入name,shell自动将其解释为value

    image-20221104235838131

    echo

    umask

    image-20221105000052697

  • 相关阅读:
    游戏服务器怎么设置防护?游戏服务器安全防护策略
    语法基础(变量、输入输出、表达式与顺序语句)
    备份和恢复Kubernetes集群中的Etcd数据
    只要背着电脑,他可以去任何地方
    浦惠钱包app拉新推广渠道 实时数据
    5个免费 UI、界面设计素材网
    【面试:并发篇39:多线程:线程池】ThreadPoolExecutor类-提交、停止
    计算机网络自学笔记006_Real(网络层002)
    笔试题:金额拆分
    文献阅读总结(4)Graph convolution machine for context-aware recommender system
  • 原文地址:https://blog.csdn.net/Ghost_199503/article/details/127699906