瞎折腾 - Linux
type: channel
link: https://cq329.top/index.php/category/linux.html
items: VPS常用脚本（不定期更新）
items: 1Panel 一款替代宝塔的现代化开源 Linux 服务器运维管理面板
items: Ubuntu 20.04开启自带BBR
items: Docker搭建LNMP环境
items: Linux常用命令（六）apt
items: Linux常用命令（五）yum
items: Linux常用命令（四）vi/vim
items: Linux常用命令（三） 磁盘管理
items: Linux常用命令（二）用户和用户组管理
items: Linux常用命令（一） 文件与目录管理

VPS常用脚本（不定期更新）
type: item
date: 2023-07-14T11:21:00+08:00
description: 网上收集的一些VPS常用脚本，目的是将这些脚本集中起来，使用时不用再东找西找。一、VPS综合性能测试主要功能有：1.对VPS的整体性能进行测试，包含VPS的硬件信息，硬盘速率等等2.对VPS的网络性能进行测试，包含三网（电信、移动、联通）的下载速度和上传速度等3.对VPS的回程路由进行测试，包含四网（电信、移动、联通、教育网）的回程线路。wget -N --no-check-certificate https://raw.githubusercontent.com/V2RaySSR/vps/master/vpstest.sh && bash vpstest.sh二、时间同步一般国外的VPS的镜像都是默认的国外时区，造成服务端和客户端时间不同步，一些依赖于系统时间的应用程序不能正常工作，只要将服务端和客户端时间同步就可解决此类问题。1.安装必要依赖apt-get update #Ubuntu/Debian系统 apt-get install ntp ntpdate -y #Ubuntu/Debian系统 yum install ntp ntpdate -y #CentOS/RHEL系统2.查看时区设置是否正确date -R执行上面命令后如果显示+0800则表示时区为东八区，直接进行步骤3。否则，就需要执行下面的命令来修改时区tzselect然后按照Asia--->China--->Beijing Time--->Yes的顺序依次输入序号，最后再执行下面的命令就完成了时区的修改cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime最后再执行date -R命令来查看时区是否成功修改为+0800，时区修改完成后就可以同步时间了3.先停止NTP服务器，再更新时间service ntpd stop #停止ntp服务 ntpdate cn.pool.ntp.org #同步ntp时间 service ntpd start #启动ntp服务安装Docker和Docker-compose1.更新系统apt update -y && apt upgrade -y && apt install -y curl wget sudo socat unzip tar2.安装Dockercurl -fsSL https://get.docker.com | sh curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose科技lion一键脚本1.安装下载工具apt update -y && apt install -y curl2.下载并运行脚本curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

1Panel 一款替代宝塔的现代化开源 Linux 服务器运维管理面板
type: item
date: 2023-07-13T19:08:00+08:00
description: 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。1Panel 的功能和优势包括：快速建站：深度集成 Wordpress 和 Halo，域名绑定、SSL 证书配置等一键搞定；高效管理：通过 Web 端轻松管理 Linux 服务器，包括主机监控、文件管理、数据库管理、容器管理等；安全可靠：基于容器来管理和部署应用，最小漏洞暴露面，提供防火墙和日志审计等功能；一键备份：支持一键备份和恢复，备份数据到各类云端存储，永不丢失。UI展示快速部署在线体验演示地址： https://demo.1panel.cn/用户名：demo密 码：1panel一键安装执行如下命令一键安装 1Panel:curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh1Panel虽然可以替代宝塔大部分功能，但功能还不够丰富，和宝塔还有一定差距，希望随着不断迭代能早日彻底替代宝塔甚至超越宝塔。

Ubuntu 20.04开启自带BBR
type: item
date: 2023-06-28T03:28:04+08:00
description: Linux Kernel 内核升级到 4.9 及以上版本可以实现 BBR 加速，由于Ubuntu 20.04 默认的内核就是 5.4 版本的内核，并已经默认编译了 TCP BBR 模块，所以可以直接通过参数开启。新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT) 可以让服务器的带宽尽量跑满，并且尽量不要有排队的情况，让网络服务更佳稳定和高效。开启方法如下：第一步：SSH登录VPS后切换到root用户sudo -i第二步：修改系统变量echo net.core.default_qdisc=fq >> /etc/sysctl.conf echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf第三步：保存生效sysctl -p第四步：执行sysctl net.ipv4.tcp_available_congestion_control如果显示下面结果就说明开启了BBRsysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = bbr cubic reno第五步：验证lsmod | grep bbr出现类似以下的情况就是成功开启BBRtcp_bbr 24576 3

Docker搭建LNMP环境
type: item
date: 2023-06-23T17:30:39+08:00
description: 更新系统apt update -y && apt upgrade -y && apt install -y curl wget sudo socat安装docker及docker-composecurl -fsSL https://get.docker.com | sh curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose创建目录cd /home mkdir web cd web mkdir html mkdir mysql mkdir certs touch nginx.conf nano docker-compose.yml配置docker-composehttps://github.com/kejilion/docker/blob/main/LNMP-docker-compose.yml申请证书curl https://get.acme.sh | sh ~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com ~/.acme.sh/acme.sh --issue -d s.kejilion.eu.org --standalone下载证书~/.acme.sh/acme.sh --installcert -d s.kejilion.eu.org --key-file /home/web/certs/key.pem --fullchain-file /home/web/certs/cert.pemNGINX配置https://github.com/kejilion/nginx/blob/main/nginx5.conf下载源码maccms10 cd /home/web && wget https://github.com/magicblack/maccms_down/raw/master/maccms10.zip && sudo apt-get install -y unzip && unzip maccms10.zip -d html && rm maccms10.zip && mv /home/web/html/maccms10-master/* /home/web/html/ wordpress cd /home/web && wget https://cn.wordpress.org/wordpress-6.2-zh_CN.zip && sudo apt-get install -y unzip && unzip wordpress-6.2-zh_CN.zip -d html && rm wordpress-6.2-zh_CN.zip && mv /home/web/html/wordpress/* /home/web/html/运行cd /home/web && docker-compose up -d赋予权限docker exec -it nginx chmod -R 777 /var/www/html docker exec -it php chmod -R 777 /var/www/html安装PHP扩展docker exec php -it apt update && docker exec php apt install -y libmariadb-dev-compat libmariadb-dev libzip-dev docker exec php docker-php-ext-install mysqli pdo_mysql zip重启phpdocker restart php

Linux常用命令（六）apt
type: item
date: 2022-11-06T21:52:00+08:00
description: apt（Advanced Packaging Tool）是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令，而且命令简洁而又好记。apt 命令执行需要超级管理员权限(root)。apt 语法 apt [options] [command] [package ...] options：可选，选项包括 -h（帮助），-y（当安装过程提示选择全部为"yes"），-q（不显示安装的过程）等等。command：要进行的操作。package：安装的包名。apt 常用命令列出所有可更新的软件清单命令：sudo apt update升级软件包：sudo apt upgrade列出可更新的软件包及版本信息：apt list --upgradeable升级软件包，升级前先删除需要更新软件包：sudo apt full-upgrade安装指定的软件命令：sudo apt install <package_name>安装多个软件包：sudo apt install <package\_1> <package\_2> <package_3>更新指定的软件命令：sudo apt update <package_name>显示软件包具体信息,例如：版本号，安装大小，依赖关系等等：sudo apt show <package_name>删除软件包命令：sudo apt remove <package_name>清理不再使用的依赖和库文件: sudo apt autoremove移除软件包及配置文件: sudo apt purge <package_name>查找软件包命令： sudo apt search <keyword>列出所有已安装的包：apt list --installed列出所有已安装的包的版本信息：apt list --all-versions实例查看一些可更新的包：sudo apt update升级安装包：sudo apt upgrade在以上交互式输入字母 Y 即可开始升级。可以将以下两个命令组合起来，一键升级：sudo apt update && sudo apt upgrade -y安装 mplayer 包：sudo apt install mplayer如过不太记得完整的包名，我们可以只输入前半部分的包名，然后按下 Tab 键，会列出相关的包名：以上实例我们输入来 reds，然后按下 Tab 键，输出来四个相关的包。如果我们想安装一个软件包，但如果软件包已经存在，则不要升级它，可以使用 –no-upgrade 选项:sudo apt install <package_name> --no-upgrade安装 mplayer 如果存在则不要升级：sudo apt install mplayer --no-upgrade如果只想升级，不要安装可以使用 --only-upgrade 参数：sudo apt install <package_name> --only-upgrade只升级 mplayer，如果不存在就不要安装它：sudo apt install mplayer --only-upgrade如果需要设置指定版本，语法格式如下：sudo apt install <package_name>=<version_number>package_name 为包名，version_number 为版本号。移除包可以使用 remove 命令：sudo apt remove mplayer查找名为 libimobile 的相关包：apt search libimobile查看 pinta 包的相关信息：apt show pinta列出可更新的软件包：apt list --upgradeable清理不再使用的依赖和库文件：sudo apt autoremove在以上交互式输入字母 Y 即可开始清理。

Linux常用命令（五）yum
type: item
date: 2022-11-06T21:46:00+08:00
description: yum（ Yellow dog Updater, Modified）是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。基于 RPM 包管理，能够从指定的服务器自动下载 RPM 包并且安装，可以自动处理依赖性关系，并且一次安装所有依赖的软件包，无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令，而且命令简洁而又好记。yum 语法yum [options] [command] [package ...] options：可选，选项包括-h（帮助），-y（当安装过程提示选择全部为 "yes"），-q（不显示安装的过程）等等。command：要进行的操作。package：安装的包名。*yum常用命令1. 列出所有可更新的软件清单命令：yum check-update2. 更新所有软件命令：yum update3. 仅安装指定的软件命令：yum install <package_name>4. 仅更新指定的软件命令：yum update <package_name>5. 列出所有可安裝的软件清单命令：yum list6. 删除软件包命令：yum remove <package_name>7. 查找软件包命令：yum search <keyword>8. 清除缓存命令:yum clean packages: 清除缓存目录下的软件包yum clean headers: 清除缓存目录下的 headersyum clean oldheaders: 清除缓存目录下旧的 headersyum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers实例 1安装 pam-devel[root@www ~]# yum install pam-devel Setting up Install Process Parsing package install arguments Resolving Dependencies <==先检查软件的属性相依问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated --> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel --> Running transaction check ---> Package pam.i386 0:0.99.6.2-4.el5 set to be updated filelists.xml.gz 100% |=========================| 1.6 MB 00:05 filelists.xml.gz 100% |=========================| 138 kB 00:00 -> Finished Dependency Resolution ……(省略) 实例 2移除 pam-devel[root@www ~]# yum remove pam-devel Setting up Remove Process Resolving Dependencies <==同样的，先解决属性相依的问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Removing: pam-devel i386 0.99.6.2-4.el5 installed 495 k Transaction Summary ============================================================================= Install 0 Package(s) Update 0 Package(s…

Linux常用命令（四）vi/vim
type: item
date: 2022-11-06T18:22:00+08:00
description: 所有的 Unix Like 系统都会内建 vi 文书编辑器，其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力，可以主动的以字体颜色辨别语法的正确性，方便程序设计。什么是 vim？Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用。简单的来说， vi 是老式的字处理器，不过功能已经很齐全了，但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。vim 键盘图：vi/vim 的使用基本上 vi/vim 共分为三种模式，分别是命令模式（Command mode），输入模式（Insert mode）和底线命令模式（Last line mode）。 这三种模式的作用分别是：命令模式：用户刚刚启动 vi/vim，便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令，而非输入字符。比如我们此时按下i，并不会输入一个字符，i被当作了一个命令。以下是常用的几个命令：i 切换到输入模式，以输入字符。x 删除当前光标所在处的字符。: 切换到底线命令模式，以在最底一行输入命令。若想要编辑文本：启动Vim，进入了命令模式，按下i，切换到输入模式。命令模式只有一些最基本的命令，因此仍要依靠底线命令模式输入更多命令。输入模式在命令模式下按下i就进入了输入模式。在输入模式中，可以使用以下按键：字符按键以及Shift组合，输入字符ENTER，回车键，换行BACK SPACE，退格键，删除光标前一个字符DEL，删除键，删除光标后一个字符方向键，在文本中移动光标HOME/END，移动光标到行首/行尾Page Up/Page Down，上/下翻页Insert，切换光标为输入/替换模式，光标将变成竖线/下划线ESC，退出输入模式，切换到命令模式底线命令模式在命令模式下按下:（英文冒号）就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令，可用的命令非常多。在底线命令模式中，基本的命令有（已经省略了冒号）：q 退出程序w 保存文件按ESC键可随时退出底线命令模式。简单的说，我们可以将这三个模式想成底下的图标来表示：vi/vim 使用实例使用 vi/vim 进入一般模式如果你想要使用 vi 来建立一个名为 runoob.txt 的文件时，你可以这样做：$ vim runoob.txt 直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意，记得 vi 后面一定要加文件名，不管该文件存在与否！按下 i 进入输入模式(也称为编辑模式)，开始编辑文字在一般模式之中，只要按下 i, o, a 等字符就可以进入输入模式了！在编辑模式当中，你可以发现在左下角状态栏中会出现 –INSERT- 的字样，那就是可以输入任意字符的提示。这个时候，键盘上除了 Esc 这个按键之外，其他的按键都可以视作为一般的输入按钮了，所以你可以进行任何的编辑。按下 ESC 按钮回到一般模式好了，假设我已经按照上面的样式给他编辑完毕了，那么应该要如何退出呢？是的！没错！就是给他按下 Esc 这个按钮即可！马上你就会发现画面左下角的 – INSERT – 不见了！在一般模式中按下 :wq 储存后离开 viOK，我们要存档了，存盘并离开的指令很简单，输入 :wq 即可保存离开！ OK! 这样我们就成功创建了一个 runoob.txt 的文件。vi/vim 按键说明除了上面简易范例的 i, Esc, :wq 之外，其实 vim 还有非常多的按键可以使用。第一部分：一般模式可用的光标移动、复制粘贴、搜索替换等移动光标的方法 h 或 向左箭头键(←)光标向左移动一个字符j 或 向下箭头键(↓)光标向下移动一个字符k 或 向上箭头键(↑)光标向上移动一个字符l 或 向右箭头键(→)光标向右移动一个字符如果你将右手放在键盘上的话，你会发现 hjkl 是排列在一起的，因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话，例如向下移动 30 行，可以使用 "30j" 或 "30↓" 的组合按键， 亦即加上想要进行的次数(数字)后，按下动作即可！ [Ctrl] + [f]屏幕『向下』移动一页，相当于 [Page Down]按键 (常用)[Ctrl] + [b]屏幕『向上』移动一页，相当于 [Page Up] 按键 (常用)[Ctrl] + [d]屏幕『向下』移动半页[Ctrl] + [u]屏幕『向上』移动半页+光标移动到非空格符的下一行-光标移动到非空格符的上一行n<space>那个 n 表示『数字』，例如 20 。按下数字后再按空格…

Linux常用命令（三） 磁盘管理
type: item
date: 2022-11-06T18:11:00+08:00
description: Linux 磁盘管理好坏直接关系到整个系统的性能问题。Linux 磁盘管理常用三个命令为 df、du 和 fdisk。df（英文全称：disk free）：列出文件系统的整体磁盘使用量du（英文全称：disk used）：检查磁盘空间使用量fdisk：用于磁盘分区dfdf命令参数功能：检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间，目前还剩下多少空间等信息。语法：df [-ahikHTm] [目录或文件名] 选项与参数：-a ：列出所有的文件系统，包括系统特有的 /proc 等文件系统；-k ：以 KBytes 的容量显示各文件系统；-m ：以 MBytes 的容量显示各文件系统；-h ：以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示；-H ：以 M=1000K 取代 M=1024K 的进位方式；-T ：显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出；-i ：不用硬盘容量，而以 inode 的数量来显示实例 1将系统内所有的文件系统列出来！[root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc2 9920624 3823112 5585444 41% / /dev/hdc3 4956316 141376 4559108 4% /home /dev/hdc1 101086 11126 84741 12% /boot tmpfs 371332 0 371332 0% /dev/shm 在 Linux 底下如果 df 没有加任何选项，那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来！实例 2将容量结果以易读的容量格式显示出来[root@www ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hdc2 9.5G 3.7G 5.4G 41% / /dev/hdc3 4.8G 139M 4.4G 4% /home /dev/hdc1 99M 11M 83M 12% /boot tmpfs 363M 0 363M 0% /dev/shm 实例 3将系统内的所有特殊文件格式及名称都列出来[root@www ~]# df -aT Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/hdc2 ext3 9920624 3823112 5585444 41% / proc proc 0 0 0 - /proc sysfs sysfs 0 0 0 - /sys devpts devpts 0 0 0 - /dev/pts /dev/hdc3 ext3 4956316 141376 4559108 4% /home /dev/hdc1 ext3 101086 11126 84741 12% /boot tmpfs tmpfs 371332 0 371332 0% /dev/shm none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc sunrpc rpc_pipefs 0 0 0 - /var/lib/nfs/rpc_pipefs 实例 4将 /etc 底下的可用的磁盘容量以易读的容量格式显示[root@www ~]# df -h /etc Filesystem Size Used Avail Use% Mounted on /dev/hdc2 9.5G 3.7G 5.4G 41% / duLinux du 命令也是查看使用空间的，但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看，还是和df命令有一些区别的，这里介绍 Linux du 命令。语法：du [-ahskm] 文件或目录名称 选项与参数：-a ：列出所有的文件与目录容量，因为默认仅统计目录底下的文件量而已。-h ：以人们较易读的容量格式 (G/M) 显示；-s ：列出总量而已，而不列出每个各别的目录占用容量；-S ：不包括子目录下的总计，与 -s 有点差别。-k ：以 KBytes 列出容量显示；-m ：以 MBytes 列出容量显示；实例 1只列出当前目录下的所有文件夹容量（包括隐藏文件夹）:[root@www ~]# du 8 ./test4 <==每个目录都会列出来 8 ./test2 ....中间省略.... 12 ./.gconfd <==包括隐藏文件的目录 220 . <==这个目录(.)所…

Linux常用命令（二）用户和用户组管理
type: item
date: 2022-11-06T18:04:00+08:00
description: Linux 用户和用户组管理Linux系统是一个多用户多任务的分时操作系统，任何一个要使用系统资源的用户，都必须首先向系统管理员申请一个账号，然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪，并控制他们对系统资源的访问；另一方面也可以帮助用户组织文件，并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后，就能够进入系统和自己的主目录。实现用户账号的管理，要完成的工作主要有如下几个方面：用户账号的添加、删除与修改。用户口令的管理。用户组的管理。一、Linux系统用户账号的管理用户账号的管理工作主要涉及到用户账号的添加、修改和删除。添加用户账号就是在系统中创建一个新账号，然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的，无法使用。1、添加新的用户账号使用useradd命令，其语法如下：useradd 选项 用户名 参数说明：选项:-c comment 指定一段注释性描述。-d 目录 指定用户主目录，如果此目录不存在，则同时使用-m选项，可以创建主目录。-g 用户组 指定用户所属的用户组。-G 用户组，用户组 指定用户所属的附加组。-s Shell文件 指定用户的登录Shell。-u 用户号 指定用户的用户号，如果同时有-o选项，则可以重复使用其他用户的标识号。用户名:指定新账号的登录名。实例1# useradd –d /home/sam -m sam 此命令创建了一个用户sam，其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam（/home为默认的用户主目录所在的父目录）。实例2# useradd -s /bin/sh -g group –G adm,root gem 此命令新建了一个用户gem，该用户的登录Shell是 /bin/sh，它属于group用户组，同时又属于adm和root用户组，其中group用户组是其主组。这里可能新建组：#groupadd group及groupadd adm增加用户账号就是在/etc/passwd文件中为新用户增加一条记录，同时更新其他系统文件如/etc/shadow, /etc/group等。Linux提供了集成的系统管理工具userconf，它可以用来对用户账号进行统一管理。2、删除帐号如果一个用户的账号不再使用，可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除，必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令，其格式如下：userdel 选项 用户名 常用的选项是 -r，它的作用是把用户的主目录一起删除。例如：# userdel -r sam 此命令删除用户sam在系统文件中（主要是/etc/passwd, /etc/shadow, /etc/group等）的记录，同时删除用户的主目录。3、修改帐号修改用户账号就是根据实际情况更改用户的有关属性，如用户号、主目录、用户组、登录Shell等。修改已有用户的信息使用usermod命令，其格式如下：usermod 选项 用户名 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等，这些选项的意义与useradd命令中的选项一样，可以为用户指定新的资源值。另外，有些系统可以使用选项：-l 新用户名这个选项指定一个新的账号，即将原来的用户名改为新的用户名。例如：# usermod -s /bin/ksh -d /home/z –g developer sam 此命令将用户sam的登录Shell修改为ksh，主目录改为/home/z，用户组改为developer。4、用户口令的管理用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令，但是被系统锁定，无法使用，必须为其指定口令后才可以使用，即使是指定空口令。指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令，普通用户只能用它修改自己的口令。命令的格式为：passwd 选项 用户名 可使用的选项：-l 锁定口令，即禁用账号。-u 口令解锁。-d 使账号无口令。-f 强迫用户下次登录时修改口令。如果默认用户名，则修改当前用户的口令。例如，假设当前用户是sam，则下面的命令修改该用户自己的口令：$ passwd Old password:****** New password:******* Re-enter new password:******* 如果是超级用户，可以用下列形式指定任何用户的口令：# passwd sam New password:******* Re-enter new password:******* …

Linux常用命令（一） 文件与目录管理
type: item
date: 2022-11-06T17:54:00+08:00
description: 我们知道Linux的目录结构为树状结构，最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中，通过解除挂载可以移除它们。在开始本教程前我们需要先知道什么是绝对路径与相对路径。绝对路径： 路径的写法，由根目录 / 写起，例如： /usr/share/doc 这个目录。相对路径： 路径的写法，不是由 / 写起，例如由 /usr/share/doc 要到 /usr/share/man 底下时，可以写成： cd ../man 这就是相对路径的写法。处理目录的常用命令接下来我们就来看几个常见的处理目录的命令吧：ls（英文全拼：list files）: 列出目录及文件名cd（英文全拼：change directory）：切换目录pwd（英文全拼：print work directory）：显示目前的目录mkdir（英文全拼：make directory）：创建一个新的目录rmdir（英文全拼：remove directory）：删除一个空的目录cp（英文全拼：copy file）: 复制文件或目录rm（英文全拼：remove）: 删除文件或目录mv（英文全拼：move file）: 移动文件与目录，或修改文件与目录的名称你可以使用 man [命令] 来查看各个命令的使用文档，如 ：man cp。ls (列出目录)在Linux系统当中， ls 命令可能是最常被运行的。语法：[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称 [root@www ~]# ls [--color={never,auto,always}] 目录名称 [root@www ~]# ls [--full-time] 目录名称 选项与参数：-a ：全部的文件，连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)-d ：仅列出目录本身，而不是列出目录内的文件数据(常用)-l ：长数据串列出，包含文件的属性与权限等等数据；(常用)将目录下的所有文件列出来(含属性与隐藏档)[root@www ~]# ls -al ~ cd (切换目录)cd是Change Directory的缩写，这是用来变换工作目录的命令。语法： cd [相对路径或绝对路径] #使用 mkdir 命令创建 runoob 目录 [root@www ~]# mkdir runoob #使用绝对路径切换到 runoob 目录 [root@www ~]# cd /root/runoob/ #使用相对路径切换到 runoob 目录 [root@www ~]# cd ./runoob/ # 表示回到自己的家目录，亦即是 /root 这个目录 [root@www runoob]# cd ~ # 表示去到目前的上一级目录，亦即是 /root 的上一级目录的意思； [root@www ~]# cd .. 接下来大家多操作几次应该就可以很好的理解 cd 命令的。pwd (显示目前所在的目录)pwd 是 Print Working Directory 的缩写，也就是显示目前所在目录的命令。[root@www ~]# pwd [-P]选项与参数：-P ：显示出确实的路径，而非使用链接 (link) 路径。实例：单纯显示出目前的工作目录：[root@www ~]# pwd /root <== 显示出目录啦～实例显示出实际的工作目录，而非链接档本身的目录名而已。[root@www ~]# cd /var/mail <==注意，/var/mail是一个链接档 [root@www mail]# pwd /var/mail <==列出目前的工作目录 [root@www mail]# pwd -P /var/spool/mail <==怎么回事？有没有加 -P 差很多～ [root@www mail]# ls -ld /var/mail lrwxrwxrwx 1 root root 10 Sep 4 17:54 /var/mail -> spool/mail # 看到这里应该知道为啥了吧？因为 /var/mail 是链接档，链接到 /var/spool/mail # 所以，加上 pwd -P 的选项后，会不以链接档的数据显示，而是显示正确的完整路径啊！ mkdir (创建新目录)如果想要创建新的目录的话，那么就使用mkdir (make directory)吧。语法：mkdir [-mp] 目录名称 选项与参数：-m ：配置文件的权限喔！直接配置，不需要看默认权限 (umask) 的脸色～-p ：帮助你直接将所需要的目录(包含上一级目录)递归创建起来！实例：请到/tmp底下尝试创建数个新目录看看：[root@www ~]# cd /tmp [root@www tmp]# mkdir test <==创建一…