zoukankan      html  css  js  c++  java
  • Linux常用命令

    主要内容来自《Linux达人养成计划I》

    也推荐一下《鸟哥的Linux私房菜》

    命令基本格式

    命令提示符格式

    [role@host directory]sign----[角色@主机名 当前所在目录]提示符

    role: root为管理员(超级用户),可以自己创建用户,比如我为xwk

    host: 主机名,随意设定,默认为localhost。

    directory: 其中~为/home目录(如果登录用户为超级用户,则 ~为/root目录 ),/为根目录。

    sign: 只起到提示当前用户权限的作用,#为超级用户提示符,$为普通用户提示符。

    命令格式

    命令 【选项】【参数】

    当有多个选项时,可以写在一起。

    可以简化选项,比如ls --list 可以简写为 ls -l

    基本命令

    目录相关

    ls

    作用:查询目录中的内容

    格式:ls 【选项】 【文件或目录】(默认为当前目录)

    选项 作用
    显示当前目录下的所有文件
    -a 显示所有文件,包括隐藏文件
    -l 显示详细信息
    -d 查看目录属性
    -h 人性化显示文件大小
    -i 显示inode

    实例

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls -a
    .  ..  Dir1  Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls -l
    总用量 8
    drwxr-xr-x 2 xwk xwk 4096 2月  20 17:26 Dir1
    drwxr-xr-x 2 xwk xwk 4096 2月  20 17:26 Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls -d
    .
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls -d Dir1
    Dir1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls -h
    Dir1  Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls -i
    4603978 Dir1  4603979 Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2
    

    补充:

    ls -l 显示的结果:drwxr-xr-x 2 xwk xwk 4096 2月 20 17:26 Dir1

    0位:d代表目录,还有-文件,|软链接,b块设备文件,c字符设备文件,p管道文件,s sock文件

    1-3位:所有者,rwx,可读可写可执行

    4-6位:所属组,r-x,可读不可写可执行

    7-9位:其他人,r-x,可读不可写可执行

    10位:所含子目录个数

    xwk xwk:所有者 所属组

    后面比较好理解,不做阐述。同时如果是不同的文件类型,第10位有不同的含义。

    mkdir

    作用:创建目录

    格式:mkdir 【-p】 【目录名】

    -p指的是递归创建,不加-p只能在已有的目录下创建一个新的目录,而-p可以先创建一个不存在的目录,然后在该目录下创建新的目录。

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ mkdir Dir3
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir3
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ mkdir -p Dir4/Dir4-1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir3  Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls Dir4
    Dir4-1
    

    cd

    作用:切换目录

    格式:cd 【目录】

    其中cd ~ 切换到当前用户家目录;cd - 切换到上次目录;cd .. 切换到上一级目录

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ cd Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ pwd
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ cd ..
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ pwd
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ cd -
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ cd ~
    (base) xwk@xwk-PC:~$ pwd
    /home/xwk
    (base) xwk@xwk-PC:~$ cd -
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ cd .
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ pwd
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir4
    

    补充:

    相对路径:从当前目录开始,开头不带/,eg:cd dir

    绝对路径:从根目录开始,以/开头,eg:cd /home

    pwd

    格式:pwd

    作用:显示目录所在位置

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ pwd
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir4
    

    rmdir

    格式:rmdir 【目录名】

    作用:删除空目录

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir3  Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ rmdir Dir3
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir4
    

    rm

    格式:rm 【选项】【文件或目录】

    作用:删除文件和目录

    选项 作用
    -i 删除前逐一询问确认
    -f 强制删除,无需确认
    -r 目录以及目录下的文件全部删除

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ rm -rf Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ cd Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ ls
    Dir4-1  text1.txt  text2.txt
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ rm -i text1.txt 
    rm:是否删除普通空文件 'text1.txt'?y
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ ls
    Dir4-1  text2.txt
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ rm -rf *
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir4$ ls
    
    

    补充:

    rm不加选项或者只加选项-i,只能删除文件;

    rm -rf * 删除当前目录下的所有文件和目录。

    cp

    格式:cp 【选项】【原文件或目录】【目标目录】

    作用:复制文件或目录

    选项 作用
    -r 复制目录
    -p 连带文件属性复制(包括文件创建时间等)
    -d 若源文件是链接文件,则复制链接属性
    -a 相当于-pdr
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls Dir1
    text1.txt  text2.txt  txt1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ cp -r Dir1 Dir2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls Dir2
    text1.txt  text2.txt  txt1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ 
    
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir1$ ls -l
    总用量 0
    -rw-r--r-- 1 xwk xwk 0 2月  20 17:26 text1.txt
    -rw-r--r-- 1 xwk xwk 0 2月  20 17:26 text2.txt
    -rw-r--r-- 1 xwk xwk 0 2月  21 11:33 txt1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir1$ cp -p txt1 txt2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir1$ ls -l
    总用量 0
    -rw-r--r-- 1 xwk xwk 0 2月  20 17:26 text1.txt
    -rw-r--r-- 1 xwk xwk 0 2月  20 17:26 text2.txt
    -rw-r--r-- 1 xwk xwk 0 2月  21 11:33 txt1
    -rw-r--r-- 1 xwk xwk 0 2月  21 11:33 txt2
    
    

    mv

    格式:mv 【源文件或目录】【目标目录】

    作用:剪切文件或目录,也可以用来改名

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir1$ ls
    text1.txt  text2.txt  txt1  txt2
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir1$ mv txt2 ../Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest/Dir1$ ls ../Dir4
    txt2
    

    介绍一些特殊目录

    主要是根目录下的一级目录。

    目录名 作用
    bin、sbin、usr/bin、usr/sbin 保存系统命令
    boot 启动目录,保存用户启动数据,不要在次写数据
    dev 特殊文件保存目录,硬件设备等
    etc 系统配置文件的保存目录
    home 普通用户家目录
    root 超级用户家目录
    lib 函数库
    media 挂载外接光盘
    mnt 挂载外接U盘
    misc 挂载外接磁带
    temp 临时文件
    proc、sys 挂载内存,不能操作
    usr 保存系统软件资源
    var 保存系统相关文档

    文件相关

    ln

    格式:ln 【-s】 【源文件】【目标文件】

    作用:生成链接文件

    不加-s为硬链接;加-s为软连接,原文件要写绝对路径。

    硬链接:

    ​ -拥有相同的i节点和存储block块,可以看做是同一个文件。

    ​ -可以通过i节点识别

    ​ -不能跨分区

    ​ -不能针对目录使用

    软连接:

    ​ -类似windows中的快捷方式

    ​ -拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号

    ​ -文件权限为777,不代表目的文件的权限也是777

    ​ -删除原文件,软链接不能使用

    touch

    格式: touch 【-acm】【-r<参考文件或目录>】【-t<日期时间>】

    作用:修改文件或目录的属性,如果文件不存在,则创建新文件。

    选项 作用
    a 改变档案的读取时间记录
    m 改变档案的修改时间记录
    c 如果文件不存在,不会创建
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir4
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ touch txt1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ ls
    Dir1  Dir2  Dir4  txt1
    

    rm,cp,mv

    目录相关中介绍过了。

    locate

    格式:locate 文件名

    作用:搜索文件,在后台数据库中按文件名搜索,搜索速度快。

    后台数据库在/var/lib/mlocate,不是实时更新,通过updatedb命令强制更新数据库实现实时更新。

    并且搜索受/etc/updatedb.conf文件内容限制,主要是一些筛选规则。‘yes’代表不搜索的内荣,‘no’代表搜索的内容。

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ locate txt1
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir1/txt1
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/Dir2/txt1
    /home/xwk/Desktop/CodeSpace/LinuxCommandTest/txt1
    

    find

    格式:find 【搜索范围】【选项】【搜索条件】

    作用:用于搜索文件等

    选项 作用
    -name 按名字搜索(可用通配符)
    -iname 按名字搜索,不区分大小写
    -user 按所有者搜索
    -nouser 查找没有所有者的文件(比如垃圾文件)
    -atime 文件访问时间
    ctime 改变文件属性的时间
    mtime 修改文件内容的时间
    -size 按照空间大小搜索
    -inum 按照i节点编号搜索
    -a and 条件与
    -o or 条件与
    -exec 用选项后的命令处理结果

    涉及时间:+10,10天内;10,10天当天;-10,10天前

    涉及文件大小:+25k,大于25k的文件;25k,等于25k的文件;-25k,小于25k的文件(其他单位:M)

    -exec 命令 {} ; : exec 后面要加上{} ;

    实例:

    # 搜索根目录下所有文件
    find / -name '*'
    # 查找垃圾文件
    find /home -nouser
    # 查/home下大于20K小于50K的文件
    find /home -size +20K -a -size -50K
    # 查/home下大于20K小于50K的文件,并详细显示
    find /home -size +20K -a -size -50K -exec ls -l {} ;
    

    帮助命令

    man

    格式:man [-f/number] 命令

    作用:获取指定命令的帮助

    不同的数字代表命令的不同等级(命令,可被内核调用的函数,配置文件等)

    实例:

    # 查看ls的帮助文件
    man ls
    # 查看ls有哪些等级帮助文件
    man -f ls
    # 查看passwd等级为5的帮助文件
    man 5 passwd
    

    whatis

    相当于man -f 命令

    apropos

    格式:apropos str

    作用:查找所有包含str的帮助文件

    相当于man -k str

    --help

    格式:命令 --help

    作用:查看命令的选项帮助

    help

    格式:help shell命令

    作用:获取shell命令的帮助

    info

    格式:info 【选项】 命令

    作用:获取命令的帮助信息

    (deepin默认没有安装info)

    在返回的帮助信息中,回车-进入子页面;u-进入上层页面;n-进入下一页;p-进入上一页;q-退出

    压缩和解压缩

    不同的压缩方式用后缀名区别,压缩包用红色显示

    .zip

    # 压缩命令:
    zip 压缩文件名 源文件
    zip -r 压缩目录名 源目录
    
    # 解压缩:
    unzip 压缩文件
    

    .gz

    # 压缩:
    gzip 源文件 # 源文件会消失
    gzip -c 源文件 > 压缩文件 # 源文件保留下来
    gzip -r 目录 # 压缩目录下所有的子文件
    
    # 解压缩
    gzip -d 压缩文件
    gunzip 压缩文件
    gunzip -r 目录 # 解压目录下的压缩文件
    

    .bz2

    # 不能压缩目录
    # 压缩
    bzip2 源文件 #不保留源文件
    bzip2 -k 源文件 #保留源文件
    
    # 解压缩
    bzip2 -d 压缩文件 #不保留源文件
    bzip2 -dk 压缩文件 #保留压缩文件
    bunzip2 压缩文件 #不保留源文件
    bunzip2 -k 压缩文件 #保留压缩文件
    

    .tar

    # 用于将目录打包,然后可以用.gz或者.bz2压缩,实现目录压缩
    # 打包
    tar -cvf 打包文件名 源文件 # -c:打包,-v:显示过程,-f:指定打包后的文件名
    
    # 解打包
    tar -xvf 打包文件 # -x:解打包
    

    .tar.gz

    # 一步直接到.tar.gz
    # 压缩
    tar -zcvf 压缩包.tar.gz 
    tar -zcvf 压缩包.tar.gz 源文件1 源文件2 源文件3 # 压缩多个文件
    
    # 解压缩
    tar -zxvf 压缩包.tar.gz
    tar -zxvf 压缩包.tar.gz -C 指定目录 # 指定解压缩位置
    
    # 查看压缩包内容但是不解压
    tar -ztvf 压缩包
    

    .tar.bz2

    # 一步直接到.tar.bz2,命令与.tar.gz类似
    # 压缩
    tar -jcvf 压缩包.tzr.bz2 源文件
    
    # 解压缩
    tar -jxvf 压缩包.tzr.bz2
    

    关机和重启

    shutdown

    格式:shutdown [选项] 时间

    常用shutdown进行关机和重启

    选项:

    -c,取消前一个关机命令

    -h,关机

    -r,重启

    shutdown -r 23:00
    shutdown -c # 上一条重启命令被撤销
    shutdown -r now
    

    halt,poweroff,init 0

    关机命令,不常用

    reboot,init6

    重启命令,reboot常用,init 6不常用

    其他

    whereis

    格式:whereis [选项] 命令名

    作用: 搜索系统命令所在的路径,以及帮组文档所在的位置(找不到shell自带的命令,比如cd)

    -b 只查找可执行文件

    -m 只查找帮助文件

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ whereis ls
    ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ whereis -b ls
    ls: /usr/bin/ls
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ whereis -m ls
    ls: /usr/share/man/man1/ls.1.gz
    

    which

    格式:which 文件名

    作用:查看命令以及对应的别名(找不到shell自带的命令,比如cd)

    实例:

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ which ls
    /usr/bin/ls
    

    grep

    格式:grep [选项] 字符串 文件名

    命令:搜索文件内容与字符串匹配的行

    -i 忽略大小写

    -v 排除指定字符串

    字符串可以用正则表达式代替

    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ grep -i 'line1' txt1
    line1  -1
    (base) xwk@xwk-PC:~/Desktop/CodeSpace/LinuxCommandTest$ grep -v 'line1' txt1
    line2  -2
    line3  -3
    line4  -4
    line5  -5
    

    挂载

    Linux中一切皆文件,可以将其看做为一棵文件树,挂载就是将新的文件接入到文件树上。可以挂载硬盘,U盘,鼠标,键盘等等。

    mount

    格式: mount 【-t 文件系统】【-o 特殊选项】 设备文件名 挂载点(目录)

    作用:查询和挂载

    -t 文件系统:eg:ext3,ext4,iso9660

    mount # 查询已经挂载的设备
    mount -a # 根据配置文件/etc/fstab的内容,自动挂载
    mount -o remount,noexec /home/ # 重新挂载home,设置为不允许执行可执行文件
    mount -o remount,exec /home/ # 改回来
    
    # 挂载光盘
    mkdir /mnt/cdrom/  # 建立挂载点
    mount -t iso9660 /dev/sr0 /mnt/cdrom/ # 挂载光盘
    

    umount

    格式:mount 设备文件名或者挂载点

    作用: 卸载

    umount /dev/sr0
    

    w

    格式:w 用户名

    作用:输出用户信息

    USER:登录用户名;

    TTY:登录终端;

    FROM:从哪个IP地址登录;

    LOGIN@:登录时间;

    IDLE:用户闲置时间;

    JCPU:指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;

    PCPU:是指当前进程占用的时间;

    WHAT:当前正在运行的命令。

    w # 输出所有用户信息
    w xwk # 输出用户xwk的信息
    

    who

    格式:who 用户名

    作用:输出用户信息

    输出:用户名 登录终端 登录时间

    last

    格式:last

    作用:查询当前和过去登录的用户

    输出:用户名 登录终端 登录IP 登录时间 退出时间

    lastlog

    格式:lastlog

    作用:查看所有用户最后一次登录时间

    输出:用户名 登录终端 登录IP 最后一次登录时间

    环境变量

    • /etc/environment:用于为所有进程设置环境变量,是系统登录时读取的第一个文件,与登录用户无关,修改后需要重启系统生效。
    • /etc/profile:用于设置针对系统所有用户的环境变量,是系统登录时读取的第二个文件,与登录用户无关。
    • ~/.profile:用于当前用户的profile文件,用于设置用户的工作环境,只执行一次。
    • ~.bashrc:对应当前用户的bash初始化文件,每打开一个终端就会被执行一次。
  • 相关阅读:
    Eclipse 中怎样自动格式化代码?
    如何使用Jfreechart生成柱状图?
    ADT OOP
    5.2 Construction for Reuse
    Lab6实验的一些思考
    软件构造的八个多维视图
    软件构造笔记5.1 Metrics, Morphology and External Observations of Reusability
    事后诸葛亮之感谢
    (Model)针对编译错误的友好提示
    第二次结对作业
  • 原文地址:https://www.cnblogs.com/xiaowk/p/14621286.html
Copyright © 2011-2022 走看看