zoukankan      html  css  js  c++  java
  • 《Linux 操作系统》Linux的常用命令操作大全

    前言

    在学习命令之前先学习我们该如何去学习linux 命令。

    几乎每一个命令都有参数,每个参数的含义是什么,我们一般也不是全部都能记住,所以我们必须有一个可以知道每一个命令下各个参数的含义的方法。

    命令 --help  这个就是查询每一个命令的使用方式和各个参数的使用说明。

    举例:mkdir --help

    我们可以看到显示的信息对mkdir 做了说明,对-p -m -v -z 这几个参数也一一做了说明。

    1. 文件和目录

    cd 打开文件夹的命令,通过cd命令我们可以自由的操作文件的切换。

    cd /home                  打开home文件夹

    cd ..                         打开上级目录

    cd ../..                      打开上上级目录

    cd ~                         打开自己的主目录

    cd -                          打开上次访问的目录

    ls 是查看当前目录下的文件夹和文件的情况。

    ls                              查看当前目录下的文件夹和文件    

    ls -l (ll)                      查看当前目录下的文件夹和文件的详细信息。  ll 是ls -l 的简写

    ls -a                          查看当前目录下的文件夹和文件包含隐藏文件

    ls -lh                         查看当前目录下的文件夹和文件并且带上文件的大小信息

    ls *[j]*                       查看当前目录下的带j的文件夹及文件夹里面的内容

    pwd  显示当前目录的全路径。

    du -sh *       显示当前目录下的各个文件和文件夹的大小

    mkdir 创建文件夹。

    mkdir xxx                  创建一个叫xxx的文件夹

    mkdir -p xxx/xxx       创建xxx文件和xxx文件里面的xxx文件

    mkdir bbb ccc           创建bbb和ccc两个文件夹

    touch 用于创建文件。

    touch bbb.txt             创建一个bbb.txt文件

    vi 用于编辑文件内容,vi 等同于 vim.

    vi bbb.txt                   进入文件bbb.txt,默认不能修改。 修改需要按下键盘“i”字母

    文件底部会出现INSERT, 这个时候就表示可以输入内容了。

    i                              在vi下表示进入编辑状态。

    输入信息后,先按Esc推出编辑模式,然后输入“:wq”  表示保存并退出。

    :wq                        表示保存并退出

    :q                           表示直接退出

    :q!                          表示强行退出

    :set fileencoding=utf-8      设置文件编码为utf-8(文件内容不会变化)

    这个时候再使用vi查看,就可以看到我们输入的信息了。vi命令是我们最常用的命令,vi 下还包含大量快速操作文本的命令,有需要的自学。^-^!

    rm 用于删除文件和文件夹。

    rm aaa.txt               表述删除文件aaa.txt。 这个命令会给出一个提示是否需要删除,选择y就是删除,选择n 就是不删除

    rm -f bbb.txt             -f 参数表示删除文件的意思,这个时候删除就不会有提示,直接删除

    rm -rf aaa                -rf参数表示删除文件夹及文件夹里面的全部内容

    rmdir bbb                 表示删除文件夹,文件里面不能包含内容。

    rm -rf *                     删除当前目录下的全部文件和文件夹

    mv 移动文件或文件夹,还有修改文件名的功能。

    mv aaa.txt aaa         表示移动文件aaa.txt 到目录aaa下面。

    mv bbbb aaa          表示将bbbb文件夹移动到aaa下面。

    mv aaa.txt bbb.txt        表示将文件aaa.txt改名成bbb.txt

    cp 复制文件夹或者文件信息

    cp aaa.txt bbb.txt    复制文件aaa.txt 的内容到bbb.txt,当bbb.txt 不存在的时候的会创建一个。存在会覆盖,覆盖会有提示。

    cp -a /home/bbbb /home/aaa/       复制文件夹到另外一个文件夹

    cat 命令用于连接文件并打印到标准输出设备上。

    cat aaa.txt                 查询aaa.txt 文件内容,打印到输出设备上

    cat -n aaa.txt             给输出信息编上行号。

    tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

    tail aaa.txt                 显示文件尾部10行信息

    tail -f aaa.txt              显示文件尾部10行信息,并且不断更新信息,适合查询程序运行中日志的打印情况,Ctrl + c 退出文件显示

    tail -f -n20  aaa.txt     显示文件尾部20行信息,并且不断更新信息,适合查询程序运行中日志的打印情况,Ctrl + c 退出文件显示

    find 命令用来在指定目录下查找文件。

    find . -name "*.txt"        将目前目录及其子目录下所有扩展名是 txt 的文件列出来

    find . -name "aaa.txt"   将目前目录及其子目录下所有aaa.txt的文件列出

    find /home/aaa/ -name "aaa.txt"    将指定目录及其子目录下所有aaa.txt的文件列出

    find / -user jar              将根目录下属于用户jar的文件全部列出

    find . -ctime -20           将目前目录及其子目录下所有最近 20 天内更新过的文件列出

    file 该命令用于辨识文件类型 

    file aaa.txt                  查看aaa.txt的文件的编码,文件类型。

    iconv 该命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。

    iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt            将aaa.txt文件内容复制到bbb.txt中并且将编码从utf-8改成gb2312

    2. 用户、组

    /etc/group  存储当前系统中的用户组信息

    注意:  

        1.当该组内只有一个用户,并且用户名和组名相同时,在组列表中,包含用户一列可以为空

        2.系统中root分组的组编号一定为0

        3.组号1~499为系统预留的组编号,一般是预留给系统安装的软件或者服务的编号,越早安装的软件或者服务的组编号约早。用户手动创建的用户组编号从500开始

        4.组密码占位符,无一例外,全部用x表示

    /etc/gshadow  存储当前系统中用户组的密码信息

    注意:

        1.如果组密码处为“*” “!”或者为空时候,则该组没有密码

        2.如果组管理者为空,则表示该组内所有成员都可以管理该组

    /etc/passwd  存储当前系统中所有的用户信息

    /etc/shadow  存储当前系统中所有用户的密码信息

    useradd 创建用户。

    useradd hu                  创建一个名叫hu的用户

                  在下面两个地方可以看到我们的创建信息

                  1.会在/etc/passwd文件中添加xxx用户的信息

        2.会在/etc/group文件中添加一个名为xxx的用户组信息

    useradd -d /home/helloworld hu     创建用户和用户的home目录

    useradd -m hello        创建用户和home文件夹,文件夹在当前路径下新建

    useradd -g root hello  创建用户hello,并为其分配已经存在的组

    usermod 修改用户信息。

    usermod -l huu hu          将hu用户的名字修改成huu

    usermod -u 888 huu       修改huu用户的id

    usermod -d aaa huu       修改用户huu的home目录

    usermod -g root huu       修改用户的主用户组

    userdel 删除用户信息。

    userdel hu1                     删除用户信息

                                            在/etc/passwd文件中就看不到hu1用户的信息

    userdel -r huu                  删除用户信息及用户的home目录信息

    groupadd 创建一个用户组。

    groupadd hu                    创建一个用户组hu

    groupmod 修改用户组信息。

    groupmod -n hu4 hu      修改用户组hu3成hu4

            

    groupdel 删除用户组信息。

    groupdel hu4                 删除用户组hu4

    chgrp 修改所属用户组信息。

    chgrp hello hu                将文件夹hu的所属用户组改成hello

    chown 修改文件或者文件夹的所属用户和用户组信息

    chown hu2:hu2 hu         将文件夹hu的所属用户和用户组改成hu2

    chown hello hu              将文件夹hu的所属用户改成hello

    su 切换用户

    su hu                             切换成hu用户

    3. 权限

    如图所示:

    文档类型说明:

                 d - 目录,例如上表档名为『.gconf』的那一行;
        - - 文档,例如上表档名为『install.log』那一行;
        l  - 连结档(link file);
        b - 装置文件里面的可供储存的接口设备(可随机存取装置);
        c - 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

      权限由rwx三个字幕表示,分别表示为可读、可写、可执行,如果没有该权限,则用“ - ”表示,对于目录来说,必须有x权限,否则无法读取目录内容

      如果文件名前面有“ . ”,则表示这个文档或目录是隐藏的

    chmod  修改文件或者文件夹权限。

    chmod 777 hello             修改文件夹hello的权限,改成最大权限

    rwxst      r  读权限;  w 写权限; x 可执行权限; s  执行文件时,拥有该文件所有者的权限; t  临时拥有权限可读可写,但是都只能操作自己的文件,不能操作别人的文件。

    -rw------- (600) -- 只有属主有读写权限。

    -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。

    -rwx------ (700) -- 只有属主有读、写、执行权限。

    -rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。

    -rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。

    -rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。

    -rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。

    操作权限的另外一种方式:

    chmod u+w  hello               给文件或者文件夹所属用户加上w权限

    chmod g-r hello                  给文件或者文件夹所属用户组去掉r权限

    chmod a+x hello                给用户,组,其他都加上x权限

    root 用户之所以可以再任何地方执行任何文件,就是/etc/sudoers 文件配置的。

    /etc/sudoers

    上图可以看到有好几种设置权限的地方。

    4. 进程、端口

    执行 top 命令会显示下图信息

    PID                    进程号

    USER                进程所属用户信息

    PR                     piriority,优先级,数字越小越优先被执行

    NI                      nice,与priority相关,也是数字越小越先被执行

    VIRT                 占用虚拟内存的总量

    RES                  进程占用的物理内存

    SHR                  共享内存大小

    S                       进程状态 R 运行状态、S 睡眠状态、D 不可中断的睡眠状态、T 暂停状态、Z 退出状态,僵死进程、X 退出状态,进程即将被销毁

    %CPU               CUP使用占比

    %MEM              内存使用占比

    TIME+               进程累计使用cpu进行运算的时间

    COMMAND       进程名称

    ps 命令用于显示当前进程 (process) 的状态。

    ps -ef                                  查看全部进程情况(信息全)

    ps -aux                               与ps -ef 效果差不多

    ps -axjfc                             查看全部进程情况,进程名显示简称

    ps aux | grep tomcat          查询用户tomcat使用的全部进程情况

    top 展示系统的当前状态以及进程信息,并且定时刷新.

    top -p 21481                      查询PID 等于 21481的进程详情

    top -H -p 21481                 查询PID 等于 21481的全部线程程详情

    top -u jar                            查询用户为jar的进程详情

    因为top命令显示的是动态结果:我们就会存在如下需求,能不能显示结果按照内存大小排序,按照CUP使用情况排序等。

    以下是交互命令:

    按“h”或者“?”,会显示帮助,如下

     

    Z:改变颜色;B:加粗

    t:显示和隐藏任务/cpu信息;m:内存信息

    1:监控每个逻辑CPU的状况;

    f:进入字段显示配置模式,可增加或者移除显示字段,按相应的字母新增或去除;o:进入字段顺序设置模式,可配置显示位置顺序,按相应的字母往下移动,按“shift+相应的字母”往上移动         ---------常用

    F:进入字段排序配置模式,可设置排序的字段;

    R:正常排序/反向排序;

    s:设置刷新的时间--------常用

    u:输入用户,显示用户的任务

    i:忽略闲置和僵死进程。这是一个开关式命令。

    r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

    c:切换显示命令名称和完整命令行。

    M:根据驻留内存大小进行排序。-------------常用

    P:根据CPU使用百分比大小进行排序。-----------常用

    H:显示线程

    kill 该命令用于删除执行中的程序或工作.

    kill 123456                          杀死PID为123456的进程

    kill -KILL 123456                强制杀死PID为123456的进程

    kill -9 123456                     彻底杀死PID为123456的进程           

    ss 该命令可以用来获取socket统计信息。

    ss -napt | grep 18910         通过进程号,查询使用的端口号

    图中8080就是进程18910使用的端口号。

    ss -lntpd | grep :8080        通过端口号查询进程号信息

    图中18910就是端口8080使用的进程号。

    netstat 因为已经全面被ss 命令替代,故这里直接跳过。

    grep 命令用于查找文件里符合条件的字符串,经过配合其他命令一起使用,单独使用较少。

    grep jj *txt                                                查询后缀为txt文件中出现jj的行信息并且打印到控制台。

    grep -n '2019-10-24 00:01:11' *.log        查询后缀为log文件中出现'2019-10-24 00:01:11' 的行信息,带行号并且打印到控制台。

    grep -e '^j' *.txt                                        -e 是正则表达式查询信息,^j   是首字母为j的意思。

    5. 在线软件下载安装和删除

    yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

    yum list | grep zip                                  查询当前系统是否已经安装zip

    yum install zip                                        安装zip,执行完该命令侯,zip命令就可以使用了,我们可以通过zip压缩文件

    yum update zip                                      更新软件包

    yum remove zip                                     卸载zip

    6. 打包、解包

    tar 该命令用于备份文件。

    tar cvf aaa.tar aaa.txt                           将aaa.txt 打包进aaa.tar 中

    tar cvf aaa.tar bbb.txt aaa.txt               将多个文件打包进aaa.tar 中

    tar tvf aaa.tar                                      列出aaa.tar包中的文件信息

    tar xvf aaa.tar                                     解压aaa.tar包中文件到当前目录下

    tar xvf aaa.tar -C dddd                       解压到指定目录dddd下

    文件后缀为.tar.gz,在linux 中更加常见。

    tar zcvf aaa.tar.gz aaa.txt                    将aaa.txt 打包进aaa.tar.gz 中

    tar zcvf aaa.tar.gz  bbb.txt aaa.txt             将多个文件打包进aaa.tar 中

    tar ztvf aaa.tar.gz                                       列出aaa.tar包中的文件信息

    tar zxvf aaa.tar.gz                                      解压aaa.tar包中文件到当前目录下

    tar zxvf aaa.tar.gz  -C dddd                       解压到指定目录dddd下

    zip 该命令用于压缩文件。

    zip -q -r dddd.zip /home/dddd/                 压缩dddd文件夹到dddd.zip中

    zip -q -r dddd.zip *                                   压缩当前文件夹的全部内容到dddd.zip中

    unzip 命令用于解压缩zip文件。

    unzip dddd.zip                                       解压dddd.zip将文件放到当前目录

    unzip -l dddd.zip                                    查看压缩包里面的文件列表

    unzip dddd.zip -d ee                            解压文件到指定目录ee下面,这个路径也可以是绝对路径

    7. 远程协议登录

    ssh 远程登录协议。

    ssh -l root 149.225.47.23                        linux服务中远程连接ip为149.225.47.23 服务器,root是用户,后面还会让你输入密码,输入正确密码即可,退出通过exit 命令即可

    免密登录设置:

    ssh-keygen -t rsa                                   生成秘钥,按多次回车直到秘钥生成

    ssh-copy-id 149.225.47.23                    连接远程机器,第一次需要输入密码, 再次使用命令(ssh -l root 149.225.47.23) 就可以直接登录,不需要密码了

    进入“.ssh”会生成以下几个文件

      

      authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

        id_rsa : 生成的私钥文件

        id_rsa.pub : 生成的公钥文件

        know_hosts : 已知的主机公钥清单

        如果希望ssh公钥生效需满足至少下面两个条件:

          1) .ssh目录的权限必须是700 

          2) .ssh/authorized_keys文件权限必须是600

    scp 命令用于 Linux 之间复制文件和目录。

    scp id_rsa.pub root@149.225.47.23:/root/.ssh/authorized_keys                将本系统文件id_rsa.pub,复制到 root@149.225.47.23:/root/.ssh/authorized_keys下面

    scp id_rsa.pub 49.235.147.233:/root/.ssh/authorized_keys                        复制文件还可以简单的使用这个命令

    scp -r .ssh 49.235.147.233:/root/                                                                 加-r 复制整个文件夹。

    8. 其他常用命令

    > test.log                 清空文件内容

    sh 是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取. (简单的说是执行可执行文件使用)。

    sh d.sh                                     执行d.sh 文件

    文件里面就写了一句:

    重点说明:当文件没有执行权限我们才用sh。 有执行权限我们可以通过./ 来执行

    ./d.sh                                      执行d.sh 文件

    date 用于显示和修改时间的命令

    date                                    显示系统日期

    date '+%Y-%m-%d %H:%M:%S'       显示我们习惯的日期显示方式

    date '+%Y-%m-%d %H:%M:%S %A'       显示我们习惯的日期显示方式加上星期的显示

    date '+%Y-%m-%d %X %A %Z'              也可以显示时间

    date -s 05/08/20                                       修改系统年月日

    date -s '2020-05-07 09:09:09'                 修改系统年月日时分秒

    ntpdate 同步时间命令。

    ntpdate -u ntp.ntsc.ac.cn                         同步时间与国家授时中心时间对齐(对齐时间之前需要先确认你的时区设置是否有问题) 

    hostname  显示主机名。

    hostname  myzjm                                   修改主机名,重启无效

    set  查看当前进程中的变量。

    clear 该命令用于清除屏幕。

    locale    查询linux系统编码

    export LANG=en_US.UTF-8        修改linux系统编码

    rz 上传命令  一般默认没有,需要下载安装(yum install -y lrzsz)

    选择文件上传即可。

    rz -y                            上传的文件覆盖已有文件

    rz -b                             使用二进制传输

    sz 下载命令 一般默认没有,需要下载安装(yum install -y lrzsz)

    sz 新建文本文档.txt           下载新建文本文档.txt 到你的电脑。

    sz -b 新建文本文档.txt           使用二进制传输下载。

    ping 网络主机发送ICMP回传请求

    ping baidu.com                      一直请求和接收反馈信息。

    ping -c 5 baidu.com               5次请求和接收反馈信息。

    which 在环境变量$PATH设置的目录里查找符合条件的文件

    which mysqld                         在环境变量$PATH设置的目录里查找mysqld 文件。

    ifconfig -a       查询linux ip地址。

    scp -P 55255 root@10.23.185.16:/usr/local/xxx.jar /usr/local/xxx.jar      -- 55255 表示端口,如果是22端口可以不写,root是用户。

    输入密码即可。

    ln -s /usr/local/mysql/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql /usr/bin      -- 建立软链接,就相当于windows 的创建快捷方式

    passwd  用户名   -- 登入root用户,修改其他用户的密码。

    大家在学习和工作中遇到的常用命令欢迎留言。。。。。。

  • 相关阅读:
    Django-ORM
    Django-路由系统
    Django-(Request对象和Response对象)
    Django-(CBV和FBV)
    批量设置模板中的时间格式
    Django模板语言-(母板、组件、静态文件相关、simple_tag、inclusion_tag)
    yii2csrf攻击
    centos6更改密码
    ide vscode安装
    xshell配色方案
  • 原文地址:https://www.cnblogs.com/jssj/p/12833214.html
Copyright © 2011-2022 走看看