linux常用指令及参数

常用系统指令

  clear     清理屏幕(终端) 

  reboot   重启

  poweroff    关机

  shutdown -h now    关机(root用户使用)

  shutdown -h 10      10分钟后自动关机

  man   系统帮助命令 (1:用户命令   2:系统调用   3:C库函数  4:设备和特殊文件  5:文件格式和约定   6:游戏和演示     如:man 1 ls  )

  普通用户切换到root用户,执行指令:su root  然后输入用户密码即可。

  root用户切换到普通用户,执行指令:su kerson(kerson为用户名字)。此时不需要输入密码。

  rm +文件名 -rf      -r表示删除的是目录,-rf表示强制删除(慎用)

一、磁盘管理命令

  1、ls    目录查询   (磁盘管理)

    命令功能 :(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。

    参数 :

    ● -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)

    ● -d 只列出目录(不递归列出目录内的文件)。

    ● -l 以长格式显示文件和目录信息,包括权限、所有者、大小(字节)、创建时间等。

    ● -r 倒序显示文件和目录。

    ● -t 将按照修改时间排序,最新的文件在最前面。

    ● -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

    ● -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

    ● -R 递归显示目录中的所有文件和子目录。

      例如ls -al 可查看改目录下所有文件信息,链接文件会在文件后跟实际链接路径。也可使用 ls -l

          查找某个文件路径:ls /usr/local/bin/*-gcc

  2、cd  切换目录   (磁盘管理)

    实例:

      跳到 /usr/bin/ :     cd /usr/bin

      跳到自己的 home 目录 :   cd ~ 或 cd 

      跳到目前目录的上上两层 :   cd ../..

  3、pwd 显示路径  (磁盘管理)

    命令功能 : (英文:print work directory) 命令用于显示工作目录,执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。

    实例:进到该路径下执行即可。

  4、mkdir  创建目录--即文件夹  (磁盘管理)

    实例:创建test文件夹:mkdir  test

  5、du   显示磁盘空间  (磁盘管理)

    命令功能 :显示指定的目录或文件所占用的磁盘空间。 

    参数说明

    ● -a或-all 显示目录中个别文件的大小。

    ● -b或-bytes 显示目录或文件大小时,以byte为单位。

    ● -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

    ● -D或--dereference-args 显示指定符号连接的源文件大小。

    ● -h或--human-readable 以K,M,G为单位,提高信息的可读性。

    ● -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。

    ● -k或--kilobytes 以1024 bytes为单位。

    ● -l或--count-links 重复计算硬件连接的文件。

    ● -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。

    ● -m或--megabytes 以1MB为单位。

    ● -s或--summarize 仅显示总计。

    ● -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。

      实例:du -h +文件名

      cat /proc/mtd  :可查看mtd下所有磁盘分区的偏移地址。

   磁盘管理

  sudo fdisk -l 列出所有磁盘   向sdf磁盘写test.bin文件可直接使用  test.bin /dev/sdf

  6、sync 数据同步  (磁盘维护)

    命令说明:用于数据同步,sync命令是在关闭Linux系统时使用的。

    Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。

  7、touch 创建文件  (文件管理)

    命令说明:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

    实例:创建test文件:touch test  

 二、文件管理

  1、查看文件命令(文件管理)

    cat命令:             cat+文件名(终端显示整个文件)

    head命令:  head -c 30 /dev/mtd7(查看前30字节显示在终端上)

    tail 命令:          tail -c  1025 /path/to/file (从文件的第 1025 个字节开始显示到终端上,用法同上)

  2、cp  复制文件或目录  (文件管理)

    参数说明

    ● -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

    ● -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。

    ● -f:覆盖已经存在的目标文件而不给出提示。

    ● -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。

    ● -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

    ● -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

    ● -l:不复制文件,只是生成链接文件。

    实例:

      使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:

        $ cp r test/ newtest   

  3、mv   目录移动和重命名  (文件管理)

    命令功能:命令用来为文件或目录改名、或将文件或目录移入其它位置。 

    参数说明

    ● -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。

    ● -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。

    ● -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。

    ● -n: 不要覆盖任何已存在的文件或目录。

    ● -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

      实例:  

        将文件 aaa 改名为 bbb :

          mv aaa bbb

        将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。

          mv info/ logs 

        再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:

          mv /usr/runoob/*  . 

  4、find   查找文件和目录  (文件管理)

    参数说明:(只列举了常用参数)

    ● -name pattern:按文件名查找,支持使用通配符 * 和 ?

    ● -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。

      实例:查找当前目录下名为 file.txt 的文件:find . -name file.txt    ,如果不指定路径会把所有该文件名及路径打印出来。

  5、which  查找文件(只会找在环境变量$PATH设置过的)(文件管理)

    which [文件...]

    参数说明:

    ● -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

    ● -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。

    ● -w  指定输出时栏位的宽度。

    ● -V  显示版本信息。

    

  6、grep   查找字符串   (文件管理)

    常用参数:

    ● -i:忽略大小写进行匹配。

    ● -v:反向查找,只打印不匹配的行。

    ● -n:显示匹配行的行号。

    ● -r:递归查找子目录中的文件。

    ● -l:只打印匹配的文件名。

    ● -c:只打印匹配的行数。

      实例:在文件夹 dir 中递归查找所有文件中匹配字符串 "hello" 的行,显示文件名和行号:grep -nr “hello” /path,可加sudo

  7、file   查看文件类型   (文件管理)

    命令说明:如果是可执行文件,可以查看该执行文件运行于哪种架构

    实例:显示文件类型:file install.log

    install.log: UTF-8 Unicode text

  8、tar  压缩解压命令   (文件管理) (tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等)   

    压缩:调用 gzip     .gz(后缀):  tar -czvf +想压缩成的文件名+tar.gz  +压缩文件     解压tar -xzvf +压缩文件

      压缩: 调用 bzip2   .bz2(后缀):tar -cjvf +想压缩成的文件名+tar.bz2  +压缩文件   解压:tar -xjvf +压缩文件

    解压:.xz结尾的     xz -d +压缩文件 (会解压成tar压缩文件,再用tar -xvf解压)

         .zip 解压 unzip +压缩文件

     示例:tar -cjvf rootfs.tar.bz2 rootfs/ (压缩包后缀也要写上),如果要进入rootfs内部目录压缩所有文件,可以用通配符*

  9、ln 链接(文件管理)

    命令功能 :
    Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

    不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 

    软链接

      有时我们可能会看到类似这样的文件,点击属性查看提示“链接(已断)”,顾名思义这是一个链接文件,类似windows下的快捷方式,如图,该文件提示链接目标没有上级目录,表示就在链接文件就在该目录下,如果删除目录下的该文件,就会提示“链接(已断)”。

      

         使用场景:在不同的目录用相同文件时,不需要在每个目录下都放一个相同的文件,只要在需要用到的目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。

           ● 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

      ● 2.软链接可以 跨文件系统 ,硬链接不可以

      ● 3.软链接可以对一个不存在的文件名进行链接

      ● 4.软链接可以对目录进行链接      

    硬链接
      硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

    ● 1.硬链接,以文件副本的形式存在。但不占用实际空间。

    ● 2.不允许给目录创建硬链接

    ● 3.硬链接只有在同一个文件系统中才能创建

    参数

    ● -backup[=CONTROL] 备份已存在的目标文件

    ● -b 类似 --backup ,但不接受参数

    ● -d 允许超级用户制作目录的硬链接

    ● -f 强制执行

    ● -i 交互模式,文件存在则提示用户是否覆盖

    ● -n 把符号链接视为一般目录

    ● -s 软链接(符号链接)

    ● -v 显示详细的处理过程

    实例

      给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效,跨文件时使用绝对路径。

          ln -s log2013.log link2013

      给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同。

         ln log2013.log ln2013

  10、chmod命令  (控制用户对文件的权限的命令)

    Linux/Unix 文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

 

    

     参数

     ● u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

    ● + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

    ● r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

    实例:

      将文件 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt  或  chmod a+r file1.txt  删除则是:chmod a-r file1.txt

      将目录下的所有文件与子目录皆设为任何人可读取 : chmod -R a+r *  或chmod 777 file

    其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1  同理:rw = 6

三、网络通讯命令

  1、ifconfig 显示或设置网络设备 (网络通讯)

     启动或关闭指定网卡
      
# sudo ifconfig ens33 down(关闭网卡--断网)
      # sudo ifconfig ens33 up(开启网卡--联网)

     为网卡配置和删除IPv6地址

      # ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址
      # ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

       用ifconfig修改MAC地址

      # ifconfig eth0 down //关闭网卡
      # ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
      # ifconfig eth0 up //启动网卡
      # ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址 
      # ifconfig eth1 up //启动网卡

       配置IP地址

      # ifconfig eth0 192.168.1.56    //给eth0网卡配置IP地址
      # ifconfig eth0 192.168.1.56 netmask 255.255.255.0     // 给eth0网卡配置IP地址,并加上子掩码
      # ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 // 给eth0网卡配置IP地址,加上子掩码,加上个广播地址

      启用和关闭ARP协议

      # ifconfig eth0 arp  //开启
      # ifconfig eth0 -arp  //关闭

       设置最大传输单元

      # ifconfig eth0 mtu 1500 //设置能通过的最大数据包大小为 1500 bytes

        重启网络

      sudo systemctl restart NetworkManager

四、软件安装

  1、apt    软件安装

    命令功能 :查找、安装、升级、删除某一个、一组甚至全部软件包的命令,执行需要超级管理员权限(root)。

    参数(常用) :

    ● 列出所有可更新的软件清单命令:sudo apt update

    ● 升级软件包:sudo apt upgrade

    ● 列出可更新的软件包及版本信息:apt list --upgradeable

    ● 升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

    ● 安装指定的软件命令:sudo apt install <package_name>

    ● 安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

    ● 更新指定的软件命令:sudo apt update <package_name>

    ● 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

    ● 删除软件包命令:sudo apt remove <package_name>

    ● 清理不再使用的依赖和库文件: sudo apt autoremove

    ● 移除软件包及配置文件: sudo apt purge <package_name>

    ● 查找软件包命令: sudo apt search <keyword>

    ● 列出所有已安装的包:apt list --installed

    ● 列出所有已安装的包的版本信息:apt list --all-versions

      实例:查看一些可更新的包:sudo apt update

         升级安装包:sudo apt upgrade  

      重新安装软件:如:sudo apt-get install --reinstall gcc   (安装了一个旧版,总是更新不到新版,用这个指令后跟新到新版本了)

      查看软件版本:软件名+ --version

      卸载软件: 如:sudo apt-get remove gcc     安装指定版本:sudo apt-get install gcc-9 g++-9

五、系统命令

  1、查询和修改系统时间:

   (1)、查询系统时间:date
   (2)、修改系统时间:date -s "2022-12-20 16:05:50"

   (3)、查询硬件时间:hwclock --show
   (4)、修改硬件时间:hwclock --set --date="19/12/2022 19:23:40"

 

     
 
 
 
posted @ 2023-04-01 22:15  耿通宇  阅读(551)  评论(0编辑  收藏  举报