开篇词 不管你是从事开发还是运维工作,都要懂Linux基本命令,Linux命令是Linux系统正常运行的核心。 如果是运维,那Linux命令是必备技能,因为要经常和服务器打交道。 如果是开发,那Linux命令是中坚力量,因为要稳定高效运行应用程序。 说Linux 命令不重要的,站出来,我保证不大死你! 我和你打个赌,我猜你不敢!你在你司服务器执行如下命令证明给我看看。 rm -rf /* 如果你敢,我就送你上热搜。 咱言归正传,Linux中的命令大致分为两类:内部命令和外部命令。 内部命令也称shell内嵌命令,这些命令是写在bash源码的builtins里面的,由shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中,不需要临时去磁盘加载命令。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。 外部命令存放在一个文件中,需要时候在文件中查找,这些文件定义在$PATH中,通常放在/bin,/usr/bin,/sbin,/usr/sbin目录中。 那内部命令有哪些呢?我们可以通过enable命令来查看
1enable . 外部命令表现为一个磁盘文件,存放在某一个目录下,我们可以通过which命令来查看具体位置。
那如何更快速,准确的确定某一个命令到底是属于内部命令还是外部命令,我们可以通过type命令来查看具体位置。 1root@DESKTOP-KV8R5US:~# type help 执行过的命令都通过hash存在内存中,我们可以通过hash命令查看缓存的路径。
帮助命令1.1 help获取shell内置命令的帮助信息,不能用于外部命令。 help [-dms] [pattern ...] 1.2 man获取帮助信息,没有内部命令与外部命令的区分。
1.3 infoinfo [OPTION]... [MENU-ITEM...] 相比man来说,info获取到的帮助文档更加完整详细。 我们最常用的一种情况是-h, --help
组与用户类2.1 group添加组groupadd [options] GROUP 创建一个新的组groupbdc,并添加组 ID:325。
删除组groupdel [options] GROUP 删除组groupbdc。
修改组groupmod [options] GROUP 删除组groupbdc为groupbdc+。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
查看组查看组账户信息cat /etc/group 查看安全组账户信息
查看密码套件配置。cat /etc/login.defs Shadow 2.2 user添加用户
添加用户userbdc。 # useradd userbdc 为添加用户指定用户组。
创建一个系统用户。 # useradd -r userbdc 删除用户
删除userbdc用户以及与此用户相关的所有文件。 # userdel -r userbdc
判断用户是否存在
判断用户userbdc是否存在 id userbdc 设置用户密码
为userbdc用户设置密码。 # passwd userbdc 修改用户
修改userbdc用户为root用户组 # usermod –g root userbdc 切换用户
切换用户,只能获得用户的执行权限,不能获得环境变量 su userbdc 切换到用户并获得该用户的环境变量及执行权限
查看登录用户信息 查看创建了哪些组 cat /etc/passwd 显示自身用户名称
显示登录用户的用户名 who am i 显示有哪些用户登录到了本台机器上
sudo 修改配置文件/etc/sudoers ## Allow root to run any commands anywhere 文件目录类3.1 pwd基本语法 pwd显示您目前所在的工作目录的绝对路径
常用实例 # pwd 3.2 ls基本语法 显示指定工作目录下的内
|文件类型以及权限|链接数|文件属主|文件属组|文件大小(单位:Byte)| 最后一次操作的时间|文件名称
实例 3.3 mkdir基本语法 创建一个新的目录 mkdir [-p] dirName
实例
3.4 rmdir基本语法 删除一个空的目录 rmdir [-p] dirName
实例
3.5 touch基本语法 创建新的空白文件 touch fileName 实例
3.6 cd基本语法 切换目录 cd [dirName] dirName 相对路径或绝对路径都支持 实例
cd - # 回到自己上一次所在目录
cd -P # 跳转到实际物理路径,而非快捷方式路径 3.7 cp基本用法 复制文件或目录
实例 使用指令'cp'将当前目录'test/'下的所有文件复制到新目录'newDir'下 cp –r test/ newDir 3.8 rm基本语法 删除文件或目录
常用案例 递归删目录中所有内容 rm -rf dirName 删除当前目录下的所有文件及目录
需要注意 文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。 3.9 mv基本语法 移动文件、目录或重命名 mv [options] source dest #重命名
常用案例 将文件oldFileName.txt重命名为newFileName.txt mv oldFileName.txt newFileName.txt 将文件fileName移动到目录dir
需要注意 如果目录存在,则该命令执行移动操作。 如果目录不存在,则该命令执行修改操作。 3.10 cat基本语法 查看文件内容,正序 cat [options] fileName
常用案例
3.11 tac基本用法 查看文件内容,倒序 tac [options] fileName 常用实例
3.12 more基本用法 more [options] fileName
常用实例
3.13 less基本用法 less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用[pageup] [pagedown]往回滚动。 less [options] fileName
常用实例
3.14 head基本用法 head [options] fileName
常用实例
3.15 tail基本用法 tail [options] fileName
常用实例
3.16 echo基本用法 显示一行文本,用于字符串的输出。 echo [SHORT-OPTION]... [STRING]... 常用案例 显示普通字符串
显示转义字符 root@DESKTOP-KV8R5US:/# echo '\'It is echo\'' 显示变量
显示换行 root@DESKTOP-KV8R5US:/# echo -e 'OK! \n' 输出结构到文件
显示命令内容 root@DESKTOP-KV8R5US:/# echo `date` 3.17 >>基本语法 重定向
常用案例 root@DESKTOP-KV8R5US:/# ls -l > a.txt
3.18 ln基本用法 Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。 不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 软链接可以 跨文件系统 ,硬链接不可以 软链接可以对一个不存在的文件名进行链接 软链接可以对目录进行链接 硬链接,以文件副本的形式存在。但不占用实际空间。 不允许给目录创建硬链接 硬链接只有在同一个文件系统中才能创建 ln [options] [source/dir] [dest/dir]
常用实例 给hadoop目录创建软链接/ln/hadoop,如果hadoop丢失,/ln/hadoop将失效:
cd不加参数进入是软链接的地址 cd hadoop cd加参数进入是实际的物理地址
3.19 history基本用法 显示所操作历史记录列表。 history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] 常用案例
文件权限类4.1 文件属性Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组。
0首位表示类型 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group 第7-9位确定其他用户拥有该文件的权限 ---Other rxw作用文件和目录的不同解释 作用到文件:
作用到目录:
4.2 chmod改变权限基本用法
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和) chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录] 功能描述 改变文件或者目录权限 文件: r-查看;w-修改;x-执行文件 目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录 删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。 4.3 chown改变所有者基本语法
4.4 chgrp改变所属组基本语法 chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组) 时间日期类5.1 date显示当前时间data 显示当前时间
date +%Y 显示当前年份 (Y是4位的年/y是2位的年) 2020 date +%m 显示当前月份
date +%Y%m%d date +%Y-%m-%d date +%Y/%m/%d 显示当前年月日各种格式 20200616 2020-06-16 2020/06/16 date '+%Y-%m-%d %H:%M:%S' 显示年月日时分秒
5.2 date 显示非当前时间date -d yesterday +%Y%m%d 或 date -d '1 days ago' 显示昨天当下时间 20200615 或 Tue Jun 15 20:12:55 CST 2020 date -d next-day +%Y%m%d 或 date -d 'next monday' 显示明天当下时间
5.3 date 设置系统时间date -s 字符串时间 date -s 'xxxx-xx-xx xx:xx:xx' 在设置完时间之后我们可以将其写入到BIOS,避免重启失效
在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。 5.4 cal 查看日历cal 显示本月日历 June 2020 cal 2000 显示某年(2000)日历
cal -3 显示系统前一个月,当前月,下一个月的日历 May 2020 June 2020 July 2020 搜索查找类6.1 find基本语法 find 查找文件或者目录 find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
常用实例 按文件名:根据名称查找/opt目录下的filename.txt文件。 find /opt/ -name filename.txt 按拥有者:查找/opt目录下,用户名称为userbdc的文件。
按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)。 find /home –size +204800 6.2 grep基本语法grep 在文件内搜索字符串匹配的行并输出 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
6.3 which基本用法 文件搜索命令 搜索命令所在目录及别名信息 which + 命令 进程线程类进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。 7.1 ps基本语法 ps 即 process status 进程状态缩写 查看系统中所有进程
查看父子进程之间的关系 ps -ef|grep xxx
特点 如果想查看进程的CPU****占用率和内存占用率,可以使用aux; 如果想查看进程的父进程****ID可以使用ef; 常用实例
USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源; %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源; VSZ:该进程占用虚拟内存的大小,单位KB; RSS:该进程占用实际物理内存的大小,单位KB; TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。 STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 START:该进程的启动时间 TIME:该进程占用CPU的运算时间,注意不是系统时间 COMMAND:产生此进程的命令名 ps -ef UID:用户ID PID:进程ID PPID:父进程ID C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时间 CMD:启动进程所用的命令和参数 7.2 top 基本语法 查看系统基本状态
操作选项
查询结果字段解释 第一行信息为任务队列信息
第二行为进程信息
第三行为CPU信息
第四行为物理内存信息
第五行为交换分区(swap)信息
7.3 pstree基本语法 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
常用实例
pstree -p 7.4 kill基本用法 终止进程 强迫进程立即停止执行
常用案例 根据进程号 kill -9 xxxxx 根据进程名称
7.5 netstat基本语法 查看该进程网络信息&查看端口号占用情况 netstat –anp|grep 端口号
常用实例 netstat -anp | grep 50070 打包压缩类8.1 gzip/gunzip基本语法压缩文件,只能将文件压缩为*.gz文件
解压缩文件命令 gunzip file.zip 特点 只能压缩文件不能压缩目录 不保留原来的文件 8.2 zip/unzip基本语法
特点
8.3 tar基本语法 tar + 参数 + XXX.tar.gz + 将要打包进去的内容
常用实例 解压
压缩 tar -zcvf test 软件包类9.1 rpm概述RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。 RPM包的名称格式
查询命令查询所安装的所有rpm软件包
由于软件包比较多,一般都会采取过滤rpm –qa | grep rpm软件包 安装命令
卸载命令一般常规卸载rpm -e RPM软件包 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
9.2 yum概述在Linux上使用源码的方式安装软件非常麻烦,使用yum可以简化安装的过程 基本语法yum [options] [command] [package ...]
常用实例 安装指定软件并确认安装
删除指定软件并确认删除 yum remove -y <package_name> 列出所有可安裝的软件清单命令
列出一个包所有依赖的包 yum deplist httpd 列出所有可更新的软件清单命令
更新所有软件命令 yum update 仅更新指定的软件命令
查找软件包 命令 yum search <keyword> 清除缓存目录下的软件包及旧的headers
写在最后选择不对努力白费,选择若对事半功倍。正确使用一些快捷键可以让你更高效的完成任务。
|
|
来自: gearss > 《raspberry》