Linux(下)

张开发
2026/4/10 23:53:07 15 分钟阅读

分享文章

Linux(下)
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录VIM编译器vi/vim是什么测试数据准备一般模式编辑模式命令模式模式间转换用户管理命令root用户useradd 添加新用户passwd设置用户密码id查看用户是否存在cat /etc/passwd查看创建了哪些用户userdel 删除用户sudo设置普通用户具有root权限usermod 修改用户用户组管理命令groupadd 新增组groupdel 删除组groupmod 修改组usermod 修改用户组cat /etc/group 查看创建了哪些组文件权限类文件属性chmod 改变权限chown改变所有者chgrp 改变所属组搜索查找类find查找文件或者目录grep与“|”管道符的过滤查找压缩和解压类tar 打包磁盘类df 查看磁盘空间使用情况du 文件和目录的磁盘使用空间网络类ifconfigping 测试主机之间网络连通性修改主机名称进程线程类ps 查看当前系统进程状态kill 终止进程free查看服务器总体内存top查看系统健康状态netstat显示网络统计信息和端口占用情况路径类basenamedirnamecrontab系统定时任务crontab服务管理crontab 定时任务设置VIM编译器vi/vim是什么VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性方便程序设计。VIM与VI编辑器完全兼容。在终端中执行以下命令安装vimsudo apt install vim测试数据准备1拷贝/etc/profile 数据到当前目录下cp /etc/profile ./案例运行上图一般模式以vim打开一个档案就直接进入一般模式了这是默认的模式。在这个模式中 你可以使用『上下左右』按键来移动光标你可以使用『删除字符』或『删除整行』来处理档案内容 也可以使用『复制、贴上』来处理你的文件数据。1常用语法语法功能描述yy复制光标当前一行y数字y 复制一段从光标当前行到后n行p 箭头移动到目的行粘贴u 撤销上一步dd 删除光标当前行d数字d 删除光标含后多少行x 剪切一个字母(当前光标)相当于delX 剪切一个字母(当前光标的前一个)相当于Backspaceyw 复制一个词dw 删除一个词shift6(^) 移动到行头shift4($) 移动到行尾1shiftg 移动到页头数字shiftg 移动到页尾数字Nshiftg 移动到目标行编辑模式在一般模式中可以进行删除、复制、粘贴等的动作但是却无法编辑文件内容的要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。注意了通常在Linux中按下这些按键时在画面的左下方会出现『INSERT或 REPLACE』的字样此时才可以进行编辑。而如果要回到一般模式时 则必须要按下『Esc』这个按键即可退出编辑模式。1进入编辑模式按键功能i当前光标前a当前光标后o当前光标行的下一行I光标所在行最前A光标所在行最后O当前光标行的上一行2退出编辑模式按『Esc』键命令模式在一般模式当中输入『 : / ?』3个中的任何一个按钮就可以将光标移动到最底下那一行。在这个模式当中 可以提供你『搜寻资料』的动作而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的1基本语法命令功能:w保存:q退出:!强制执行/要查找的词n 查找下一个N 往上查找:noh取消高亮显示:set nu显示行号:set nonu关闭行号:%s/old/new/g替换内容 /g global替换匹配到的所有内容2案例实操1保存退出对于有写权限的文件修改后保存并退出。:wq;2直接退出没有修改文件内容直接退出。:q3强制退出修改了文件内容但是不想保存此时需要强制退出。:q!4强制保存退出对于没有写权限的文件修改后必须强制保存退出方可保留更改。:wq!模式间转换用户管理命令root用户root 用户是具有最高权限的超级用户1root 用户特点root 用户拥有系统的所有权限可以对系统进行任何操作包括修改系统关键配置文件、安装和卸载系统级软件、管理用户账户等。但由于其权限过大不当操作可能会导致系统出现严重问题甚至无法正常运行。2默认情况Ubuntu 默认情况下root 用户是被锁定的没有设置默认密码。这是为了提高系统的安全性鼓励用户使用普通用户账户并通过 sudo 命令来临时获取 root 权限执行需要高权限的操作。3为 root 用户设置密码如果确实需要使用root用户登录或执行操作可以通过以下步骤为root用户设置密码。以普通用户身份登录到 Ubuntu 系统。打开终端输入以下命令----这里设置密码为smz系统会提示你输入当前普通用户的密码输入正确后按回车键。接着会要求你设置 root 用户的新密码输入两次相同的新密码后root 用户的密码就设置完成了。4切换root用户su 用户名称 功能描述切换用户只能获得用户的执行权限不能获得环境变量su - 用户名称 功能描述切换到用户并获得该用户的环境变量及执行权限如果需要一个完整的 root 用户环境例如执行需要特定环境变量支持的脚本或者进行系统管理操作时依赖 root 用户的环境配置建议使用 su -。而如果只是临时需要以 root 身份执行一两个命令并且希望保持当前的工作环境那么使用 su root 更合适。5退出root用户exit6使用sudo替代root用户操作虽然可以使用root用户登录并操作但更推荐使用sudo命令。sudo 允许普通用户在需要时以 root 权限执行特定的命令而不需要一直以 root 用户身份登录。在需要执行的命令前加上 sudo例如要安装软件包sudo apt install package_name系统会提示你输入当前普通用户的密码输入正确后命令将以 root 权限执行。7锁定和解锁 root 用户锁定 root 用户如果你想再次锁定 root 用户使其无法登录可以使用以下命令sudo passwd -l root解锁 root 用户若要解锁 root 用户可以使用以下命令sudo passwd -u rootuseradd 添加新用户1基本语法useradd 用户名 功能描述添加新用户useradd -g 组名 用户名 功能描述添加新用户到某个组可以在useradd后面加-m指定是否创建用户目录2案例实操添加一个用户passwd设置用户密码1基本语法passwd 用户名 功能描述设置用户密码2案例实操设置用户的密码passwd sunxiaomingid查看用户是否存在1基本语法id 用户名2案例实操查看用户是否存在cat /etc/passwd查看创建了哪些用户1基本语法cat /etc/passwduserdel 删除用户1基本语法userdel 用户名 功能描述删除用户但保存用户主目录userdel -r 用户名 功能描述用户和用户主目录都删除2案例实操sudo设置普通用户具有root权限1添加testu用户并对其设置密码。使用useradd来创建home下面不存在对应文件目录若是要查看成功与否使用cat /etc/passwd2修改配置文件vi /etc/sudoers修改 /etc/sudoers 文件在root下面添加一行如下所示## Allow root to run any commands anywhereroot ALL(ALL)ALL testu ALL(ALL)NOPASSWD:ALL配置成采用sudo命令时不需要输入密码修改完毕通过:wq!退出编辑然后可以用testu帐号登录用命令 sudo 即可获得root权限进行操作。不需要多次输入密码。usermod 修改用户1基本语法usermod -l 新用户名 老用户名usermod -d /home/新目录名 -m新用户名2选项说明选项功能-l改变用户名-d修改家目录3案例实操改变用户名用户组管理命令每个用户都有一个用户组系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同。如Linux下的用户属于与它同名的用户组这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。groupadd 新增组1基本语法groupadd 组名2案例实操添加一个xitian组然后使用cat /etc/groupgroupadd xitiangroupdel 删除组1基本语法groupdel 组名2案例实操删除xitian组然后使用cat /etc/group查看groupmod 修改组1基本语法groupmod -n 新组名 老组名2案例实操usermod 修改用户组1基本语法usermod -g 组名 用户名2选项说明cat /etc/group 查看创建了哪些组1基本操作cat /etc/group文件权限类文件属性能力越大责任越大。权限越小责任越小。Linux系统是一种典型的多用户系统不同的用户处于不同的地位拥有不同的权限。为了保护系统的安全性Linux系统对不同的用户访问同一文件包括目录文件的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。1文件属性从左到右的10个字符表示如果没有权限就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:10首位表示类型在Linux中第一个字符代表这个文件是目录、文件或链接文件等等代表文件d 代表目录l 链接文档(link file)2第1-3位确定属主该文件的所有者拥有该文件的权限。—User3第4-6位确定属组所有者的同组用户拥有该文件的权限—Group4第7-9位确定其他用户拥有该文件的权限 —Other2rwx作用文件和目录的不同解释1作用到文件[ r ]代表可读read: 可以读取查看[ w ]代表可写write: 可以修改但是不代表可以删除该文件删除一个文件的前提条件是对该文件所在的目录有写权限才能删除该文件.[ x ]代表可执行execute:可以被系统执行2作用到目录0[ r ]代表可读read: 可以读取ls查看目录内容[ w ]代表可写write: 可以修改目录内创建删除重命名目录[ x ]代表可执行execute:可以进入该目录图标代表不可读锁代表不可写chmod 改变权限1基本语法1第一种方式变更权限chmod [{ugoa}{±}{rwx}] 文件或目录2第二种方式变更权限chmod [mode421 ] [文件或目录]2案例实操1修改文件使其所属主用户具有执行权限chmod ux passwd2修改文件使其所属组用户具有执行权限chmod gx passwd3修改文件所属主用户执行权限,并使其他用户具有执行权限chmod u-x,ox passwd4采用数字的方式设置文件所有者、所属组、其他用户都具有可读可写可执行权限。chmod 765 passwd5修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。chmod -R 777 testchown改变所有者chown: 改变所有者change owner1基本语法chown [选项] [最终用户] [文件或目录] 功能描述改变文件或者目录的所有者2选项说明选项功能-R递归操作3案例实操1修改文件所有者2递归改变文件所有者和所有组chgrp 改变所属组chgrp: 改变所属组change group1基本语法chgrp [最终用户组] [文件或目录] 功能描述改变文件或者目录的所属组2案例实操1修改文件的所属组搜索查找类find查找文件或者目录1find指令将从指定目录向下递归地遍历其各个子目录将满足条件的文件显示在终端。2基本语法find [搜索范围] [选项]3选项说明选项功能-name文件名 按照指定的文件名查找模式查找文件模式必须用引号包含-user用户名 查找属于指定用户名所有文件-size文件大小 按照指定的文件大小查找文件单位为: b —— 块512字节c —— 字节w —— 字2字节k —— 千字节M —— 兆字节G —— 吉字节4案例实操1按文件名根据名称查找当前目录下所有以.txt结尾的文件。find ./ -name “*.txt”2按拥有者查找当前目录下用户名称的文件find ./ -user “zxf”3按文件大小在当前目录下查找大于200字节的文件n 大于 -n小于 n等于find ./ -size “200c”grep与“|”管道符的过滤查找管道符“|”表示将前一个命令的处理结果输出传递给后面的命令处理。GrepGlobal Regular Expression Print用于对指定文本根据正则表达式特定规则搜索匹配并输出到终端。一般与管道符进行配合使用。1基本语法grep 选项 查找内容 源文件2选项说明选项功能-n显示匹配行及行号。3案例实操1查找某文件在第几行find ./ -size “-200c” |grep a# 这个方式是使用递归搜索的ll |grep -n zx # 不递归cat passwd |grep -n wu压缩和解压类tar 打包1基本语法tar [选项] XXX.tar.gz 将要打包进去的内容功能描述打包目录压缩后的文件格式.tar.gz2选项说明选项功能-c产生.tar打包文件-v显示详细信息-f指定压缩后的文件名-z打包同时压缩-x解包.tar文件3案例实操1压缩多个文件touch tt2.txttouch tt1.texlltar -zcvf tt.tar.gz tt2.txt tt1.texll2压缩目录tar -zcvf b.tar.gz test/3解压到当前目录rm -r testtar -zxvf test.tar.gz4解压到指定目录mkdir worktar -zxvf test.tar.gz -C ./workls work/磁盘类df 查看磁盘空间使用情况df: disk free 空余硬盘1基本语法df 选项 功能描述列出文件系统的整体磁盘使用量检查文件系统的磁盘空间占用情况2选项说明选项功能-h以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示3案例实操查看磁盘使用情况。du 文件和目录的磁盘使用空间1基本语法du 目录/文件功能描述显示每个文件和目录的磁盘使用空间2选项说明选项功能-a显示当前目录下所有的文件目录及子目录大小3案例实操查看目录的空间使用情况du -a网络类ifconfig1基本语法ifconfig 功能描述显示所有网络接口的配置信息2案例实操查看当前网络IPping 测试主机之间网络连通性1基本语法ping 目的主机 功能描述测试当前服务器是否可以连接目的主机2案例实操测试当前服务器是否可以连接百度ping www.baidu.com修改主机名称1基本语法hostname 功能描述查看当前服务器的主机名称2案例实操1查看当前服务器主机名称。hostname2如果感觉此主机名不合适我们可以进行修改。编辑/etc/hostname文件。vi /etc/hostname进程线程类进程是正在执行的一个程序或命令每一个进程都是一个运行的实体都有自己的地址空间并占用一定的系统资源。ps 查看当前系统进程状态ps: 进程状态process status1基本语法ps -aux 功能描述查看系统中所有进程ps -ef 功能描述可以查看子父进程之间的关系2选项说明选项功能-a选择所有进程-u显示所有用户的所有进程-x显示没有终端的进程USER该进程是由哪个用户产生的PID进程的ID号%CPU该进程占用CPU资源的百分比占用越高进程越耗费资源%MEM该进程占用物理内存的百分比占用越高进程越耗费资源VSZ该进程占用虚拟内存的大小单位KBRSS该进程占用实际物理内存的大小单位KBTTY该进程是在哪个终端中运行的。其中tty1-tty6代表系统的虚拟控制台。pts/0-255代表伪终端,通常用于 SSH 会话、telnet 会话以及其他远程登录会话。STAT进程状态。常见的状态有R运行、S睡眠、T停止状态、s包含子进程、位于后台、I几乎没有使用CPU时间START该进程的启动时间TIME该进程占用CPU的运算时间注意不是系统时间COMMAND产生此进程的命令名2ps -ef显示信息说明UID用户名PID进程IDPPID父进程IDCCPU用于计算执行优先级的因子。数值越大表明进程是CPU密集型运算执行优先级会降低数值越小表明进程是I/O密集型运算执行优先级会提高STIME进程启动的时间TTY该进程是在哪个终端中运行的。TIMECPU时间CMD启动进程所用的命令和参数kill 终止进程1基本语法kill [选项] 进程号 功能描述通过进程号杀死进程killall 进程名称 功能描述通过进程名称杀死进程也支持通配符这在系统因负载过大而变得很慢时很有用2选项说明选项功能-9表示强迫进程立即停止3案例实操1开启多个终端准备两个终端。2监控houge.txt在其中一个终端中执行以下命令。tail -F houge.txt3查看tail进程号在另一个终端中查看进程号。ps -efgrep tailkill -9 进程号5通过名称杀死进程killall命令可以根据名称杀死进程此处的进程名称是精确匹配。通常进程名称为启动命令中可执行文件的名称。对于tail -F houge.txt启动的进程其进程名称为tail。再开启一个终端在其中两个终端中执行以下命令。killall tail可以看到另外两个终端的tail进程均被杀死。free查看服务器总体内存1基本语法free -m 功能描述查看服务器总体内存2案例实操free -mtop查看系统健康状态1基本命令top [选项]2选项说明选项功能-d秒数 指定top命令每隔几秒更新。-i使top不显示任何闲置或者僵死进程。-p通过指定监控进程ID来仅仅监控某个进程的状态。列名英文全称中文解释通俗说明关注程度PIDProcess ID进程ID号进程的唯一标识★★USERUser进程所属用户哪个用户启动的进程★★PRPriority优先级内核动态计算的优先级数值越低优先级越高★NINice Valuenice值谦让值用户可调整的优先级。负值越高越优先范围 -20~19★★VIRTVirtual Image (Memory)虚拟内存进程申请的虚拟内存总大小对应之前说的VSZ★★★RESResident Memory物理内存进程当前实际占用物理内存的大小对应之前说的RSS★★★★★SHRShared Memory共享内存进程中可与其他进程共享的内存大小如动态库★★★★SStatus进程状态当前进程运行状态后面详细解释★★%CPUCPU UsageCPU占用率该进程占用CPU的百分比多核会超过100%★★★★★%MEMMemory Usage内存占用率该进程占用物理内存占系统总内存的百分比★★★★★TIMECPU TimeCPU累计耗时进程启动以来累计使用的CPU时间注意不是系统时间★★COMMANDCommand命令/进程名进程对应的命令或程序名称★★★netstat显示网络统计信息和端口占用情况1基本语法netstat -anp |grep 进程号 功能描述查看该进程网络信息netstat -nlp |grep 端口号 功能描述查看网络端口号占用情况2选项说明选项功能-n拒绝显示别名能显示数字的全部转化成数字-l仅列出有在listen监听的服务状态-p表示显示哪个进程在调用3案例实操1查看某端口号是否被占用。sudo netstat -nlp | grep 进程号2通过进程号查看该进程的网络信息。netstat -anp | grep进程号路径类basename1基本语法basename [string / pathname] [suffix] 功能描述basename命令会删掉所有的前缀包括最后一个‘/’字符然后将字符串显示出来。basename可以理解为取路径里的文件名称。选项suffix为后缀如果suffix被指定了basename会将pathname或string中的suffix去掉。2案例实操dirname1基本语法dirname 文件绝对路径 功能描述从给定的包含绝对路径的文件名中去除文件名非目录的部分然后返回剩下的路径目录的部分。dirname 可以理解为取文件路径的绝对路径名称。2案例实操crontab系统定时任务crontab服务管理重新启动crontab服务sudo systemctl restart cronsystemctl status croncrontab 定时任务设置1基本语法crontab [选项]2选项说明选项功能-e编辑crontab定时任务-l查询crontab任务-r删除当前用户所有的crontab任务3参数说明进入crontab编辑界面。会打开vim编辑你的工作。首次使用该命令时系统会提示你选择一个文本编辑器选择你熟悉的编辑器即可。crontab -e1* * * * * 执行的任务*的含义项目含义范围第一个“*”一小时当中的第几分钟0-59第二个“*”一天当中的第几小时0-23第三个“*”一个月当中的第几天1-31第四个“*”一年当中的第几月1-12第五个“*”一周当中的星期几0-70和7都代表星期日2特殊符号特殊符号含义*代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。代表不连续的时间。比如“0 8,12,16 * * * 命令”就代表在每天的8点0分12点0分16点0分都执行一次命令-代表连续的时间范围。比如“0 5 * * 1-6命令”代表在周一到周六的凌晨5点0分执行命令*/n代表每隔多久执行一次。比如“*/10 * * * * 命令”代表每隔10分钟就执行一遍命令3特定时间执行命令时间含义4522 * * * 命令0 17 * * 1命令 每周1 的17点0分执行命令0 5 1,15 * * 命令每月1号和15号的凌晨5点0分执行命令40 4 * * 1-5 命令每周一到周五的凌晨4点40分执行命令*/10 4 * * * 命令每天的凌晨4点每隔10分钟执行一次命令0 0 1,15 * 1 命令每月1号和15号每周1的0点0分都会执行命令。注意星期几和几号最好不要同时出现因为他们定义的都是天。非常容易让管理员混乱。4案例实操每隔1分钟向/Desktop文件中添加一个11的数字*/1 * * * * /bin/echo ”11” /opt/module/bailongma.txt

更多文章