Linux常用命令总结

linux的文件系统是一个 树形结构,
绝对路径和相对路径
绝对路径:相对于根目录的路径
相对路劲:相对于当前所在路径的路径
.      当前路径
..     上一路径

一、快捷键

        1.点击左侧的终端图标来开启一个终端;
        2.使用快捷键 ctrl + alt + t 打开一个新的终端;
        3.使用快捷键 ctrl + shift + n 开开一个同路径的新终端;
        4.使用快捷键 ctrl + shift + t 左右分屏打开同路径的终端;
        终端字体放大: ctrl shift + (不是小键盘的+ 是 = 对应的 +)
        终端字体缩小: ctrl -
        linux中复制 粘贴 ctrl shift c 和 ctrl shift v

二、命令行提示符

        linux@hqyj:~$
                linux : 当前登录的用户名
                @ 分隔符
                hqyj:主机名(暂时用户到)
                ~:用户当前所在的路径 ~表示用户的家目录
                打开一个新终端,一般默认是在用户的家目录下
                可以使用 pwd 命令来查看当前所在路径
                        $:表示用户的权限
                        $:普通用户
                        #:管理员用户(root)
                        普通用户只能操作自己的家目录下的文件,管理员用户拥有系统所有的权限。
                su 用户名 可以切换用户
                exit 退出当前用户,如果退到第一个登录的用户了,再输入exit 表示退出终端
注意:命令行提示符是提示给操作人员看的,他是可以通过环境变量PS1来修改的。

三、linux常用命令

        linux 的命令的格式
        命令 选项 参数 (有些命令是没有选项和参数的 直接输入命令即可)
        一般而言,选项都是 -xx -xxx ,参数都是一个路径
        注意:命令和选项之间,选项和参数之间一定要有空格
                输入命令后 按回车生效

1.whoami命令

        显示当前使用的用户

2.pwd命令

        显示当前所在的路径 (绝对路径)

3.ls 命令

        ls     列出当前所在路径下的所有文件
        ls 路径名     列出指定路径下的所有文件,路径名既可以是绝对路径,也可以是相对路径
        ls -a     列出当前路径下的所有文件(包括隐藏文件,linux中,以 . 开头的都是隐藏文件)
        ls -l    (小写的L)列出当前路径下的所有文件的详细信息
        ls -lh    列出当前路径下的所有文件的详细信息,文件的大小会自动转换单位 ( K M G ..)

4.cd 命令

        cd 路径名         进入指定路径,绝对路径,相对路径均可
        cd .         进入当前路径,没动
        cd ..         进入当前路径的上一级路径
        cd /         进入根目录
        cd ~         进入用户的家目录 cd 直接敲回车 也是进入家目录
        cd -         进入上一次所在路径

5.mkdir命令

        mkdir dir1         在当前路径下创建一个名字为 dir1 的目录文件
        mkdir ../dir2         在当前路径的上一级路径下创建一个名字为 dir2 的目录文件
        mkdir dir1 dir2 dir3         在当前路径下创建三个目录文件,分别叫做 dir1 dir2 dir3
        mkdir -p dir1/dir2/dir3         在当前路径的dir1目录下嵌套创建 dir2/dir3

6.rmdir命令

        rmdir 目录名         删除一个目录文件(要求必须是空目录) --不常用

7.touch命令

        touch 文件名         如果文件不存在,则表示创建一个名为 文件名 的新文件 如果文件存在,表示更新文件的时间戳

8.rm 命令

        rm 文件名         删除一个文件
                                如果文件是一个目录文件,需要加 -r 选项
        rm -f 文件名 忽略提示信息,强制删除文件

9.cp 命令

        cp file1 file2         如果file2不存在,表示将当前路径下的 file1 复制一份儿起名为file2
                                    如果file2存在,会讲file1复制一份儿 覆盖file2
        cp 文件名 目录名        将文件复制一份儿,放到目录名对应的目录下
        cp -r dir1 dir2         如果dir2不存在,表示将目录dir1 复制一份儿,起名为 dir2
                                      如果dir2存在,表示将目录dir1 复制一份儿 放到目录dir2里面

10.mv 命令

        mv file1 file2         如果file2不存在,表示将file1 重命名为file2
                                     如果file2存在,表示将file1 重命名为file2,会覆盖原来的file2
        mv 文件名 目录名         将文件移动到目录里
        mv dir1 dir2          如果目录dir2 不存在,表示将目录dir1 重名名为 dir2
                                     如果目录dir2存在,表示将目录dir1放到目录dir2里面

11.exit 命令

        如果涉及到用户切换,表示退回上一个用户,
        如果已经是打开终端时的第一个用户了,那么表示关闭当前终端

12.clear 命令

        清屏 (或者使用快捷键 ctrl + l) 注意,是小写的L

13.cat 命令

        cat 文件名         查看文件内容
        cat -n 文件名         带行号显示文件内容
         cat 文件名 1 文件名 2 > 文件名3         合并文件 1 2 到文件 3
        
        > : 将内容重定向到某个文件中,如果文件不存在则创建这个文件
        附加:         vi ***.c ***.c ..... -O --> 在一个终端窗口同时打开多个文件

14.离线安装软件的命令 ---> dpkg命令

        离线安装软件,不会自动的安装依赖文件,需要自己手动安装依赖文件
        1. 安装离线的软件sl         sudo dpkg -i sl_3.03-17build2_amd64.deb
        2. 运行软件 (小火车的程序)         sl(软件名)
        3. 卸载        sudo dpkg -r sl(软件名)
        4. 查看安装的列表         sudo dpkg -l sl(软件名)
        5. 查看软件安装的路径         sudo dpkg -L sl(软件名)
        6. 查看软件安装的状态         sudo dpkg -s sl(软件名)
        7. 完全卸载         sudo dpkg -P sl(软件名)

15.在线安装软件的命令 ---> apt-get  

        ubuntu必须可以连接外网,如果又依赖文件,会自动的安装依赖文件
        1. 从哪里获取软件包 ---> 软件源 ( 清华源,阿里源,网易源, 163 )
                https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
                软件源的列表在 /etc/apt/sources.list文件中
        1> 对 sources.list 进行备份
                sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
        2> 将清华源的连接拷贝到 /etc/apt/sources.list 文件中
                sudo vi /etc/apt/sources.list
        3> 更新源 ( 将服务器上的软件列表更新到本地,提供检索速度 )
                sudo apt-get update ====> /var/lib/apt/lists/
              (第一次更新可能会比较慢)
        4> 下载软件并安装软件
                sudo apt-get install 软件名         下载的安装包的路径 ==>/var/cache/apt/archives
                sudo apt-get install oneko //安装追⿏ 标的
                sudo apt-get install frozen-bubble //安装泡泡⻰
                sudo apt-get install cmatrix //代码⾬
                sudo apt-get install bastet //俄罗斯⽅
                oneko & ---> 后台运行程序
        5> 卸载软件
                sudo apt-get remove 软件名
        6> 下载软件包但是不安装
                sudo apt-get download 软件名
        7> 下载软件的源码包
                sudo apt-get source 软件名
        出现以下错误,
                E: You must put some 'deb-src' URIs in your sources.list
                修改/etc/apt/sources.list文件,将 deb 开头的链接注释,
                将deb-src开头的链接取消注释。
        8>清除下载的软件包
                sudo apt-get clean //清空这个/var/cache/apt/archives 录下的软件包

16.文件内行数,单词数,字符数,统计的命令 ---> wc

        wc 文件名
        wc -l 文件名 == 》 回显文件的行数
        wc -w 文件名 == 》 回显文件的单词数
        wc -c 文件名 == 》 回显文件的字符个数

17.文件查看的命令 --> head tail

        head 文件名 ==》 回显文件,默认只回显前10行
        head -1 文件名 ==》 回显文件的1行
        head -5 文件名 ==》 回显文件的5行
        tail 文件名 ==》 回显文件,默认只回显后10行
        tail -1 文件名 ==》 回显文件的最后1行
        tail -5 文件名 ==》 回显文件的最后5行

18.管道符 ---> |

        格式: shell 命令 1 | shell 命令 2 | shell 命令 3 ......
        前一个命令的输出作为后一个命令的输入
        eg : 只回显 main 函数这一行 , 目前来说必须知道 main 函数在第几行
        head -2 3.c | tail -1
        grep "main" 3.c -nwR

19.查看文件格式的命令 --> file

        格式 : file 文件名
        eg: 使用 file 命令查看 a.out 文件的格式
        a.out: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
        dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
        BuildID[sha1]=fc8dcee0d420f03dcbeef7b66713780c6c419707, for GNU/Linux 3.2.0,
        not stripped
解释:
a.out: --->         查看的文件名
ELF --->         格式, 可执行链接格式 (Executable and Linkable Format, ELF)
64-bit --->         64 位可执行程序
LSB shared object, --->         小端对齐
x86-64, --->         x86-64位的架构
version 1 (SYSV), --->         版本
dynamically linked, --->         动态链接
interpreter /lib64/ld-linux-x86-64.so.2, --->         库
-->BuildID[sha1]=fc8dcee0d420f03dcbeef7b66713780c6c419707, for GNU/Linux 3.2.0,
not stripped --->         没有压缩

20.文件内中字符串搜索的命令 --> grep

参数 :
        -n ---> 显示行号
        -R ---> 递归
        -i ---> 忽略大小写
        -w ---> 按照单词进行搜索
        grep "main" ./ -nR 递归搜索当选目录下所有的 main 字符串
        grep "main" ./ -niR 递归搜索当选目录下所有的 main 字符串 , 不区分大小写
        grep "main" ./ -niwR 递归搜索当选目录下所有的 main 单词,不区分大小写
         注: 单词中可以包含某个字符串
                ^ : 搜索行的头为某个字符串的
                $ : 搜索行的尾为某个字符串的

21.文件位置查找的命令 --> find

        格式 : find 路径 -name 要查找的文件名
        使用场合: 知道文件的名字,可以使用find 命令查看文件所在的路径
        find ./ -name 文件名 --- 》 当前路径查找某个文件
        find . -name 文件名 --- 》 当前路径查找某个文件
        find -name 文件名 --- 》 当前路径查找某个文件
        find . -name *字符串 *.txt --- 》 当前路径查找所有文件名中有某个字符串的
        eg :
                sudo find / -name passwd ---> 结果 /etc/passwd

22.文件中字符串剪切的命令

        格式: cut -d " 分隔符 " -f 域 文件名
        案例: passwd 文件中的内容剪切
                linux:x:1000:1000:linux,,,:/home/linux:/bin/bash
                    1   2    3      4        5              6               7          ----> 域
                (此时“:”就为分隔符)
        cut -d ":" -f 6 passwd ---》 剪切 6
        cut -d ":" -f 1,6 passwd ---》 剪切 1 6
        cut -d ":" -f 1,2,3,4,6 passwd ---》 剪切 1,2,3,4 6
        cut -d ":" -f 1-4,6 passwd ---》 剪切 1 4 6
        eg : 搜索 linux 用户,并剪切用户名 及用户的家目录字符串
                grep "^linux" ./passwd -R | cut -d ":" -f 1,6

23.echo回显命令的使用

        echo : 回显某个变量的值,或者某个字符串到终端
        格式 : echo ${ 变量名 }
                     echo 字符串
        eg :
        linux@ubuntu:~/22021/day02$ echo hello world
        结果:hello world
        linux@ubuntu:~/22021/day02$ str="hello world" 定义变量
l        inux@ubuntu:~/22021/day02$ echo ${str} 回显变量的值
        结果:hello world
重定向的命令
        > : 将某个字符串重定向到某个文件中,如果文件不存在则创建,如果文件存在,将文件中的内容清除,在将字符串重定向到文件中
        >> : 追加重定向
              将某个字符串重定向到某个文件中,如果文件不存在则创建,追加字符串到文件中,如果文件存在,则从文件的末尾追加字符串。
注意: 任何一个 shell 命令的执行只要有输出的结果都可以将输出内容重定向到某个文件中。
                cat passwd > passwd.bak

24.通配符

        touch a1.c a2.c a3.c a4.c aa.c ab.c ac.c ad.c ae.c af.c aaa.c bbb.c
        1. * : 通配任意长度,任意字符
                ls *.c
                结果:a1.c a2.c a3.c a4.c aa.c ab.c ac.c ad.c ae.c af.c aaa.c bbb.c
        2. ? : 通配一个字符
                ls a?.c
                结果:a1.c a2.c a3.c a4.c aa.c ab.c ac.c ad.c ae.c af.c
        3. [] : 通配中括号中的任意一个字符
                ls a[1234].c 通配字符为1 2 3 4 的文件
                结果:a1.c a2.c a3.c a4.c
                ls a[a-f].c 通配字符为a-f 的文件
                结果:aa.c ab.c ac.c ad.c ae.c af.c
                ls a[1-4].c 通配字符为1-4 的文件
                结果:a1.c a2.c a3.c a4.c
                ls a[^a-f].c 通配除了字符为a-f 的文件
                结果:a1.c a2.c a3.c a4.c
25. 文件属性操作的相关命令
        1. 改变文件的属性 chmod
                格式 : chmod 属性 文件名
                        + : 增加新的属性,其他原有的属性不变
                        - :减少属性,其他原有的属性不变
                        = :修改属性,其他的属性都变成-
                chmod u+x a1.c --> 给用户添加执行的权限
                chmod a+x a1.c --> 给用户,组,其他添加可执行权限
                chmod g-w a1.c --> 给组删除写的权限
                chmod o=w a1.c --> 给其他的用户设置为只写的权限
                chmod u-wx a1.c --> 给用户添加写和可执行权限
                chmod ug+wx a1.c --> 给用户和组添加写和可执行的权限
                chmod 0777 a1.c --> 给用户,组,其他设置为读,写,可执行权限
                 解释:0777
                0 ---> 八进制
                        第1个7 ---> 用户: 4(r) + 2(w) + 1(x)
                        第2个7 ---> 组 : 4(r) + 2(w) + 1(x)
                        第3个7 ---> 其他: 4(r) + 2(w) + 1(x)
                chmod 0666 a1.c 给用户,组,其他设置为读,写的权限
        
        2. 链接数
                如果是目录,链接数表示当前目录下的子目录的个数
                如果是文件,链接数表示当前文件的硬链接的个数
                创建链接文件的命令: ln
                2.1 创建软连接文件
                ln -s 绝对路径/ 被链接的文件 决定路径 / 软连接文件
                eg:
                linux@ubuntu:~/22021/day02$ ln -s ~/22021/day02/a1.c
                ~/22021/day02/sa1.c
                linux@ubuntu:~/22021/day02$ ls -al
                lrwxrwxrwx 1 linux linux 28 Mar 3 22:51 sa1.c -> /home/linux/22021/day02/a1.c
                注意软连接文件的名字的颜色。
                
                1>.如果删除链接⽂ 件被链接的 件依然存在
                2>.如果删除被链接⽂ 件,链接就会被断开,链接 件还会存在(内容为空)。
                     如果恢复被链接的⽂件,链接⼜ 会重新 效。
                3>.软链接可以链接⽬
                eg:给共享目录在家目录下创建一个软连接文件
                        ln -s /mnt/hgfs/share/ ~/share
                4>.对⽂ 件或者 录创建软链接,链接数不会增加
                5>.软链接⽂ 件的类型是 l, 跟被链接的 件没有关系
                注: windows 中不 linux 系统中的软连接,
                以后在解压缩tar.xz tar.bz2 tar.gz的文件时,在 ubuntu 使用 tar 命令进行拆包和解
                压缩有可能压缩文件中会存在软连接文件。
                2.2 创建硬连接文件
                ln 绝对路径/ 被链接的文件 决定路径 / 硬连接文件
                1>.硬链接只能连接⽂ 件,不能链接
                2>.当创建了硬链接之后,硬链接数会增加
                3>.硬链接⽂ 件相当于给 件起别名,在内存上只占 ⽤⼀ 件的 ⼤⼩
                删除链接⽂件或者被链接的 件, 件依然存在,并且可以正常使
                只有硬链接数为0的时候, 件才会从硬盘中删除掉。
                4>.硬链接不能夸⽂ 件系统
                5>.硬链接⽂ 件的 inode 号相同( 件系统管理 件的编号)
                        ls -i : 查看文件的inode号
                 总结:
                创建链接文件时不建议使用相对路径,如果改变了链接文件的路径,
                此时链接就会断开,链接文件不可以正常使用。
                如果创建链接文件时使用的时绝对路径,改变了链接文件的路径,
                链接也不会断开,链接文件依然可以正常使用。
        3. 修改文件所属的用户和组 chown
                chown root:root a1.c 将a1.c 所有的用户和组都改为 root
                chown :root a2.c 将a2.c 所属的组修改为 root
                chown root a4.c 将a4.c 所属的用户修改为 root
                chown root: a3.c a1.c 所有的用户和组都改为 root
        4. 修改文件所属的组 ---> chgrp
                chgrp linux a2.c 将a2.c 所属的组修改为 linux

26.开关机相关的命令(慎用)

        关机:
                sudo shutdown 17:10 ==> 在17 10 分关机
                sudo shutdown +10 ==> 10分钟之后关机
                sudo shutdown now ==> 立即关机
        重启:
                sudo shutdown -r 17:20 ==> 17:10 分重启
                sudo shutdown -r +10 ==> 10分钟之后重启
                sudo shutdown -r now ==> 立即重启 或者 sudo reboot

27..c文件补齐 设置:     

        vi .vim/snippets/c.snippets
        在文件最后面的 snippet main 下面 加如两行(注意以table键开头, 空行也要有table 键开头)
        
        然后 :wq 保存退出即可
        修改之后,打开任意的 .c 文件 输入main后按table键即可补齐
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值