Linux简单命令

隐身守侯 提交于 2020-01-15 05:14:39

**Linux学习命令总结**

一般都在家目录操作
cd ~

1. 学习命令文档
    man + 命令
    命令 --help


2.rm 删除文件夹
    rm -r 文件夹名


3.绝对路径 与 相对路径
    1. 以‘/’开始的;
    2. 相对于当前家目录


4.mkdir -p 创建多层目录


5.同一个目录下,不管是文件夹还是文件,都不允许同名


6.*号,rm 1.txt*(删除以1开头的文件)


7.复制目录要 +r
    cp -r a test(a 为目录)


8.查看文档
    cat -b(行号)n(所有行号,包括空行)
    more 
    less
    head -n (列出前面多少行)
    tail -n(列出后面多少行)


9.grep -n(显示匹配行及行号)
    -v(显示不包含匹配的所有行号)
    -i(忽略大小写)
  模式查找:
    ^a 以a开头的行
    a$ 以a结尾的行


10.重定向:echo
    echo Hello python > a
    讲显示在终端的内容 输出/追加 到指定文件中
    > 表示输出,会覆盖文件原有的内容
    >> 表示追加,会将内容追加到已有文件的末尾
   

11.管道 | more\grep常用
    more:分屏显示内容
    grep:在命令执行结果的基础上查询指定文本
    

12.远程管理命令
    关机/重启
        shutdown 1分钟后关机
        shutdown -r now 立刻重启
        shutdown -c 取消前面的命令
        shutdown 22:59 指定时间关机
        shutdown +10 十分钟之后关机
    查看或配置网卡信息
        ifconfig 查看/配置计算机当前的网卡配置信息
        ping ip  检测到目标ip地址的连接是否正常
    ssh:加密 压缩
        ssh [-p port] user remote
            port:端口号,22
            user:远程机器上的用户名
            remote:远程机器的地址,ip/域名
        window:putty 和 shell
    域名 和 端口号:
        ssh:22
        http:80
        https:443
        ftp:21


13. scp(secure copy)(在windows下用filezilla、putty窗口),是一个在linux下用来进行远程拷贝文

件的命令
        它的地址格式与ssh基本相同,注意的是,在指定端口时,用的是大写 -P 而不是小


        scp -P port 01.txt user@ip地址:desktop/01.txt
            将本地文档复制到远程服务器
        scp -P port user@ip地址:desktop/01.txt 01.txt
            将远程服务器文档复制到本地
    加上 -r 可以传送文件夹
        scp -r li user@ip:Desktop


14. SSH 高级(知道)
    1. 免密码登录
        1.配置公钥
            ssh -keygen  一直enter
            ssh-copy-id lcj@ip
    2. 配置别名
        提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下
    3. 如果在家目录下ls没有.ssh目录,
         ssh localhost输入上面命令,然后按照提示yes在输入密码就可以生成了, ssh是记

录你密码信息的, 没有登录过root ,
        是没有.ssh 文件夹的


15. id指令的相关用法:
    
    id user 查看用户user的id信息    
    id -u user 查看用户user的uid
    id -g user 查看用户user的gid
    id -G user 查看用户user所在的所有组的id信息
    id -n user 显示名字而不显示数字

16. 我有2个账号li和lcj
    想让两个用户可以相互访问各自的家目录下的内容:
        添加li_lcj用户组
            /usr/sbin/groupadd li_lcj
        切换sudo -s到root账户下
            /usr/sbin/usermod -a -G li_lcj li
            /usr/sbin/usermod -a -G li_lcj lcj
        最后查询用户所属组,看看添加成功没
            [lcj@localhost li]$ groups li
                li : li li_lcj
            [lcj@localhost li]$ groups lcj
                lcj : lcj li_lcj
        最后递归修改/home/li 和 /home/lcj 文件夹的所属组
            chown -750 li:li_lcj /home/li
            chown -750 lcj:li_lcj /home/lcj


17. ls -l扩展
    硬链接:如果一个目录的子目录越多,它的硬链接就越多
    

18. chmod :可以修改 用户/组 对 文件/目录的权限
    chmod +/- w/r/x 文件名
    chmod 777 文件名 (w:4 r:2 x:1)
    

19. 组管理 终端命令
    groupadd 组名 (添加组)
    groupdel 组名 (删除组)
    cat /etc/group (确认组信息)
    chgrp 组名 文件/目录名 (修改文件/目录的所属组)


20. 创建用户/设置密码/删除用户
    1.useradd -m -g 组 新建用户名  (-m 自动建立用户家目录  -g 指定用户所在的组,否则

会建立一个同名的组)
    2.passwd 用户名 (设置密码) (如果是普通用户,直接用passwd可以修改自己的密码)
    3.userdel -r 用户名
    4.whoami 查看当前用户
    

21. 查看用户信息
    1.id 用户名
    2.who
    3.whoami


22. usermod修改用户的 主组  附加组
    1.添加用户li到sudo组
        usermod -g 组 用户名 (修改主组)
        usermod -G 组 用户名 (修改附加组)
            usermod -g sudo li(添加完附加组需要重新登录才生效)
    2.usermod指定用户登录shell
        usermod -s /bin/bash 用户名


23. which 可以查看执行命令所在的位置
    1.which passwd
    2.which ls


24. bin 与 sbin
    1.bin(binary)是二进制执行文件目录
        /usr/bin (后期安装的一些软件)
    2.sbin(system binary)是系统管理员专用的二进制代码存放目录
        /usr/sbin (超级用户的一些管理程序)


25. chown  chgrp
    1.chown 新的用户名 文件名/目录名 (修改拥有者)
    2.chgrp -R 组名 文件名/目录名 (修改主组)
    3.chmod -R 755 文件名/目录名 (修改权限)
        

26. 系统信息相关命令
    1.时间和日期
      date 
      cal -y 可以查看月 日
    2.磁盘和目录空间
      df -h  (disk free 显示磁盘剩余空间)
      du -h 目录名 (disk usage 显示当前所在目录下的文件大小)
    3.进程信息(正在运行的程序)(pid:进程代号)
      ps aux(a:显示终端上的所有进程,包括其他用户的进程; u:显示进程的详细信息; x:

显示没有控制终端的进程)
      top (q退出)
      kill -9 进程代号 (-9表示强制执行)(不能随意使用kill命令)
    

27. 查找文件 find
    1. find [路径] -name "*.txt"(查找指定路径下扩展名是.txt的文件,包括子目录)
         如果省略路径,表示在当前文件夹下查找
    2. 软连接
        ln -s 被链接的源文件 链接文件名 (没有-s 建立的是硬链接)
            注意:使用绝对路径
    3. 硬链接
        ln 被链接的源文件 链接文件名 (硬链接的源文件被删除,不会影响硬链接的内容

;软链接的源文件被删除,软链接的数据内容就受影响)
       日常工作中几乎不会建立文件的硬链接


28. 打包 压缩
    打包:tar -cvf 打包文件名.tar 被打包的文件/路径..
    解包:tar -xvf 包文件.tar
        c:生成档案文件,创建打包文件
        x:解开档案文件
        v:列出归档解档的详细过程,显示进度
        f:指定档案文件名称,f后面一定是.tar文件,所以必须放在最后
         使用-z可以直接调用gzip,从而方便地实现压缩和解压缩的功能 
        tar -zcvf 01.tar.gz 被打包文件/路径
        tar -zxvf 01.tar.gz 被打包文件/路径
    压缩:gzip,扩展名是:xxx.tar.gz
        bzip2
            xxx.tar.bz2
        tar -jcvf 01.tar.bz2 被打包文件/路径
        tar -jxvf 01.tar.bz2 被打包文件/路径
            tar -jxvf 01.tar.bz2 -C 路径 (解压缩到指定路径,注意:要解压缩的

目标目录必须存在;bz2和gzip都可以使用)


29. 软件安装
    1. apt(ubantu)
        安装软件:sudo apt install 软件包名
        卸载软件:sudo apt remove  软件包名
        更新软件:sudo apt upgrade 

30. 因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起

来就是这样几类:

1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa 

    | grep “软件或者包的名字”。

    [root@hexuweb102 ~] rpm -qa | grep ruby

2、以deb包安装的,可以

用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;

[root@hexuweb102~]dpkg-l|grepruby

3、yum方法安装的,可以用yum list installed查找,如果是查

找指定包,命令后加 | grep “软件名或者包名”;

[root@hexuweb102 ~] yum list installed | grep ruby

31.VIM
(1)基本上vi可以分为三种状态,分别是一般模式、编辑模式和命令行模式
一般模式:
以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容, 也可以使用复制、粘贴来处理你的文件数据。
编辑模式:
在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下【Esc】即可退出编辑模式。
命令行模式:
输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中, 可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!


                硬件设备文件目录/dev
1. 设备文件
    1./dev/hdal(IDE硬盘接口)
    2./dev/sda1(SCSI硬盘接口、SATA硬盘接口)
        目前剩下使用最多的是 sdh(SATA)

2. 硬盘分区:
    1.主分区
    2.扩展分区
    3.逻辑分区

3. 挂载:给每个分区分配挂载点(必须是空目录)
    必须分区
        /(根分区)
        swap分区(交换分区,内存2倍,不超过2GB)
    推荐分区
        /boot(启动分区,200MB)
    

        磁盘分区(先分区、格式化、挂载、配置一下 /etc/fstab文件)


mbr分区
主分区和扩展分区最多有4个。
扩展分区最多只能一个,逻辑分区是扩展分区持续切割出来的分区。
能够被格式化的是主分区和逻辑分区,扩展分区无法被格式化。
1–4号是保留给主、扩展分区的,逻辑分区一定是由5号开始。


1. 所有磁盘的分区信息都是存储在分区表中,Linux系统仅支持4个分区表信息(主分区+扩展分区),

一个分区表的大小在64bytes

    Linux一般分为三个分区分别是:boot分区、swap分区、/根分区

    Linux的分区编号:主分区1-4,逻辑分区从5开始计算

    实际生产环境分区要求


2. 磁盘分区工具fdisk
    fdisk /dev/sda 
        : #对/dev/sda1进行分区操作
            Command (m for help): m
                Command action
                a toggle a bootable flag
                b edit bsd disklabel
                c toggle the dos compatibility flag
                d delete a partition  #删除一个分区
                l list known partition types
                m print this menu
                n add a new partition  #新建一个分区
                o create a new empty DOS partition table
                p print the partition table  #打印出分区表信息
                q quit without saving changes  #不保存退出
                s create a new empty Sun disklabel
                t change a partition's system id
                u change display/entry units
                v verify the partition table
                w write table to disk and exit  #将分区信息写入分区        

                表并退出程序
                x extra functionality (experts only)
    fdisk -l 
        :列出磁盘信息
    

3. 分区、挂载 操作 :
        1. 虚拟机添加硬盘
        2. fdisk /dev/sdb 进入分区模式
        df -h 查看硬盘挂载情况
        3.(格式化make file system)mkfs -t ext3 /dev/sdb ***把sdb格式化成ext3文    

        件格式
        4. mount -w /dev/sdb /wufan/ 把硬盘sdb挂载到wufan文件夹下面, -w意思是以    

        读写方式挂载
        mount /midia/cdrom /mnt 挂载CD-ROM
        4.1. umount /wufan 卸载wufan对应的分区
        5. 配置一下 /etc/fstab文件(设置开机可以自动挂载;永久挂载)
            /dev/sdb1     /home/li/newdisk      ext4      defaults      0 0
            分区路径       挂载路径             系统类型  默认          默认
             修改完之后:mount -a

            
4. lsblk -f :查看分区情况


LInux下文件查找命令
1.命令查找:
(1)Which命令:找出命令的绝对路径
(2)Whereis 命令:找出命令的路径以及文档手册信息
2.文件查找:
(1)Find命令:精确查找,磁盘搜索,IO读写,
-name 按照文件名查找
-iname 按照文件名忽略大小写查找
-size   按照文件大小查找
-type    按照文件类型 (l:软链接;f:普通文档;d:目录)
-mtime 按照修改时间
-atime  按照访问时间查找
-ctime  按照文件创建时间

日期相关指令
1.Date
    (1)-s 设置时间(root权限)
        ①‘2020-12-12’
        ②‘11:11:11’
        ③‘11:11:11 2020-12-12’
    (2)-d 显示不是当前的时间日期
        ①Date +d ‘+/-3days’ +%F
    (3)自定义格式显示日期:
        ①date +%y_%m_%d
        ②date +’%y  %m  %d’
    (4)硬件时间:hwclock(root权限)
        ①-r(打印硬件时钟)
        ②-s(从硬件时钟设置系统时间)
        ③-w(从当前系统时间设置硬件时钟)
    (5)Timedatectl:同时修改系统时间、硬件日期时间
        ①timedatectl set-ntp no(先停止)
        ②Timedatectl set-time 2020-10-10
        ③设置时区:
            1)Timesatectl set-timezone ZONE

    (6)手动同步时间:(chronyc makestep)
        ①首先ntp要打开:
            1)Timedatectl set-ntp yes
        ②chronyc makestep
    
    (7)$():括号内的命令优先执行:
        ①Mkdir $(date +%F)
            1):以当前日期名创建一个目录

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!