Linux常用命令

  1. 查看系统版本

    $ cat /etc/issue
    

     

  2. 查看内核

    $ cat /proc/version
    

     

  3. 开机启动项(Ubuntu)

    $ systemctl list-unit-files      #查看
    $ sudo systemctl disable <service_name>  #禁用某服务开机启动
    $ sudo systemctl stop <service_name>     #停止某服务
    
    • 可用|grep <condition>过滤

     

  4. 查看时间和时区

    $ date -R
    

     

  5. 修改时区

    $ timedatectl set-timezone [timezone]
    
    • 先通过tzselect命令查看想要的时区的写法,然后再使用timedatectl修改时区

     

  6. 重置密码

    $ sudo passwd root
    
    • 重置当前用户的密码
    • 如果是超级用户,可以用passwd xxxx重置任意用户密码

     

  7. 切换至root用户

    $ su
    
    • 切换至其他用户,可以用su username

     

  8. 修改用户权限

    有几种方法:

    1). 把已建立的用户添加到已存在的group中

    $ adduser username groupname
    

    2). 设定为Sudo用户。修改/etc/sudoers文件。在# User privilege specification项下添加以下内容

    fanco ALL=(ALL) ALL
    
    • 以上是开启所有的权限

     

  9. 查看服务

    $ service <service_name> status
    

     

  10. 显示进程信息

    $ top
    

     

  11. 显示进程状态

    $ ps
    $ ps -l     #显示进程的详细列表
    $ ps aux    #显示所有进程,包括其他用户
    
    • 默认只显示当前用户有控制终端的进程

       

  12. 当前目录的路径

    $ pwd
    

     

  13. 列出当前目录的文档

    $ ls
    $ ls -l #list mode
    $ ls -l -a  #list + all files  = ls -la
    $ ls -lh    #list + human readable size
    

     

  14. 内置帮助

    $ grep --help
    $ man -h
    

     

  15. 打印文件内容

    $ cat a.txt
    $ cat a.txt b.txt       #print a.txt then b.txt
    $ cat < a.txt       #read from stdin
    

     

  16. 读取文件的头和尾

    $ head <-n int> a.txt
    $ tail <-f> a.txt       #会悬停在文件末尾,一旦文件有新内容更新,则会自动打印出来,一般在观察log的时候使用
    
    • 默认读取10行

     

  17. 交互模式浏览文件

    $ less a.txt
    

     

  18. 内容查找

    $ cat a.txt | grep <content>
    or
    在交互模式中输入'/<content>',然后回车进行搜索
    
    • 在交互模式下当有搜索结果时,按shift+nn可以跳转前后已搜索的内容

     

  19. 统计(line ,word and byte)

    $ cat b.txt | wc
    2 5 28
    
    • 按行、单词数、字节数顺序展示

     

  20. 重定向(改变输入输出)

    $ echo hello > hello.txt    #redirect to a file(create a file and input content at the same time)
    $ echo world >> hello.txt   #append to a file
    $ cat < hello.txt       #use file as stdin stdout to monitor
    
    • 标准输入stdin一般指控制台、键盘
    • 标准输出stdout一般指终端、屏幕
    • >:代表覆盖重定向
    • >>:代表追加重定向

     

  21. 管道:将前一个命令的标准输出作为下一个命令的标准输入

    $ man less | grep sim
    $ man less | grep -n sim | grep That > that.txt     查找less命令的手册中含有sim的内容,并把它的行数标记出来,然后再此基础上继续查找含有That的内容,并把它保存到that.txt文件中
    

     

  22. 修改权限

    $ chmod [+ | -] [x | r | w] [file]
    $ chmod 740 [file]
    
    • 注意!!!不要随意设置成777,即-rwxrwxrwx
    • 常见权限:
      • 644(-rw-r--r--)默认权限
      • 755(-rwxr-xr-x)

     

  23. 查找系统变量下的文件

    $ which <filename>
    
    • 只在`PATH变量指定的路径中查找,返回第一个搜索到的结果。

     

  24. 增加路径到PATH环境中

    $ PATH=$PATH:<path>
    
    $ PATH=$PATH:$PWD       #把当前路径加入到PATH中
    
    • 从第一个环境变量开始寻找,一旦找到就优先使用,不管后面是否还能找到。
    • 可搭配which命令判断该执行文件是否是你所指定位置所执行的文件。

     

  25. 全局快速查找文件

    $ locate [-i/r] <keyword>
    
    • -i:忽略大小写
    • -r:后面可接正则表达式

     

  26. 移动、重命名

    $ mv hwllo.txt hello.txt    #重命名
    $ mv hello.txt <path>   #移动文件
    

     

  27. 复制文件

    $ cp a.txt a_copy.txt
    $ cp -r dir1 dir2   #复制文件夹需要加-r参数
    

     

  28. 删除文件

    $ rm a.txt      #删除单个文件
    $ rm a.txt b.txt    #删除多个文件
    $ rm -r dir1    #删除文件夹及其所有子目录和文件
    
    • linux是没有回收站的!!!

     

  29. 终止进程(按照PID)

    $ kill -signal_number/-signal_name PID
    $ kill PID
    $ kill -9 PID       #强力杀进程
    

     

  30. 终止进程(按照名字)

    $ killall stress
    
    • 一般情况下不用,有可能其他相关脚本命令也在使用同一个名字的进程(不是同一个PID)

     

  31. &后台运行进程

    $ python3 myscript.py &
    
    • 还是绑定着当前终端,只要当前终端/ssh关闭就会被终止
    • 虽然执行了该命令,有可能还需要使用ctrl+c跳出前台
    • 如果该进程有响应,还是会打印在当前终端

     

  32. 当前终端启动的命令

    $ jobs
    $ jobs -l   #显示PID
    

     

  33. 把当前终端后台进程变成前台

    $ fg %<num>     #把第几号任务放到前台并开始运行
    

     

  34. 恢复被挂起的后台进程

    $ bg        #重启最后一个job
    $ bg %<num>     #在后台恢复第几号任务
    
    • ctrl+z可挂起当前的前台进程

     

  35. 创建软连接

    $ ln -s <target_path> <link_name>
    
    • linux下的软链接类似于windows下的快捷方式
    • -s是symbolic,代表软连接

     

  36. 删除软连接

    $ rm -rf <link_name>
    
    • ==注意!!!!软连接后面不要加/,否则是删除源文件整个目录==

     

  37. 创建文件

    $ touch <file_name>
    

     

  38. 创建密钥对

    $ ssh-keygen -t rsa -b 2048
    
    • 在 Linux 系统上,默认情况下,将在 Linux ~/.ssh/id_rsa 目录中创建 SSH 公钥和私钥文件。如果在该目录中具有一个 SSH 密钥对,并且在运行该命令时使用相同的文件名,或者在该命令中指定不同的位置,并在该位置中已具有一个 SSH 密钥对,则会覆盖该现有密钥对。

     

  39. 回响(输出你所输入的内容)

    $ echo  hello world     #输出你所输入的内容
    hello world
    
    $ echo $HOME / echo ~   #输出变量。shell会自动把变量展开传给echo
    /home/mr_fanco
    

     

  40. 跳转目录

    $ cd path / cd ~        #可输入绝对路径或者一个变量
    $ cd ..         #返回上一层
    

     

  41. 用户手册

    $ man <command>
    

     

  42. 待记录...


There are 0 comments