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

在这里插入图片描述

硬件资源

  • 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主存。

在这里插入图片描述

  • 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)
dnfCentOS 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 openvpn-<version>.tar.gz
        cd openvpn-<version>
        ./configure
        make
        make install
        
      • 可以使用--prefix参数指定安装位置

        • ./configure --prefix=/usr/local/app/openvpn
      • 可以使用&&连接命令,例如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清屏

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值