linux操作系统笔记基础命令(代码片段)

小凡it故事 小凡it故事     2023-01-18     572

关键词:

linux 基础命令

当你看到这篇文章,说明你很想学习linux技术,或者命令上需要帮助,不管在Centos 系统还是红帽系统,它都能够适用。这篇文章包含了常见的linux命令,比如:linux 压缩,解压缩。yum 安装,linux关机命令,linux系统知识,linux删除文件等。如果你想玩转linux,请一定把此文章的命令操作一遍。

cd 命令详解

  • 主要用于切换目录
[root@hbs ~]# cd /home/        **切换至/home目录**
[root@hbs home]# cd /root/
[root@hbs ~]# cd /
[root@hbs /]# cd /usr/local/sbin/
[root@hbs sbin]# cd .          **切换到当前目录**
[root@hbs sbin]# cd ..         **切换至上一级目录**
[root@hbs local]# cd ~         **切换到家目录**
[root@hbs ~]# 

ls 命令详解

  • ls命令主要用于浏览目录下的文件或者文件夹
  • 常用参数
    • ls -l 详细详细信息(文件类型、权限、属主、数组、字节大小、创建时间、文件名)
    • ls -ld 只显示目录
    • ls -a 显示影藏文件
-a, --all				    不隐藏任何以. 开始的项目;
-A, --almost-all		    列出除. 及.. 以外的任何项目;
    --author			    与-l 同时使用时列出每个文件的作者;
-b, --escape			    以八进制溢出序列表示不可打印的字符;
    --block-size=大小	    块以指定大小的字节为单位;
-B, --ignore-backups	    不列出任何以"~"字符结束的项目;
-d, --directory			    当遇到目录时列出目录本身而非目录内的文件;
-D, --dired				产生适合Emacs 的dired 模式使用的结果;
-f						不进行排序,-aU 选项生效,-lst 选项失效;
-i, --inode				    显示每个文件的inode 号;
-I, --ignore=PATTERN	    不显示任何符合指定shell PATTERN 的项目;
-k						即--block-size=1K;
-l						使用较长格式列出信息;
-n, --numeric-uid-gid	    类似 -l,但列出UID 及GID 号;
-N, --literal			    输出未经处理的项目名称 (如不特别处理控制字符) ;
-r, --reverse			    排序时保留顺序;
-R, --recursive			    递归显示子目录;
-s, --size				    以块数形式显示每个文件分配的尺寸;
-S						根据文件大小排序;
-t						根据修改时间排序;
-u						同-lt 一起使用:按照访问时间排序并显示;
						同-l一起使用:显示访问时间并按文件名排序;
						其他:按照访问时间排序;
-U						不进行排序;按照目录顺序列出项目;
-v						在文本中进行数字(版本)的自然排序。

pwd 命令详解

  • 主要用于显示或者查看当前所在的目录路径

hostname命令详解

  • 主要查看当前主机名
  • 可以临时修改主机名,重启还原
    -常用命令
    • [root@hbs ~]# hostname liuaoni 重启还原名字
    • [root@hbs ~]# hostnamectl set-hostname liuaoni 永久生效,写入配置文件
[root@hbs ~]# cat /etc/hostname  配置文件
liuaoni

clear命令详解

  • 主要用于清屏
  • 常用命令
    • clear 推一屏

who、whoami、w 命令

  • who 显示当前所有登录的账户(何时、何地)
  • whoami 显示当前登录的账户(正在使用的)
  • w 显示所有已登录的账户,并显示其在干什么事
[root@liuaoni ~]# whoami
root
[root@liuaoni ~]# who
root     tty1         2021-02-03 19:13
root     pts/0        2021-03-07 15:22 (192.168.10.1)
root     pts/1        2021-03-07 13:09 (192.168.10.1)
root     pts/5        2021-03-07 12:14 (192.168.10.1)
[root@liuaoni ~]# w
 15:26:29 up 3 days,  5:46,  4 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      03Feb21 21:09m  0.26s  0.26s -bash
root     pts/0    192.168.10.1     15:22    5.00s  0.03s  0.03s w
root     pts/1    192.168.10.1     13:09   46:21   0.29s  0.29s -bash
root     pts/5    192.168.10.1     12:14    2:47m  0.06s  0.03s bash
[root@liuaoni ~]# 

which 命令

  • 查看命令在哪里
  • 命令类型
    • 内部命令(shell提供的命令)
    • 外部命令(which可以找到),不是shell 提供的,需要安装的命令
[root@liuaoni ~]# which vim
/usr/bin/vim
[root@liuaoni ~]# 

cal 命令详解

  • 主要查看万年历
  • 常用命令
    • cal 查看本月日历
-1 显示一个月的月历
-3 显示系统前一个月,当前月,下一个月的月历
-s 显示星期天为一个星期的第一天,默认的格式
-m 显示星期一为一个星期的第一天
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历

ldd 命令详解

  • 用来查看命令所依赖的库文件是否缺失
[root@localhost ~]# which hostname
/usr/bin/hostname
[root@localhost ~]# ldd /usr/bin/hostname
        linux-vdso.so.1 =>  (0x00007ffe2ebc7000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f60f8ace000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f60f870b000)
        /lib64/ld-linux-x86-64.so.2 (0x000055d8031af000)
[root@localhost ~]# 
--version:打印指令版本号;
-v:详细信息模式,打印所有相关信息;
-u:打印未使用的直接依赖;
-d:执行重定位和报告任何丢失的对象;
-r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;
--help:显示帮助信息。

scp 命令详解

  • scp是 secure copy的缩写.

  • scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

  • linux的scp命令可以在linux服务器之间复制文件和目录。

  • scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。

  • 当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。

  • 虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

  • 语法格式:scp [参数] [文件]

  • 常用参数:

-1	使用ssh协议版本1-2
-2	使用ssh协议版本2
-4	使用ipv4
-6	使用ipv6
-B	以批处理模式运行
-C	使用压缩
-F	指定ssh配置文件
-l	指定宽带限制
-o	指定使用的ssh选项
-P	指定远程主机的端口号
-p	保留文件的最后修改时间,最后访问时间和权限模式
-q	不显示复制进度
-r	以递归方式复制
  • 从远程复制文件到本地目录:
[root@linuxcool ~]# scp root@192.168.10.10:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/
  • 从远程复制目录到本地:
[root@linuxcool ~]# scp  -r root@10.10.10.10:/opt/soft/mysql /opt/soft/

  • 上传本地文件到远程机器指定目录:
[root@linuxcool ~]# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest
  • 上传本地目录到远程机器指定目录:
[root@linuxcool ~]# scp -r /opt/soft/mysql root@192.168.10.10:/opt/soft/scptest
  • 保留文件的最后修改时间,最后访问时间和权限模式:
[root@linuxcool ~]# scp -p /root/install.log root@192.168.10.10:/tmp  

ssh 命令

  • ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。

  • 语法格式: ssh [参数] [远程主机]

  • 常用参数:

-1	强制使用ssh协议版本1
-2	强制使用ssh协议版本2
-4	强制使用IPv4地址
-6	强制使用IPv6地址
-A	开启认证代理连接转发功能
-a	关闭认证代理连接转发功能
-b<IP地址>	使用本机指定的地址作为对位连接的源IP地址
-C	请求压缩所有数据
-F<配置文件>	指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
-f	后台执行ssh指令
-g	允许远程主机连接本机的转发端口
-i<身份文件>	指定身份文件(即私钥文件)
-l<登录名>	指定连接远程服务器的登录用户名
-N	不执行远程指令
-o<选项>	指定配置选项
-p<端口>	指定远程服务器上的端口
-q	静默模式,所有的警告和诊断信息被禁止输出
-X	开启X11转发功能
-x	关闭X11转发功能
-y	开启信任X11转发功能
  • 登录远程服务器:
[root@linuxcool ~]# ssh 202.102.240.88
  • 用test用户连接远程服务器:
[root@linuxcool ~]# ssh -l test 202.102.220.88
  • 查看分区列表:
[root@linuxcool ~]# ssh 202.102.220.88 /sbin/fdisk -l
  • 强制使用ssh协议版本1:
[root@linuxcool ~]# ssh -1
  • 开启认证代理连接转发功能:
[root@linuxcool ~]# ssh -A

linux 用户权限

useradd 命令详解

  • useradd命令用来创建新的用户或更改用户的信息。
  • useradd可用来建立用户帐号。
  • 帐号建好之后,再用passwd设定帐号的密码。
  • 使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

语法格式:useradd [参数] [用户名]

常用参数:

-D	改变新建用户的预设值
-c	添加备注文字
-d	新用户每次登陆时所使用的家目录
-e	用户终止日期,日期的格式为YYYY-MM-DD
-f	用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g	指定用户对应的用户组
-G	定义此用户为多个不同组的成员
-m	用户目录不存在时则自动创建
-M	不建立用户家目录,优先于/etc/login.defs文件设定
-n	取消建立以用户名称为名的群组
-r	建立系统帐号
-u	指定用户id

  • 添加新用户linuxcool:
[root@linuxcool ~]# useradd linuxcool
  • 不创建家目录,并且禁止登陆:
[root@linuxcool ~]# useradd -M -s /sbin/nologin linuxcool
  • 添加新用户linuxcool,指定UID为888,指定归属用户组为root,cool成员,其shell类型为/bin/sh:
[root@linuxcool ~]# useradd -u 888 -s /bin/sh -G root,cool linuxcool
  • 添加新用户linuxcool,设置家目录为/tmp/linuxcool,用户过期时间为2019/05/01.过期后两天停权:
[root@linuxcool ~]# useradd -e "2019/05/01" -f 2 -d /tmp/linuxcool linuxcool

usermod 命令详解

  • usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。

  • 语法格式:usermod [参数]

  • 常用参数:

-c<备注>	修改用户账号的备注文字
-d<登入目录>	修改用户登入时的目录
-e<有效期限>	修改账号的有效期限
-f<缓冲天数>	修改在密码过期后多少天即关闭该账号
-g<群组>	修改用户所属的群组
-G<群组>	修改用户所属的附加群组
-l<账号名称>	修改用户账号名称
-L	锁定用户密码,使密码无效
-s<shell>	修改用户登入后所使用的shell
-u<uid>	修改用户ID
-U	解除密码锁定
  • 更改登陆目录:
[root@linuxcool ~]# usermod -d /home/hnlinux root
  • 改变用户的uid:
[root@linuxcool ~]# usermod -u 777 root
  • 修改用户名为linux:
[root@linuxcool ~]# usermod -l Linux linuxcool
  • 锁定linuxcool的密码:
[root@linuxcool ~]# usermod -L linuxcool
  • 解锁linuxcool的密码:
[root@linuxcool ~]# usermod -U linuxcool

userdel 命令详解

  • userdel命令用于删除指定的用户及与该用户相关的文件,英文全称即“user delete”。
  • 其实userdel命令实际上是修改了系统的用户账号文件 /etc/passwd、/etc/shadow以及/etc/group文件。
  • 这与Linux系统”一切操作皆文件”的思想正好吻合。

值得注意的是,但是如果有该要删除用户相关的进程正在运行,userdel命令通常不会删除一个用户账号。如果确实必须要删除,可以先终止用户进程,然后再执行userdel命令进行删除。但是userdel命令也提供了一个面对该种情况的参数,即”-f”选项。

语法格式:userdel [参数] [用户名]

  • 常用参数:
-f	强制删除用户账号
-r	删除用户主目录及其中的任何文件
-h	显示命令的帮助信息

  • 删除用户,但不删除其家目录及文件:
[root@linuxcool ~]# userdel linuxcool
  • 删除用户,并将其家目录及文件一并删除:
[root@linuxcool ~]# userdel -r linuxcool
  • 强制删除用户:
[root@linuxcool ~]# userdel -f linuxcool

groupadd 命令详解

  • groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

  • 语法格式:groupadd [参数]

  • 常用参数:

-g	指定新建工作组的id
-r	创建系统工作组,系统工作组的组ID小于500
-K	覆盖配置文件“/ect/login.defs”
-o	允许添加组ID号不唯一的工作组
  • 使用-g参数新建linuxcool工作组名,1005是工作组id:
[root@linuxcool ~]# groupadd -g 1005 linuxcool

-使用-r创建系统工作组:

[root@linuxcool ~]# groupadd -r -g 368 linuxcool

groupdel 命令详解

  • groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。

  • userdel修改系统账户文件,删除与 GROUP 相关的所有项目。给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

  • 语法格式:groupdel [参数] [群组名称]

  • 常用参数:

-h	显示帮助信息
-R	在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件
  • 使用groupdel命令删除linuxcool工作组:
[root@linuxcool ~]# groupdel linuxcool
  • 查看linuxcool组是否删除成功:
[root@linuxcool ~]# more /etc/group|grep linuxcool
通过查看/etc/group配置文件里面不存在linuxcool组,说明已经被删除了。

chmod 命令详解

  • chmod命令主要用于修改文件或者目录的权限,例如chmod o+w test.txt,赋予test.txt其他人w写权限

  • 语法格式: chmod [参数] [文件]

  • 常用参数:

  • -R 目录下所有文件

-c	若该文件权限确实已经更改,才显示其更改动作
-f	若该文件权限无法被更改也不显示错误讯息
-v	显示权限变更的详细资料
-R	对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
  • 将档案 file1.txt 设为所有人皆可读取:
[root@linuxcool ~]# chmod a+r file.txt  
  • 将目前目录下的所有文件与子目录皆设为任何人可读取 :

[root@linuxcool ~]# chmod -R a+r *   
  • 将 file.txt 设定为只有该文件拥有者可以执行:
[root@linuxcool ~]# chmod u+x file.txt

chown 命令详解

  • chown命令主要用于文件或者文件夹宿主及属组的修改,命令格式例如chown –R root.root /tmp/test.txt,表示修改test.txt文件的用户和组均为root
用法:chown [选项]... [所有者][:[组]] 文件...
 或:chown [选项]... --reference=参考文件 文件...
更改每个文件的所有者和/或所属组。
当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。
-f, --silent, --quiet 去除大部份的错误信息
--reference=参考文件			    使用参考文件的所属组,而非指定值;
-R, --recursive         			递归处理所有的文件及子目录;
-v, --verbose           			为处理的所有文件显示诊断信息;
-H         						命令行参数是一个通到目录的符号链接,则遍历符号链接;
-L        						历每一个遇到的通到目录的符号链接;
-P         						历任何符号链接(默认);
--help      						显示帮助信息并退出;
--version         				显示版本信息并退出。

  • 将test.txt文件用户组与用户都改为bin:
[root@linuxcool ~]# ll test.txt.bz2 
-rw-r--r-- 1 root root 56 Jul 22 20:17 test.txt.bz2
[root@linuxcool ~]# chown bin:bin test.txt.bz2    
[root@linuxcool ~]# ll test.txt.bz2
-rw-r--r-- 1 bin bin 56 Jul 22 20:17 test.txt.bz2

  • 显示改动动作:
[root@linuxcool ~]# ll test.txt 
-rw-r--r-- 1 root root 45 Jul 22 21:11 test.txt
[root@linuxcool ~]# chown -c bin:bin test.txt 
changed ownership of `test.txt' to bin:bin

  • 将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup:
[root@linuxcool ~]# chown -R linuxcool:linuxcoolgroup *  

文件管理相关

touch命令详解

  • 主要用于创建文件、修改时间
    • touch -t 2103081018 he.txt 修改he.txt文档,时间为21年3月18日10点18分
    • touch haha.txt 创建 haha.txt文件
用法:touch [选项]... 文件...
将每个文件的访问时间和修改时间改为当前时间;
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项;
如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间;
长选项必须使用的参数对于短选项时也是必需使用的;
-a                   		只更改访问时间;
-c, --no-create      		    不创建任何文件;
-d, --date=字符串    		    使用指定字符串表示时间而非当前时间;
-f                   		(忽略);
-h, --no-dereference 		    会影响符号链接本身,而非符号链接所指示的目的地;
							(当系统支持更改符号链接的所有者时,此选项才有用);
-m                   		只更改修改时间;
-r, --reference=文件 		    使用指定文件的时间属性而非当前时间;
-t STAMP             		使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间;
--time=WORD          		使用WORD 指定的时间:access、atime、use 都等于-a;
							选项的效果,而modify、mtime 等于-m 选项的效果;
--help            	 		显示此帮助信息并退出;
--version            		    显示版本信息并退出。

mkdir命令详解

  • 主要用于创建目录
  • 常用参数
    • mkdir -pv hbs 创建目录
    • [root@localhost ~]# mkdir -p a/b/e,f,c,d/g,h 命令扩展 大括号
用法:mkdir [选项]... 目录;若指定目录不存在则创建目录;
长选项必须使用的参数对于短选项时也是必需使用的;
-m, --mode=模式     		设置权限模式(类似chmod),而不是rwxrwxrwx 减umask;
-p, --parents       		需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理;
-v, --verbose       		每次创建新目录都显示信息;
-Z, --context=CTX   		将每个创建的目录的SELinux 安全环境设置为CTX;
--help          			显示此帮助信息并退出;
--version      			显示版本信息并退出。

rmdir 删除目录

rm 命令详解

  • 主要用于删除文件和目
  • 常用命令
    • rm -r 递归删除目录及其内容
    • rm -rf 强制删除。忽略不存在的文件,不提示确认
用法:rm [选项]... 文件...删除 (unlink) 文件。
-f, --force            	    强制删除。忽略不存在的文件,不提示确认;
-i                    	在删除前需要确认;
-I                    	在删除超过三个文件或者递归删除前要求确认。此选项比-i 提示内容更少,但同样可以阻止大多数错误发生;
-r, -R, --recursive    	    递归删除目录及其内容;
-v, --verbose          	详细显示进行的步骤;
--help                	显示此帮助信息并退出;
--version             	显示版本信息并退出;
默认时,rm 不会删除目录,使用--recursive(-r 或-R)选项可删除每个给定的目录,以及其下所有的内容;
要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:
rm -- -foo
rm ./-foo

cp命令详解

  • 主要用于拷贝文件
  • 常用命令
    • [root@hbs ~]# cp -r b/c/ /tmp/ 拷贝目录
    • 拷贝文件,只能一对一
    • 拷贝多个目录,只能是目录
    • -i 覆盖式提示信息
    • -f 强制复制
    • -p 保留原有属性
用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive                	    等于-dR --preserve=all;
    --backup[=CONTROL        	为每个已存在的目标文件创建备份;
-b                           	类似--backup 但不接受参数;
    --copy-contents          	    在递归处理是复制特殊文件内容;
-d                           	等于--no-dereference --preserve=links;
-f, --force                  	    如果目标文件无法打开则将其移除并重试(当 -n 选项;
								存在时则不需再选此项);
-i, --interactive            	        覆盖前询问(使前面的 -n 选项失效);
-H                           	跟随源文件中的命令行符号链接;
-l, --link                   	    链接文件而不复制;
-L, --dereference            	    总是跟随符号链接;
-n, --no-clobber             	    不要覆盖已存在的文件(使前面的 -i 选项失效);
-P, --no-dereference         	    不跟随源文件中的符号链接;
-p                           	等于--preserve=模式,所有权,时间戳;

mv 命令详解

  • 移动、重命名
    • 目标在本地,是重命名
    • 目标在远端,是移动
用法:mv [选项]... [-T] 源文件 目标文件;
或:mv [选项]... 源文件... 目录;
或:mv [选项]... -t 目录 源文件;
将源文件重命名为目标文件,或将源文件移动至指定目录。长选项必须使用的参数对于短选项时也是必需使用的。
      --backup[=CONTROL]       	为每个已存在的目标文件创建备份;
-b                             		类似--backup 但不接受参数;
-f, --force                     		覆盖前不询问;
-i, --interactive               		    覆盖前询问;
-n, --no-clobber                		不覆盖已存在文件,如果您指定了-i、-f、-n 中的多个,仅最后一个生效;
    --strip-trailing-slashes    		    去掉每个源文件参数尾部的斜线;
-S, --suffix=SUFFIX             		替换常用的备份文件后缀;
-t, --target-directory=DIRECTORY		将所有参数指定的源文件或目录;
									移动至 指定目录;
-T, --no-target-directory       		    将目标文件视作普通文件处理;
-u, --update                    		只在源文件文件比目标文件新,或目标文件;
									不存在时才进行移动;
-v, --verbose         	      			详细显示进行的步骤;
--help                         		显示此帮助信息并退出;
--version                       		显示版本信息并退出。

cat命令详解

  • 主要用于查看文件内容(适用短文本)
  • 常用命令
    • cat -n he.txt 显示行号的
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
-A, --show-all        			等于-vET;
-b, --number-nonblank 			对非空输出行编号;
-e                    		等于-vE;
-E, --show-ends       			在每行结束处显示"$";
-n, --number          		对输出的所有行编号;
-s, --squeeze-blank   			不输出多行空行;
-t                    		与-vT 等价;
-T, --show-tabs       			将跳格字符显示为^I;
-u                    		(被忽略);
-v, --show-nonprinting			使用^ 和M- 引用,除了LFD和 TAB 之外;
--help            			显示此帮助信息并退出;
--version             		显示版本信息并退出。

  • cat …EOF …EOF用法
    • 添加内容,会覆盖前面内容

    • 追加内容

[root@hbs a]# cat > /tmp/hbs.txt <<EOF
> my name is hbs
> I love a girl
> EOF
[root@hbs a]# 

[root@hbs a]# cat >> /tmp/hbs.txt <<EOF 追加内容
> I LOVE LIU AO NI
> EOF
[root@hbs a]# 

head命令详解

  • 主要用于查看文件内容,通常查看头10行
  • 常用命令
    • [root@hbs ~]# head -3 anaconda-ks.cfg 看前3行
用法:head [选项]... [文件]...
将每个指定文件的头10 行显示到标准输出。
如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。
如果不指定文件,或者文件为"-",则从标准输入读取数据,长选项必须使用的参数对于短选项时也是必需使用的;
-q, --quiet, --silent				    不显示包含给定文件名的文件头;
-v, --verbose        				总是显示包含给定文件名的文件头;
--help               				显示此帮助信息并退出;
--version            				显示版本信息并退出;
-c,  --bytes=[-]K    				显示每个文件的前K 字节内容,如果附加"-"参数,则除了每个文件的最后K字节数据外显示剩余全部内容;
-n, --lines=[-]K     				显示每个文件的前K 行内容,如果附加"-"参数,则除了每个文件的最后K 行外显示剩余全部内容。

tail 命令详解

  • 主要用于查看文件内容,通常用于尾 10行
  • 常用命令
    • tail -10 anaconda-ks.cfg 查看尾 10行
用法:tail [选项]... [文件]...
显示每个指定文件的最后10 行到标准输出。
若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。
如果不指定文件或文件为"-" ,则从标准输入读取数据。
长选项必须使用的参数对于短选项时也是必需使用的。
-n, --lines=K              			输出的总行数,默认为10行;
-q, --quiet, --silent      				不输出给出文件名的头;
--help            		   			显示此帮助信息并退出;
--version         		   			显示版本信息并退出;
-f, --follow[=name|descriptor]			即时输出文件变化后追加的数据;
              -f, --follow 等于--follow=descriptor 
-F            即--follow=name –retry
-c, --bytes=K         				    输出最后K字节;另外,使用-c +K 从每个文件的第K字节输出。

find命令详解

  • 实时查找,精确性强,遍历指定目录中所有文件完成查找,
  • 查找速度慢,支持众多查找标准。
  • 语法:find [OPTION…] 查找路径 查找标准 查找到以后的处理动作
    • 查找路径 默认为当前目录
    • 查找标准 默认为指定路径下的所有文件
-name 'filename'    对文件名作精确匹配.支持glob通配符机制
-iname 'filename'   文件名匹配时不区分大小写
-regex pattern      基于正则表达式进行文件名匹配.以pattern 匹配整个文件路径字符串,而不仅仅是文件名称
-user username          根本属主来查找
-group groupname        根据属组来查找
-uid        	根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID
-gid        	根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID
-nouser   	查找没有属主的文件.用户被删除的情况下产生的文件,只有uid没有属主
-nogroup	查找没有属组的文件.组被删除的情况下产生的文件,只有gid没有属组
-type       	根据文件类型来查找(f,d,c,b,l,p,s)
-size            根据文件大小进行查找。如1k、1M,+10k、+10M,-1k、-1M, +表示大于,-表示小于
---------
mtime        修改时间
-ctime       改变时间
-atime       访问时间+5 ,5天前;-5,5天以内
-mmin        多少分钟修改过
-cmin        多少分钟改变过
-amin        多少分钟访问过, +5 ,5分钟前;-5,5分钟以内
-perm mode   根据权限精确查找
-perm -mode  文件权限能完全包含此mode时才符合条件
-perm /mode  9位权限中有任何一位权限匹配都视为符合查找条件

处理动作:默认为显示到屏幕上
-print      显示
-ls         类似ls -l的形式显示每一个文件的详细信息
-delete     删除查找到的文件
-fls /path/to/somefile      查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND  \\;   对查找到的每个文件执行COMMAND,每次操作都需要用户确认
-exec COMMAND  \\; 对查找到的每个文件执行COMMAND,操作不需要确认
[root@localhost ~]# find / -name abc **找名字是 abc的**
/root/abc
/opt/abc


[root@localhost ~]# find / -iname abc  **忽略大小写的**
/root/abc
/opt/abc
/opt/ABC


[root@localhost ~]# find / -nouser tom **找没有user的**

[root@localhost ~]# find -type d **找目录**
.
./a
./a/b
./a/b/e


[root@localhost ~]# find -size -1M **小于1m的文件**

./00:00:00
./2021

[root@localhost ~]# find -size +1k  **大于1k的文件**
.
./.bash_history
./anaconda-ks.cfg

[root@localhost ~]# find -mmin +1  **一分钟前改变的**
./.bash_logout
./.bash_profile
./.bashrc

[root@localhost ~]# find -type d  -name 5  必须是目录,名字是 5的目录
./5
[root@localhost ~]# find -type f  -name 5
[root@localhost ~]# 


[root@localhost ~]# find -type d  -name 5 -ls **组合命令**
33576693    0 drwxr-xr-x   2 root     root            6 Apr  8 10:25 ./5
[root@localhost ~]# 

[root@localhost ~]# find -type f -name he.txt -print  **查找 名字为he.txt的文件,并且打印出来**
./he.txt
[root@localhost ~]# 

[root@localhost ~]# find -type f  -name 5 -delete **查找名字是 5的文件,并删除
**
[root@localhost opt]# find ./ -type f -name *.sh -exec mv  /opt/ \\;  将当前文件 名为 .sh 的文件移动到 /OPT下

more命令详解

  • 从前往后看,不能回退
  • 有进度条显示

less 命令详解

  • 可以回退,空格 从前往后翻屏幕。
  • 从后往前翻屏,b键
  • q键 退出查看

du 命令详解

  • 常用于查看文件在磁盘中的使用量
  • 常用命令
    • [root@hbs ~]# du -sh /tmp/ 查看当前目录所有文件及文件及的大小

df 命令详解

  • 主要用于查询磁盘分区
  • 常用命令
    • df –h,查看磁盘分区信息
[root@hbs ~]# du -sh /boot/   查看目录及文件大小
110M    /boot/
[root@hbs ~]# df -h /boot/    查看boot 目录的使用情况
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       197M  121M   77M  62% /boot
[root@hbs ~]# 
用法:df [选项]... [文件]...
显示每个文件所在的文件系统的信息,默认是显示所有文件系统。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all                  显示所有文件系统的使用情况,包括虚拟文件系统;
-B, --block-size=SIZE      使用字节大小块;
-h, --human-readable       以人们可读的形式显示大小;
-H, --si                  同-h,但是强制使用1000而不是1024;
-i, --inodes              	显示inode 信息而非块使用量;
-k                      	即--block-size=1K;
-l, --local               	只显示本机的文件系统;
    --no-sync            	取得使用量数据前不进行同步动作(默认);
-P, --portability            使用POSIX 兼容的输出格式;
    --sync              	取得使用量数据前先进行同步动作;
-t, --type=类型          	只显示指定文件系统为指定类型的信息;
-T, --print-type          	显示文件系统类型;
-x, --exclude-type=类型  	只显示文件系统不是指定类型信息;
--help            	    显示帮助信息并退出;
--version         	    显示版本信息并退出

wc 命令详解

  • 主要用于统计文本、字符(数字、符号、空格、行等)
  • 常用命令
    • [root@hbs ~]# wc -l anaconda-ks.cfg 查看看它有多少行
    • [root@hbs ~]# wc -c anaconda-ks.cfg 查看它有多少个字符
    • [root@hbs ~]# wc -w anaconda-ks.cfg 查看它有多少个单词
[root@hbs ~]# wc anaconda-ks.cfg 
  52  148 1511 anaconda-ks.cfg     (行、单词、字符)
[root@hbs ~]

[root@hbs ~]# cat anaconda-ks.cfg | wc -l  #查看多少行
52
[root@hbs ~]# 

cut 命令详解

  • 取出指定列的选项
  • 常用命令选项
    • -d 指定分隔符
    • -f 指定要显示的列
[root@localhost ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin


[root@localhost ~]# head -5 /etc/passwd|cut -d : -f6  取出/etc/passwd 以冒号为分隔符,第6列
/root
/bin
/sbin
/var/adm
/var/spool/lpd
[root@localhost ~]# 

[root@localhost ~]# head -3 /etc/passwd|cut -d: -f1
root
bin
daemon
[root@localhost ~]# 

awk命令详解

  • 处理列的内容
  • 常用命令选项
    • -F 指定分割符 `‘NR==行print $需要的列’ 文件名
[root@localhost ~]# awk -F: 'print $1' /etc/passwd|head -5  以冒号为分隔符,查看 passwd 前5行的一个。
root
bin
daemon
adm
lp
[root@localhost ~]# 

[root@localhost ~]# df -h|awk 'print $4'   分割符默认是 空格,如果不是 -F
Avail
19G
901M
912M
888M
912M
77M
183M
0
[root@localhost ~]# 

[root@localhost ~]# df -h|awk 'NR==3print $4' 第4列第3行
901M
[root@localhost ~]# 


[root@localhost ~]# df -h|awk 'NR==2print NF' 最后一列(NF),第二行
6
[root@localhost ~]# df -h|awk 'NR==2print $(NF-2)' 倒数多少列,第二行

sed命令详解

  • 处理行的内容
  • sed 选项 动作 文件名
    • -c 修改
    • -s 替换
    • -a 追加
    • -p 打印
    • -d 删除
  • 常用命令
    • sed -i ‘1s/^#//g’ bcd 去除#号
[root@localhost ~]# sed '2p' bcd 
123
456
456
23
[root@localhost ~]# sed -n '2p' bcd 
456
[root@localhost ~]# sed -n '1p' bcd 
123
[root@localhost ~]# sed -n '3p' bcd 
23

[root@localhost ~]# sed -n '/456/p' bcd 匹配456 打印
456
[root@localhost ~]# 


[root@localhost ~]# sed '3s/23/9999/g' bcd  第3行的23 替换成 999
123
456
9999
[root@localhost ~]# 


[root@localhost ~]# cat bcd 
#123
#456
#23
[root@localhost ~]# sed '1s/^#//g' bcd  将第1行的#号替换为 空,并没有修改原文件
123
#456
#23
[root@localhost ~]# 

[root@localhost ~]# sed -i '1s/^#//g' bcd  修改源文件了的

[root@localhost ~]# sed -i '1c888' bcd 将第一行改成 888
[root@localhost ~]# 


grep 命令详解

  • 文本查找
  • 常用命令参数
    • i 忽略大小写
    • v 显示没有匹配的项
    • E,一般用于 egrep
 grep egrep fgrep
    grep        根据模式搜索文本,并将符合模式的文本行显示出来。 
                   使用基本正则表达式定义的模式来过滤文本的命令。
        Pattern(模式)     文本字符和正则表达式的元字符组合而成的匹配条件
        -i         忽略大小写
        --color 匹配到的内容高亮显示
        -v        显示没有被模式匹配到的行
        -o       只显示被模式匹配到的字符串
        -E        使用扩展正则表达式。grep -E相当于使用egrep
        -q        静默模式,不输出任何信息
        -A 1     被模式匹配到的内容以及其后面一行的内容都显示出来
                    如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来
        -B 1     被模式匹配到的内容以及其前面一行的内容都显示出来
                    如果把1改成2就表示被模式匹配到的内容以及其前面2行的内容均显示出来
        -C 1     被模式匹配到的内容以及其前后的行各显示1行,如果把1改成2 
                    就表示被模式匹配到的内容以及其前后的行各显示2行。
        
    fgrep       不支持正则表达式,执行速度快

[root@localhost ~]# cat g.txt 
world
WORLDshar
worldhelo
123456
woLD
worLD
World
WOF
[root@localhost ~]# cat g.txt |grep world 过滤world
world
worldhelo
[root@localhost ~]# cat g.txt |grep -i world 过滤world,忽略大小写 
world
WORLDshar
worldhelo
worLD
World

[root@localhost ~]# cat g.txt |grep -v world 取反
WORLDshar
123456
woLD
worLD
World
WOF
[root@localhost ~]# 

[root@localhost ~]# cat g.txt |egrep -E world
world
worldhelo
[root@localhost ~]# 

echo 命令详解

  • 主要用于打印字符或者回显
  • 常常和管道符连用
  • “>” 覆盖
  • “>>” 追加
  • 扩展 -e,主要用于写脚本
\\033[30m 黑色字 \\033[0m
\\033[31m 红色字 \\033[0m
\\033[32m 绿色字 \\033[0m
\\033[33m 黄色字 \\033[0m
\\033[34m 蓝色字 \\033[0m
\\033[35m 紫色字 \\033[0m
\\033[36m 天蓝字 \\033[0m
\\033[37m 白色字 \\033[0m
\\033[40;37m 黑底白字 \\033[0m
\\033[41;37m 红底白字 \\033[0m
\\033[42;37m 绿底白字 \\033[0m
\\033[43;37m 黄底白字 \\033[0m
\\033[44;37m 蓝底白字 \\033[0m
\\033[45;37m 紫底白字 \\033[0m
\\033[46;37m 天蓝底白字 \\033[0m
\\033[47;30m 白底黑字 \\033[0m


  • auto_lamp_v2.sh
#!bin/sh
echo -e "\\033[036m Please select intstall Menu follow:\\033[0m"
echo -e "\\033[32m 1)install Apache Server\\033[1m"
echo "2)install Mysql Server"
echo "3)install PHP Server"
echo "4)Configuration index.php and start LAMP Server"
echo -e "\\033[31mUsage: /bin/sh $0 1|2|3|4|hep\\033[0m"

文本排序与去重

  • sort 排序
  • uniq 去重
    • -c 显示它出现的次数
    • -u 显示不重复的
    • -d 显示重复的
[root@localhost ~]# cat >> abc <<EOF
> 1
> 23
> 22
> 11
> 0
> 9
> 1
> 2
> 3
> 4
> 5
> 7
> 6
> 7
> 8
> EOF


[root@localhost ~]# sort -n abc 
0
1
1
2
3
4
5
6
7
7
8
9
11
22
23

[root@localhost ~]# sort -n abc|uniq
0
1
2
3
4
5
6
7
8
9
11
22
23
[root@localhost ~]# 

[root@localhost ~]# sort -n abc|uniq -d
1
7
[root@localhost ~]# sort -n abc|uniq -c
      1 0
      2 1
      1 2
      1 3
      1 4
      1 5
      1 6
      2 7
      1 8
      1 9
      1 11
      1 22
      1 23
[root@localhost ~]# sort -n abc|uniq -u  显示不重复的
0
2
3
4
5
6
8
9
11
22
23
[root@localhost ~]# 


tree 命令详解

  • 查看目录结构
warning: /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]
[root@localhost ~]# 

[root@localhost ~]# which tree 查看命令安装位置
/usr/bin/which: no tre in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# 

[root@localhost ~]# mkdir p/j/d,h,k/n,,m -p 创建目录
[root@localhost ~]# tree p  查看目录结构
p
├── j
│   ├── d
│   └── h
└── k
    ├── m
    └── n

6 directories, 0 files

软件资源管理相关

系统资源相关

tar、zip命令详解

  • 常用几种格式
    • .tar.gz (tar)
    • .tar.bz2 (tar),需要安装bzip2安装包
    • .tar.xz (tar)
    • .zip (zip) 跨平台的
  • 压缩比:gz<bz<xz (xz压缩效果最好,推荐使用tar.xz)
  • 常用压缩文件选项
    • -zcf 创建一个gz的文件压缩包
    • -jcf 创建一个bz2的文件压缩包
    • -Jcf 创建一个xz格式的文件压缩包
      -常用解压文件选项
    • -xf 解压指定文件(gz、xz用)
    • -xvf 解压指定文件并显示解压过程(gz、xz用)
    • -xjf 解压bz2文件的
  • 查看压缩的文件
    • -tvf 不解压查看一个文件
-c      创建归档
-z      压缩成gz格式
-j      压缩成bz2格式
-v      显示详细信息
-t      不解压查看压缩包内容
-f      指定要压缩或解压缩的文件
-x      解压缩
-C      将压缩文件解压到指定目录
[root@localhost ~]# ls /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm 查看bzip2安装包
[root@localhost ~]# rpm -ivh /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm 安装bzip2安装包
warning: /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
	package bzip2-1.0.6-13.el7.x86_64 is already installed


[root@localhost ~]# tar -jcf hehe.tar.bz2 [[:alnum:]]  将数字、大小写字母 压缩为hehe.tar.bz2包

[root@localhost ~]# tar -Jcf big.tar.xz *  将所有文件压缩成 tar.xz格式
[root@localhost ~]# tar -tvf big.tar.xz 不解压查看big.tar.xz 压缩包

[root@localhost opt]# tar xf digit.tar.gz 解压digit(单个数字)压缩包
[root@localhost opt]# ls
1  2  3  4  8  alnum.tar.bz2  big.tar.xz  digit.tar.gz  hehe.tar.bz2
[root@localhost opt]# rm -f [[:digit:]] 删除数字
[root@localhost opt]# ls
alnum.tar.bz2  big.tar.xz  digit.tar.gz  hehe.tar.bz2
[root@localhost opt]# tar -xvf digit.tar.gz 

[root@localhost opt]# tar -xvf digit.tar.gz -C ~解压到家目录

zip 命令

  • 和gz2一样,也需要单独安装zip和unzip(看情况)
  • zip xx.zip 压缩
  • unzip xx.zip 解压缩
[root@localhost opt]# which zip    查看有没有zip 命令
/usr/bin/which: no zip in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost opt]# ls /mnt/Packages/zip-3.0-11.el7.x86_64.rpm 
/mnt/Packages/zip-3.0-11.el7.x86_64.rpm
[root@localhost opt]# rpm -ivh /mnt/Packages/zip-3.0-11.el7.x86_64.rpm 安装zip命令
warning: /mnt/Packages/zip-3.0-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zip-3.0-11.el7                   ################################# [100%]
[root@localhost opt]# 

[root@localhost ~]# zip liuaoni.zip [[:digit:]] 将数字压缩zip格式
  adding: 1 (stored 0%)
  adding: 2 (stored 0%)
  adding: 3 (stored 0%)
  adding: 4 (stored 0%)
  adding: 8 (stored 0%)
[root@localhost ~]# unzip liuaoni.zip 解压zip文件

rpm 命令详解

  • Linux软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。Linux常见软件包分为两种,分别是源代码包(Source Code)、二进制包(Binary Code),源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行,二进制包无需编译,可以直接安装使用。
  • 通常而言,可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar结尾的包通常称之为源码包,以.rpm结尾的软件包称之为二进制包。真正区分是否为源码还是二进制还得基于代码里面的文件来判断,例如包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源码包,而代码代码里面存在bin可执行文件,称之为二进制包。
  • CentOS操作系统中有一款默认软件管理的工具,红帽包管理工具(Red Hat Package Manager,RPM)。
  • 使用RPM工具可以对软件包实现快速安装、管理及维护。RPM管理工具适用的操作系统包括:CentOS,RedHat,Fedora,SUSE等,RPM工具常用于管理.rpm后缀结尾的软件包。
  • RPM包命名格式为:
name-version.rpm
name-version-noarch.rpm
name-version-arch.src.rpm
  • 如下软件包格式:
epel-release-6-8.noarch.rpm
perl-Pod-Plainer-1.03-1.el6.noarch.rpm
yasm-1.2.0-4.el7.x86_64.rpm

  • 常用命令参数
PM 选项 PACKAGE_NAME
-a, --all  						查询所有已安装软件包;
-q,--query     				表示询问用户,输出信息;
-l, --list      				打印软件包的列表;
-f, --file 						FILE 查询包含 FILE 的软件包;
-i, --info 						显示软件包信息,包括名称,版本,描述;
-v, --verbose   				打印输出详细信息;
-U, --upgrade   				升级RPM软件包;
-h,--hash       				软件安装,可以打印安装进度条;
--last 						列出软件包时,以安装时间排序,最新的在上面;
-e, --erase     				卸载rpm软件包
--force         				表示强制,强制安装或者卸载;
--nodeps        				RPM包不依赖
-l, --list 						列出软件包中的文件;
--provides 					列出软件包提供的特性;
-R, --requires  				列出软件包依赖的其他软件包;
--scripts       				列出软件包自定义的小程序。

rpm  -q  			httpd 						 检查httpd包是否安装;
rpm  -ql  			httpd 						 查看软件安装的路径;
rpm  -qi  			httpd 						 查看软件安装的版本信息;
rpm  -e  			httpd  						 卸载httpd软件;
rpm  -e  --nodeps    httpd  					 强制卸载httpd;
rpm  -qa|grep      	httpd                      	 检查httpd相关的软件包是否安装。
rpm  -ivh  			httpd-2.4.10-el7.x86_64.rpm	     安装httpd软件包;
rpm  -Uvh 			httpd-2.4.10-el7.x86_64.rpm	     升级httpd软件;
rpm  -ivh  --nodeps    httpd-2.4.10-el7.x86_64.rpm	 不依赖其他软件包;

yum 命令详解

开关机相关

shutdown命令详解

  • 关机,重启,定时关机
  • 语法:shutdown [选项]
  • 常用命令参数
    • -r => 重新启动计算机
    • -h => 关机
    • -h 时间 =>定时关机
[root@localhost ~]# shutdown -h +10      #10分钟之后关机
[root@localhost ~]# shutdown -h 23:30     #指定具体的时间点进行关机
[root@localhost ~]# shutdown -h now      #立即关机
[root@xuegod63 ~]#shutdown -r  22:22    #22:22 以后重启

init

  • 作用:切换系统运行级别
  • 语法:init 0-6
Linux 7个启动级别:
0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2 多用户模式,没有NFS和网络支持
3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5 图形化模式,登陆后进入图形GUI模式,X Window系
6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
[root@localhost ~]# init 0   #关机
[root@localhost ~]# init 3   #进入3级别字符界面
[root@localhost ~]# init 5   #进入5级别图形界面

[root@localhost ~]# systemctl get-default 查兰当前默认启动级别
multi-user.target
[root@localhost ~]# 

```

## reboot
## poweroff

# 命令替换
- 方式1:反引号 ``  
- 方式2:$()
```
[root@localhost ~]# touch $(date '+%Y%m%d%%H%M%S')
[root@localhost ~]# date -s 20210307
Sun Mar  7 00:00:00 CST 2021

[root@localhost ~]# touch `whoami` 

```

# bash常用操作
## 快捷键
    Ctrl+a      跳到命令行首
    Ctrl+e      跳到命令行尾
    Ctrl+u      删除光标至命令行首的内容
    Ctrl+k      删除光标至命令行尾的内容
    Ctrl+<--    光标定位到离自己最近的一个单词前面
    Ctrl+l      清屏
    
## 命令历史
```
-history            查看命令历史
-c              清空命令历史
-d OFFSET [n]   删除指定位置的命令历史
-w              保存命令历史至历史文件~/.bash_history中
  • 命令历史的使用技巧
!n           执行命令历史中的第n条命令
!-n          执行命令历史中倒数第n条命令
!!           执行上一条命令
!string      执行命令历史中最近一个以指定字符串开头的命令
!$           引用前一个命令的最后一个参数
ctrl+R       搜索历史命令

文件名通配符

*       匹配任意长度的任意字符
?       匹配任意单个字符
[]      匹配指定范围内的任意单个字符
\\       转义,只显示目标本身
.
    [abc],[a-m],[0-9]
    [[:space:]]    表示空白字符
    [[:punct:]]    表示标点符号
    [[:lower:]]    表示小写字母
    [[:upper:]]    表示大写字母
    [[:alpha:]]    表示大小写字母
    [[:digit:]]    表示数字
    [[:alnum:]]    表示数字和大小写字母
    [^]     匹配指定范围之外的任意单个字符
  • 演示
[root@localhost ~]# touch hehe
[root@localhost ~]# mkdir xixi
[root@localhost ~]# ls ???
Apr  CST  Thu
[root@localhost ~]# ls ????   匹配四个字符的
2021  hehe  root

xixi:

[root@localhost ~]# ls [[:upper:]] 匹配单个大写字母
A  B  C  V


[root@localhost ~]# ls [[:lower:]]  匹配单个小写字母
c

a:
b   b  c  d
[root@localhost ~]# ls [[:digit:]]   匹配单个数字
1  2  3  4  8
[root@localhost ~]# ls [[:alpha:]] 匹配单个大写、小写字母
A  B  c  C  D  F  V

a:
b   b  c  d
[root@localhost ~]# ls [[:alnum:]]  匹配数字、大小写字母
1  2  3  4  8  A  B  c  C  D  F  V

a:
b   b  c  d
[root@localhost ~]# 



环境变量

PATH        命令搜索路径
HISTSIZE    命令历史缓冲区大小
SHELL       当前shell

bash内置变量

RANDOM      保存着0-32768之间的随机数

总结

linux 基础命令是有很多的,也是很杂的,这是我从某知名培训机构学习后,进过自己日常中总的次数,总结下来的。希望看到这篇文章可以给你带来光明。如果你喜欢我,请点个赞,收藏,关注下吧,说不定哪天就用到了呢

linux学习-linux系统及编程基础笔记(代码片段)

useraddzhangsanpasswdzhangsanvisudo往/etc/sudoers文件中添加zhangsan#visudo找到如下的行rootALL=(ALL)ALL往该行下面添加zhangsanzhangsanALL=(ALL)ALL2.2Linux的基本结构一些根文件系统中较为重要的二级目录:①/boot:存放系统引导时所需的文件&#... 查看详情

建议收藏linux必备基础命令(代码片段)

Linux必备基础命令1.操作系统2.虚拟机软件3.Ubuntu操作系统4.Linux内核及发行版5.查看目录命令6.切换目录命令7.绝对路径和相对路径8.创建、删除文件及目录命令9.复制、移动文件及目录命令10.终端命令格式的组成11.查看命令帮助12.ls... 查看详情

linux基础命令(代码片段)

玩转Linux操作系统说明:本文中对Linux命令的讲解都是基于名为CentOS的Linux发行版本,我自己使用的是阿里云服务器,系统版本为CentOSLinuxrelease7.6.1810。不同的Linux发行版本在Shell命令和工具程序上会有一些差别,但是这些差别是很... 查看详情

linux笔记:命令进阶使用相关功能(代码片段)

文章目录目的通配符转义符流程控制管道符重定向环境变量总结目的使用linux时用户可以通过一个又一个的命令来完成各种操作,除了基础的各个命令外linux还提供了各种便利的功能来协调使用这些命令。这些功能让用户在使... 查看详情

linux学习-linux系统及编程基础笔记(代码片段)

useraddzhangsanpasswdzhangsanvisudo往/etc/sudoers文件中添加zhangsan#visudo找到如下的行rootALL=(ALL)ALL往该行下面添加zhangsanzhangsanALL=(ALL)ALL2.2Linux的基本结构一些根文件系统中较为重要的二级目录:①/boot:存放系统引导时所需的文件&#... 查看详情

linux笔记:后台运行命令与脱离终端运行命令(代码片段)

文章目录目的后台运行命令脱离终端运行命令总结目的linux中我们一般都是在终端中通过命令进行各种操作,通常情况下一个终端同一时间只能执行一条命令,并且如果关闭当前终端或者注销登陆当前正在执行的命令会被... 查看详情

linux学习笔记2022-11-12---------linux基础(代码片段)

目录1.用户类型2.终端terminal2.1终端类型2.2查看当前的终端设备3.交互式接口3.1交互式接口类型3.2什么是shell3.3Shell是如何连接用户和内核的?3.4Shell还能连接其它程序3.5Shell也支持编程3.6Shell是一种脚本语言4.修改主机名5.命令提... 查看详情

[学习笔记]黑马程序员-hadoop入门视频教程(代码片段)

...5V特征应用场景1.4分布式与集群概念应用第二章:Linux操作系统概述2.1操作系统概念与分类操作系统概念操作系统分类Linux起源与发展Linux内核(Kernel)Linux发行版本第三章:3.1VMware虚拟机概念与安装VMware介绍VMvare功... 查看详情

学习笔记hadoop——hadoop基础操作(代码片段)

文章目录一、Hadoop安全模式1.1、HDFS启动日志分析1.2、Safemode进入方式二、Hadoop集群基本信息三、HDFS常用Shell操作3.1、HDFS文件系统3.2、常用Shell命令-appendToFile3.3、常用Shell命令-cat3.4、常用Shell命令-copyFromLocal|put3.5、常用Shell命令-cp3... 查看详情

linux学习笔记(代码片段)

linux学习笔记1.操作系统的发展史1.2Unix1.2Minix1.3Minix1.4Minix没有火起来的原因2.linux介绍2.1Linux内核版本2.2Linux发行版本2.3Linux目录结构2.4用户目录3.命令行的基本用法3.1命令的使用方式3.2查看帮助文档3.3tab自动补全3.4history游览历史3.5... 查看详情

linux基础操作命令(代码片段)

系统服务管理systemctlsystemctl命令是service和chkconfig命令的组合体,可用于管理系统。输出系统中各个服务的状态:systemctllist-units--type=service查看服务的运行状态:systemctlstatusfirewalld关闭服务:systemctlstopfirewalld启... 查看详情

⭐️《linux系列》⭐️linux基础命令(代码片段)

...言❤️⭐️Shell命令⭐️内部命令外部命令命令别名☀️基础命令☀️helpsupwdcdlsmkdircat/moretouchrmvicpmv❄️写在最后❄️❤️前言❤️Linux系统,大多数时候是通过命令行模式来使用的,因此熟悉Linux命令是必不可少的。本... 查看详情

⭐️《linux系列》⭐️linux基础命令(代码片段)

...言❤️⭐️Shell命令⭐️内部命令外部命令命令别名☀️基础命令☀️helpsupwdcdlsmkdircat/moretouchrmvicpmv❄️写在最后❄️❤️前言❤️Linux系统,大多数时候是通过命令行模式来使用的,因此熟悉Linux命令是必不可少的。本... 查看详情

linux基础09linux系统信息相关命令(代码片段)

本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况本小结学习的终端命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解目标时间和日... 查看详情

linux基础命令,目录文件操作,vi编辑器详解(代码片段)

...shell实际上是在linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,shell在用户和内核之间充当了一个“翻译官”的角色。当用户登录... 查看详情

linux基础知识|文件属性以及权限(代码片段)

...nux笔记内容。参考了以下文章:Linux文件基本属性Linux操作系统是一种多用户系统,不同的用户对某个文件拥有不同的权限。文件属性在Linux中使用ll命令来显示文件的属性[root@VM_0_14_centos~]#lltotal40916-rw-------.1rootroot2523Apr... 查看详情

python基础之linux基础:系统信息相关命令(代码片段)

系统信息相关命令本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况本小结学习的终端命令基本都是查询命令,通过这些命令对系统资源... 查看详情

python基础之linux基础:用户权限相关命令(代码片段)

用户权限相关命令目标用户和权限的基本概念用户管理终端命令组管理终端命令修改权限终端命令01.用户和权限的基本概念1.1基本概念用户是Linux系统工作中重要的一环,用户管理包括用户与组管理在Linux系统中,不论是... 查看详情