Linux常用命令大全(含CentOS和Ubuntu)

系统命令

系统、权限

命令 功能
sudo 临时获取ROOT权限(用于命令开头)
sudo su root 切换为root用户
shutdown 关机
poweroff 关机
halt 关机(CentOS)
reboot 重启
nautilus 以根权限开打文件管理器
ps -A 正在运行进程的列表
kill 5 位进程号 杀死指定进程
adduser 用户名 添加新用户
sudo passwd -u root 启用根用户(Ubuntu)
sudo su root 启用根用户(CentOS)
sudo passwd root 设置根账户的密码
vim /ect/sudoers 配置账户权限c
chown 用户名 文件名 改变文件的拥有者
chmod u+rwx g+r o+r 文件名 允许当前用户读写,其他账户读取
chmod a+w 文件名 所有用户可写
chmod 777 文件名 所有用户可读写(加-R参数会递归处理子目录)

CentOS用户管理

参考文章:https://www.cnblogs.com/dubhlinn/p/11055010.html

  1. 用户、组、家目录的概念:
    • linux系统支持多用户,除了管理员,其他用户一般不应该使用root,而是应该向管理员申请一个账号。组类似于角色,系统可以通过组对有共性的用户进行统一管理。每个用户应该至少属于一个组,不能游离于组外;且在创建用户时,系统会在/home目录下自动生成一个目录作为该用户的“家目录”,该用户在登录后会首先进入家目录。家目录可以在添加用户时指定,如果不指定,默认会以用户名来命名。例如,用户bob的家目录默认是/home/bob,他在登录linux系统后,会首先进入/home/bob。
  2. 文件与用户、组的关系:
    • 用户创建了文件,则这个用户就自动成为这个文件的"所有者",这个用户所在的组就成为文件的"所在组",除了所有者和所在组的用户,系统中的其他用户对于文件都是"其他组"的用户。可以通过ls -l命令查看文件的所有者和所在组。但是文件的所有者和所在组并不是固定不变的,可以修改。
  3. 添加用户:
    • useradd 用户名 [-d 家目录] [-g 组名]
    • “家目录”可选,不指定时默认为/home目录下同用户名。“组名”可选,不指定时默认为同用户名。
    • 例如,要新建一个名为zhangsan的用户,家目录为/home/zhang3,属于sales组,命令为:useradd zhangsan -d /home/zhang3 -g sales。
  4. 设置或修改用户密码:
    • passwd 用户名
    • 回车之后,会要求输入两次新密码。
  5. 删除用户:
    • userdel [-r] 用户名
    • -r是可选项,表示同时删除该用户的家目录。一般情况下删除用户时并不需要删除他的家目录。
  6. 查看用户信息:
    • id 用户名
    • 回车之后,会显示用户id、组id等信息。
  7. 切换用户:
    • su - 用户名
    • 如果是从高权限用户切换到低权限用户,例如从root切换到普通用户,不需要密码;反之则需要输入密码。经测试,切换到用户本身时,从root到root不需要密码,从普通用户到它自己时需要密码。
  8. 添加组:
    • groupadd 组名
    • 注意不能重复添组,会返回错误提示。
  9. 删除组:
    • groupdel 组名
    • 注意如果这个组是一个或多个用户的主组,则不能删除。
  10. 修改用户所属的组:
    • usermod -g 组名 用户名
  11. 修改用户的家目录:
    • usermod -d 家目录 用户名
  12. 修改文件或目录的所有者:
    • chown -R 用户名 目录
    • -R可选,表示级联修改目录下面的子目录和文件的所有者。
  13. 修改文件或目录的所在组:
    • chgrp -R 组名 目录
    • -R可选,表示级联修改目录下面的子目录和文件的所有者。注意修改文件的所有者和所在组是相互独立的事件,互不影响。
  14. 同时修改文件或目录的所有者和所在组:
    • chown -R 用户名:组名 目录
    • -R可选,表示级联修改目录下面的子目录和文件的所有者。这里的用户和组没有必然联系,即用户可不属于的这里的组。

权限管理

参考文章:https://www.cnblogs.com/dubhlinn/p/11055010.html

LOGO展示

有些软件可以一目了然的展示本机状态

例如screenfetch

  • 安装apt install screenfetch
  • 执行screenfetch

Linux常用命令大全(含CentOS和Ubuntu)_第1张图片

硬件资源

  • top

    • 显示当前系统中占用资源最多的一些进程, shift+m 按照内存大小查看。
  • free:显示当前系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。

    • 可选参数

      • -b:以Byte为单位显示内存使用情况。
      • -k:以KB为单位显示内存的使用情况。
      • -m:以MB为单位显示内存使用情况。
      • -h:以更加友好的方式显示内存使用情况。
      • -s N:每N秒打印一次。
      • -t:显示总的RAM + swap。
      • -V:显示版本信息。
    • 输出详解:

      • Mem
        • total:系统总内存。
        • used:程序已使用内存。
        • free:空闲内存。
        • shared:程序共享的内存空间,往往为0。
        • buff/cache:buffer和cache可以在需要时被释放回收,但不是所有的buffer/cache空间都可以被回收。
        • available:free + buffer/cache - 不可被回收内存(共享内存段、tmpfs、ramfs等)。
      • Swap内存交换机制
        • 交换机制是使用时间换空间的。相比磁盘,内存真的小的可怜,我们日常使用的民用计算机一般就是4G、8G的内存,磁盘的却有500G、1T之大。交换机制就是把一些不常用的内存的数据暂时存储到磁盘上面上去,腾出来的内存空间留作他用,在需要的时候再从磁盘中将数据读入内存中。这样做虽然从真正需要数据到数据展示在户面前的过程变慢了,但却让整个系统拥有了看似更多的内存
    • 参考博文:https://www.cnblogs.com/wayneiscoming/p/7865068.html 、https://blog.csdn.net/u011373710/article/details/70037649

  • 显卡信息

    • AMD

      • 安装工具sudo apt install radeontop

      • 运行radeontop,在终端输入sudo radeontop即可,VRAM显示的就是显存大小,GTT表示显卡可以访问的CPU主存。

Linux常用命令大全(含CentOS和Ubuntu)_第2张图片

  • df:查看磁盘相关信息。

    • -a:显示所有文件系统的磁盘使用情况。
    • -m:以MB单位显示。
    • -文件名:显示指定文件系统的磁盘空间使用情况。
    • -T:显示文件系统。
    • -h:以更加友好的方式显示磁盘空间使用情况。

Ubuntu设置swap

参考文章:https://blog.csdn.net/weixin_30835923/article/details/95496541 。

swap即交换内存,全称为swappiness。

添加swap:

  • sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1M count=1024
    
    • count=1024参数代表数量,这个正好是1g,直接增大1g。
    • 建议根据实际内存来确定交换内存的大小,例如2GB内存建议对应4GB交换内存。若实际内存大于4GB,则两者相等即可。
  • 转换为swap文件:mkswap /mnt/1GB.swap

  • 激活swap文件:swapon /mnt/1GB.swap

  • 上述操作只是临时添加1个swap file,如果要做永久添加,则需要下列步骤:

    • vim /etc/fstab
    • 编辑/etc/fstab文件,在最后添加/mnt/1GB.swap none swap sw 0 0

配置swap使用策略:

  • 查看swap使用策略:cat /proc/sys/vm/swappiness
  • 修改swap使用策略:
    • 临时设置,重启后失效:sysctl vm.swappiness=60
    • 通过修改系统默认值的方式永久配置策略,需要重启后生效:vim /etc/sysctl.conf。在该文件中设置vm.swappiness=60,意思是即Swap占60%,memory占40%。

启用swap:swapon -a

不使用swap:swapoff -a

网络

命令 功能
ping 测试是否能连接上
tracert 查看IP数据包所走路径的连通情况
netstat 查看本机个端口的连接情况
arp 查看和修改本地主机上的arp表
ip addr 查看IP地址(CentOS)
ipconfig 查看网络配置(Ubuntu、Windows)
ip addr show 查看网络配置Ubantu
ifconfig 查看网络配置(CentOS)
dhclient 自动获取IP地址(CentOS)
service networking restart 重启网络服务(Ubuntu 16)
service network restart 重启网络服务(CentOS 7)
nmcli c reload 重启网络服务(CentOS 8)
systemctl start firewalld 启用防火墙(CentOS)
systemctl stop firewalld 停用防火墙(CentOS)
ufw disable 停用防火墙(Ubuntu)
systemctl reload firewalld 重载防火墙(CentOS)
systemctl status firewalld 查看防火墙状态(CentOS)
ufw status 查看防火墙状态(Ubuntu)

修改指定端口(CentOS):

  • 命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 含义:
    • –zone:作用域。
    • –add-port=80/tcp:指定80端口的tcp协议。
    • –permanent:永久生效(不使用本参数则系统重启后失效)

修改指定端口(ubuntu):

  • 参考文章:https://blog.csdn.net/hqbootstrap1/article/details/94123307?
  • 使用iptables管理
    • 例如添加规则:iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    • 保存规则:iptables-save
  • 若要持久化规则,则需要安装iptables-persistent工具来实现。
    • 安装:apt-get install iptables-persistent
    • 持久化
      • netfilter-persistent save
      • netfilter-persistent reload

应用程序

脚本

Linux下面用命令如何运行.sh文件的方法

  1. 直接./加上文件名.sh,如运行hello.sh为./hello.sh【hello.sh必须有x权限】
  2. 直接sh 加上文件名.sh,如运行hello.sh为sh hello.sh【hello.sh可以没有x权限】

包管理

命令 功能
apt-get update 更新软件列表,在文件 /etc/apt/sources.list 中列出
apt-get upgrade 更新所有软件
apt-get remove 卸载软件
apt-get purge 卸载软件并删除其配置文件
apt-get clean 清除软件包缓存
apt-get aotuclean 清除缓存
apt-get install -f 修复依赖关系
apt-cache search 软件名 查找软件
apt-cache show 软件名 显示软件的详细信息
dpkg -l 显示已安装软件
rpm -qa|grep 软件名 查看本机与指定软件相关的包(CentOS)
yum -y install 软件名 自动下载安装指定软件(CentOS)
yum remove 软件名 删除指定软件
yum search 软件名 查找软件包(CentOS)
yum list 列出所有可安装的软件包(CentOS)
yum updates 列出所有可更新的软件包(CentOS)
yum list installed 列出所有已安装的软件包(CentOS)
yum list extras 列出所有已安装但不在yum repository内的软件(CentOS)
yum info 软件名 获取指定软件的相关信息(CentOS)
dnf CentOS 8开始可用,可以直接替代yum(CentOS 8)
dnf install 软件名 dnf可以不再使用-y参数,dnf比yum更加智能优雅

rpm转deb

参考文章:https://blog.csdn.net/qq_40021015/article/details/121744720

步骤:

  • 首先安装alien和fakeroot这两个软件,alien可以将rpm转换为deb包。
    • sudo apt-get install alien fakeroot
  • 使用alien将rpm包转为deb包
    • fakeroot alien javase*.rpm
  • 转换成功,可以即刻使用这个命令来安装。
    • sudo dpkg -i javase*.deb

源码安装

参考文章:

  • 版权声明:本文为CSDN博主「痴迷乐极」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_27984355/article/details/81603315

安装:

  • 源码的安装一般三个步骤:配置(configure)、编译(make)、安装(make install)。

    • 以openVpn为例

      • tar -zxf open-.tar.gz
        cd open-
        ./configure
        make
        make install
        
      • 可以使用--prefix参数指定安装位置

        • ./configure --prefix=/usr/local/app/open
      • 可以使用&&连接命令,例如make && make install

    • configure是可执行脚本,它有很多选项,在待安装的源码路径下使用令./configure –help输出详细的选项列表。其中–prefix选项就是配置安装的路径。

      • 如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较分散。
      • 为了便于集中管理某个软件的各种文件,可以配置–prefix,如:./configure --prefix=/usr/local/app/应用名。这时该应用所有文件都会放在该路径下。
      • 另一个好处是卸载软件或移植软件。只须简单地删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝(相同的操作系统)。
  • 要卸载程序,也可以在原来的make目录下用make uninstall,但前提是make文件指定过uninstall。

systemctl

systemctl是Systemd 的主命令,可用于管理系统。

操作service:

  • 启动sshd服务:systemctl start ssh.service
  • 停止sshd服务:systemctl stop ssh.service
  • 查看sshd服务状态:systemctl status ssh.service
  • 重启sshd服务:systemctl restart ssh.service
  • 设置开机自启动:systemctl enable ssh.service
  • 禁止开机自启动:systemctl disable ssh.service
  • 重新加载配置文件:systemctl daemon-reload

查询service:

  • 列出所有已经加载的systemd units

    • systemctl

    • systemctl | grep docker.service

  • 列出所有service

    • systemctl list-units --type=service

    • systemctl --type=service

  • 列出所有active状态(运行或退出)的服务

    • systemctl list-units --type=service --state=active
  • 列出所有正在运行的服务

    • systemctl list-units --type=service --state=running
  • 列出所有正在运行或failed状态的服务

    • systemctl list-units --type service --state running,failed
  • 列出所有enabled状态的服务

    • systemctl list-unit-files --state=enabled

文件管理

命令 功能
cd ~
cd /
cd … 上级目录
cd - 上次所在目录
pwd 显示当前所在目录
dir 查看文件列表(Windows)
ls 简略显示当前目录下文件
ll 以列表方式显示文件的详细信息
ls -l 以列表方式显示文件的详细信息
ll -h 以更加友好的方式显示文件大小
ls -l -h 以更加友好的方式显示文件大小
ls -la 显示当前目录下文件(含隐藏文件)
ls -a 显示指定目录下所有子目录域文件,包括隐藏文件
ls -slh 显示指定目录下所有子目录域文件,包括隐藏文件
ls -l|less 分页显示当面目录下文件(按q退出界面)
mkdir 名称 新建目录
rmdir 名称 删除指定的空目录
touch 文件名 创建文件
rm 文件名 删除文件
rm -rf 文件名 递归删除文件
tar -zxf 文件名 解压指定压缩包
cp 原路径 新路径 复制
mv 原路径 新路径 移动
cat 文件名 显示文件内容
head -n 数值 文件名 显示文件开头指定行数的内容
tail -n 数值 文件名 显示文件末尾指定行数的内容
  • ls:包括ls、ll等命令
    • ls:显示当前目录下文件。
      • ls命令支持正则表达式:

        • ls *.py:显示当前文件夹中带有.py后缀的文件,*是通配符。
        • ls ?.py:显示当前文件夹中带有.py后缀的文件,?代表单位通配。
        • ls 1[1-6].py:显示当前文件夹中首位为1,次位为1至6的数值。
      • ls支持指定目录

        • ls /:查看根目录下的目录
  • tree:按层级遍历显示
    • tree -F:显示目录后面的\
    • tree -L 2:只显示两层
  • grep
    • grep -i “the” demo_file //在文件中查找字符串(不区分大小写)
    • grep -A 3 -i “example” demo_text //输出成功匹配的行,以及该行之后的三行。
    • grep -r “ramesh” * //在一个文件夹中递归查询包含指定字符串的文件。
    • grep -C 20 "搜索内容" //显示搜索内容附近20行文本
  • find
    • find /bin -name ‘a*’ //查找/bin目录下的所有以a开头的文件或者目录

打开文件管理器(GUI)

  • Windows
    • explorer .\
      • 路径是可选的

Terminal

命令 功能
鼠标左键选择文本 复制文本(Git Bash)
鼠标中键 粘贴文本(Git Bash)
鼠标右键 粘贴文本(Windows)
Ctrl加← 按单词向左移动光标
Ctrl加→ 按单词移向右动光标
Shift加Ctrl加C 复制文本
Shift加Ctrl加V 粘贴文本
Ctrl加C 停止当前正在运行的任务
Ctrl加L 清屏
clear 清屏

你可能感兴趣的:(Linux,linux,ubuntu,centos)