Linux基础命令一
Linux基本原则:
Linux是由单一的小程序组成进行相应的组合完成复杂任务
Linux的一切都是文件
Linux的配置文件保存都为纯文本模式
bash特性:
第一个特性——shell
shell(外壳) 在广义的理解中可以看作是一个用户的工作环境
在Windows中便shell便是桌面 而在Linux中便是终端
常见的shell主要是:图形化界面即为GUI 命令行终端即为CLI
常用的GUI(Graphic User Interface): 常用的CLI(Command Line Interface):
Windows bash sh csh zsh ksh tcsh
X-Winodws
Gnome KDE Xface
bash支持的特性:
- 支持命令历史、命令补全
- 支持管道、重定向
- 支持命令别名
- 支持命令行编辑
- 支持命令行展开
- 支持文件名通配
- 支持变量
- 支持编程
bash相应命令操作
bash支持的引号格式:
`` //反引号,键盘左上角Esc下面的键,用于命令替换"" //双引号,弱引用,可以实现变量替换'' //单引号,强引用,不完成变量替换[root@localhost ~]# a=15[root@localhost ~]# echo "$a"15[root@localhost ~]# echo '$a'$a
bash常用的操作:
/光标跳转Ctrl+a //跳到命令行首Ctrl+e //跳到命令行尾Ctrl+u //删除光标至命令行首的内容Ctrl+k //删除光标至命令行尾的内容Ctrl+<-- //光标定位到离自己最近的一个单词前面Ctrl+w //删除用空格隔开的字符单词Ctrl+l //清屏//命令历史history //查看命令历史-c //清空命令历史-d OFFSET [n] //删除指定位置的命令历史-w //保存命令历史至历史文件~/.bash_history中//命令历史的使用技巧!n //执行命令历史中的第n条命令!-n //执行命令历史中倒数第n条命令!! //执行上一条命令!string //执行命令历史中最近一个以指定字符串开头的命令!$ //引用前一个命令的最后一个参数esc,. //按下esc松开后按.,引用前一个命令的最后一个参数//命令补全搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件, \如果多于一个,两次tab,可以给出列表,否则将直接补全//路径补全搜索我们给出的起始路径下的每个文件名,并试图补全//命令别名:alias //查看系统别名alias CMDALIAS='COMMAND [options] [arguments]' //零时生效在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前的shell进程。//命令替换(把命令中某个子命令替换为其执行结果的过程)$(COMMAND) //推荐方式或`COMMAND`//命令行展开~ //展开为用户的家目录~USERNAME //展开为指定用户的家目录{} //可承载一个以逗号分隔的列表,并将其展开为多个路径/tmp/{a,b} = /tmp/a, /tmp/b/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi//文件名通配 globbing* //匹配任意长度的任意字符? //匹配任意单个字符[] //匹配指定范围内的任意单个字符[abc],[a-m],[0-9][[:space:]] //表示空白字符[[:punct:]] //表示标点符号[[:lower:]] //表示小写字母[[:upper:]] //表示大写字母[[:alpha:]] //表示大小写字母[[:digit:]] //表示数字[[:alnum:]] //表示数字和大小写字母使用man 7 glob命令可以获得以上字符集合的帮助信息!!![^] //匹配指定范围之外的任意单个字符//环境变量PATH //命令搜索路径HISTSIZE //命令历史缓冲区大小SHELL //当前shell//bash内置变量RANDOM //保存着0-32768之间的随机数
Linux命令
命令格式:
命令 [-选项] [参数]选项:(可以有0个或多个)短选项:-多个选项可以组合: -a -b = -ab长选项:--长选项通常不能组合参数:命令的作用对象(可以有0个或多个)
命令类型:
Linux命令主要分为两类:
内部命令(shell内置)
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type //显示指定命令属于哪种类型[root@localhost ~]# type hostnamectl //显示出hostnamectl是属于外部命令hostnamectl is /usr/bin/hostnamectl //具体命令路径显示[root@localhost ~]# type cd //显示出cd是内部命令cd is a shell builtin
基础命令:
ls //列出当前目录内容[root@localhost ~]# lsanaconda-ks.cfgls -l //列出当前目录内容使用长格式[root@localhost ~]# ls -ltotal 4-rw-------. 1 root root 1256 Jun 27 19:15 anaconda-ks.cfgln -s 名称 连接路径 //软连接相当于快捷方式[root@localhost ~]# ln -s anaconda-ks.cfg /opt/kin[root@localhost ~]# ls -l /opt/total 0lrwxrwxrwx. 1 root root 15 Jun 29 15:49 kin -> anaconda-ks.cfgln 名称 连接名称 //硬链接相当于将文件在复制一份[root@localhost ~]# ln anaconda-ks.cfg Gin[root@localhost ~]# lltotal 8drwxr-xr-x. 5 root root 33 Jun 29 14:40 a-rw-------. 2 root root 1478 Jun 28 16:37 anaconda-ks.cfg-rw-------. 2 root root 1478 Jun 28 16:37 Gin//文件类型的查看和含义- //普通文件(f)d //目录文件b //块设备文件(block)c //字符设备文件(character)l //符号链接文件(symbolic link file)p //命令管道(pipe)s //套接字文件(socket)文件权限 //9位,每3位一组,每一组:rwx(读,写,执行)文件硬链接的次数文件的属主(owner)文件的属组(group)文件大小(size),单位是字节时间戳(timestamp),最近一次被修改的时间访问 //access修改 //modify,文件内容发生改变改变 //change,metadata(元数据)-h //做单位转换-a //显示以.开头的隐藏文件. //表示当前目录.. //表示父目录-d //显示目录自身属性-i //显示文件的inode(index node)-r //逆序显示-R //递归(recursive)显示———————————————————————————————————————————————————————————————————————————————cd //改变当前工作目录[root@localhost ~]# cd /etc/ //进入到etc目录中[root@localhost etc]#//进入目录后返回使用 cd[root@localhost etc]# cd[root@localhost ~]#pwd //打印当前工作目录路径[root@localhost etc]# pwd //将用户当前实在的工作目录打印出来/etcmkdir //创建目录-p //创建目录时若父目录不存在则自动创建-v //显示目录创建过程[root@localhost ~]# mkdir -pv /root/Gin //创建一个在root目录下的Gin目录mkdir: created directory '/root/Gin' //创建的过程和存放位置rmdir //删除目录,只能删除空目录(不是空的目录使用rm -rf 强制删除)[root@localhost ~]# rmdir /root/Gin/ //删除root目录下的Gin目录[root@localhost ~]#tree //查看目录树[root@localhost ~]# tree.├── anaconda-ks.cfg└── Gin└── class1 directory, 2 files
touch //无中生有、万象更新[root@localhost Gin]# touch class-A //在Gin目录中创建一个class-A的文件[root@localhost Gin]#stat //显示文件或文件系统的状态[root@localhost Gin]# stat class-A //显示class-A文件的状态File: class-ASize: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fd00h/64768d Inode: 722508 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:admin_home_t:s0Access: 2022-06-28 10:26:27.542921775 +0800 //访问时间Modify: 2022-06-28 10:26:27.542921775 +0800 //修改时间Change: 2022-06-28 10:26:27.542921775 +0800 //更新时间Birth: -rm //删除文件,删除命令默认会提示是否需要删除, \//如果要使用命令本身可以在命令前加一个\,如\rm,这样删除就不会有提示了-r //递归删除,删除目录时必须使用此选项-f //强制删除,不询问cp //复制文件,一个文件到一个文件,多个文件到一个目录-a //归档复制,常用于备份-r //递归拷贝,拷贝目录时必须使用此选项-p //拷贝时保留原权限mv //移动文件install //复制文件并且设置属性-m MODE //权限-o OWNER //所有者-g GROUP //所有组
//压缩格式gz,bz2,xz,zip,Zgzip //压缩后的文件以.gz结尾gzip /path/to/somefile //压缩完成后会删除原文件-d //解压缩,解压完成后会删除原文件-c //将结果输出至标准输出-# //#用1-9代替,指定压缩比,默认为6gunzip //解压gunzip /path/to/some_compress_file.gz //解压完成后会删除原文件zcat /path/to/somefile.gz //不解压的情况下查看文本文件的内容bzip2 //压缩后的文件以.bz2结尾//bzip2是一款比gzip有着更大压缩比的压缩工具,使用格式近似bzip2 /path/to/somefile //压缩完成后会删除原文件-d //解压缩,解压完成后会删除原文件-# //#用1-9代替,指定压缩比,默认为6-k //keep,压缩时保留原文件bunzip2 //解压bunzip2 /path/to/some_compress_file.bz2 //解压完成后会删除原文件bzcat /path/to/somefile.bz2 //不解压的情况下查看文本文件的内容xz //压缩后的文件以.xz结尾//比bzip2有着更大压缩比的压缩工具,使用格式近似xz /path/to/somefile //压缩完成后会删除原文件-d //解压缩,解压完成后会删除原文件-# //#用1-9代替,指定压缩比,默认为6-k //keep,压缩时保留原文件unxz //解压unxz /path/to/some_compress_file.xz //解压完成后会删除原文件xzcat /path/to/somefile.xz //不解压的情况下查看文本文件的内容zip //既归档又压缩的工具。zip可以压缩目录,\//gz、bz2、xz都只能压缩文件,zip压缩后不会删除原文件zip filename.zip file1 file2 ...zip filename.zip DIR/*unzipunzip filename.ziparchive //归档,归档本身并不意味着压缩tar //归档工具,只归档不压缩-c //创建归档文件-f file.tar //操作的归档文件-x //还原归档-v //显示归档过程-p //归档时保留权限信息。只有管理员才有权限用此选项-C //将展开的归档文件保存至指定目录下--delete //从归档文件中删除文件--xattrs //在归档时保留文件的扩展属性信息-tf /path/to/file.tar //不展开归档,直接查看归档了哪些文件-zcf //归档并调用gzip压缩-zxf //调用gzip解压缩并展开归档-jcf //归档并调用bzip2压缩-jxf //调用bzip2解压缩并展开归档-Jcf //归档并调用xz压缩-Jxf //调用xz解压缩并展开归档
cat //拼接文件内容并输出至标准输出(屏幕)-n //显示行号//使用cat查看文件内容时会将文件的所有内容加载至内存, \//所以应避免使用cat打开巨大文件more //全屏查看文本文件内容,只能从前往后,不能从后往前。\//文件内容显示完后自动退出less //全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用head //从头部开始打印文件内容,默认打印10行-n //指定要打印的行数,可以是-n 15也可以是-15tail //查看文本文件尾部内容-n //指定要打印的行数,可以是-n 15也可以是-15
//文本处理cut //截取文本内容-d //指定字段分隔符,默认是空格-f //指定要显示的字段-f 1,3 显示1和3-f 1-3 显示1到3sed //基于行的过滤和转换文本的流编辑器awk //基于列的文本报告工具//文本排序sort //默认升序排序,不是按数值大小排序的-n //根据数值大小进行排序-r //逆序排序-t //字段分隔符-k //以哪个字段为关键字进行排序-u //去重,排序后相同的行只显示一次-f //排序时忽略字符大小写uniq //报告重复的行(连续且完全相同方为重复)-c //显示文件中行重复的次数-d //只显示重复的行-u //只显示未重复的行//文本统计wc(word count)-c //显示字节数-l //显示行数-w //显示单词数//大小统计du //查看文件或目录占用的磁盘空间大小-h //以人类友好的方式显示大小-s //显示总的占用空间大小df //报告文件系统磁盘空间使用情况-h //以人类友好的方式显示大小-i //显示inode信息//主机名管理hostname //查看或临时修改主机名,重开终端有效,重启失效hostnamectl //查看或永久修改主机名,重开终端生效,重启依然有效//其它time //显示命令的执行时间,例如time ls /etcclear //清屏whoami //显示当前登录用户w //显示当前在线用户并显示其在运行的命令who //查看当前在线用户which //显示指定命令的绝对路径date //显示或设置日期与时间//不带参数的date用于显示当前系统日期与时间-s //以字符串方式设置时间//格式化输出时间:+%Y //年%m //月%d //日%H //时%M //分%S //秒ldd //查看指定程序有哪些依赖库文件程序组成?二进制程序库文件配置文件帮助文件
//内部命令help COMMAND//外部命令COMMAND --help//在线文档info COMMAND//命令手册 manualman COMMAND//文档/usr/share/docwhatis COMMAND //用于查看COMMAND出现在man的哪一章节中。//man是分章节的,以下是每一章节的内容介绍:1 用户命令(/bin,/usr/bin,/usr/local/bin);2 系统调用;3 库调用;4 特殊文件(设备文件);5 文件格式(配置文件 的语法);6 游戏;7 杂项(Miscellaneous);8 管理命令(/sbin,/usr/sbin,/usr/local/sbin)//man手册注意事项:[] //可选<> //必选... //可以出现多次| //多选一{} //分组NAME //命令名称及功能简要说明SYNOPSIS //用法说明,包括可用的选项DESCRIPTION //命令功能的详尽说明,可能包括每一个选项的意义OPTIONS //说明每一个选项的意义FILES //此命令相关的配置文件BUGS //报告bugEXAMPLES //使用示例SEE ALSO //另外参照//man翻屏向后翻一屏 //SPACE向前翻一屏 //b向后翻一行 //enter向前翻一行 //k//查找/KEYWORD //向后?KEYWORD //向前n //下一个N //前一个q //退出
