Linux就是命令集的操作系统,精通Linux,就要先精通各种命令。
date :
date [OPTION] ... [+FORMAT] : 显示日期时间(系统时钟)
FORMAT:格式符号
%D:月/日/年(两位)
%F:年(四位)-月-日
%T:时:分:秒
"+%F %H:%M:%S":组合自己需要的格式 ,四位年-月-日 时:分:秒
date [MMDDhhmm[[CC]YY][.ss]] : 设置日期时间
MM:月, DD:日, hh:小时, mm:分钟,YY:两位年, CCYY:四位年, .ss:秒
Linux有两种时钟:
系统时钟:由Linux内核通过CPU的工作频率进行的计时时钟
硬件时钟:主板
hwclock: 显示硬件时钟
-s,--hctosys:硬件时钟写到系统时钟
-w,--systohc:系统时钟写到硬件时钟
cal 年份:显示日历,如cal 2023
目录相关的命令:
当前目录或工作目录
主目录,家目录:HOME, 管理员root:/root ,普通用户:/home/USERNAME
~:用户的主目录
cd : 目录切换,不带参数,回家目录,或:cd ~
cd ~USERNAME :切换到某用户的家目录,只有管理员能使用
cd - :在上一个目录和当前目录之间来回切换
. 和 .. :当前目录和父目录(上级目录)
相关的环境变量:
PWD:保存了当前工作目录
OLDPWD:上一次所在目录路径
ls :显示指定路径下的文件列表
ls [OPTION]... [FILE]... :FILE,指定文件或目录,OPTION,选项
-a :显示所有文件,包括隐藏文件
-l :长格式: -rw-r--r--. 1 root root 46 Sep 4 12:38 adjtime
-rw-r--r-- :最左侧的第一位:文件类型,有 -,d,l,b,c,p,s ; 后面的9位:访问权限,perm ;
数字:文件被硬链接的次数;
左root:文件的owner
右root:文件的group
46:文件的size
Sep 4 12:38 :文件的最近一次被修改的时间
-h,--human-readable :size单位换算,人易于阅读
-d:显示目录自身的相关属性,通常与-l一起使用
-r ,--reverse:逆序显示,文件的排序
-R : 递归显示,显示子目录下的文件
stat /PATH/TO/SOMEFILE:获取指定文件的元数据
文件内容查看命令 : cat 与 tac
cat [OPTION]... [FILE]... :连接并显示文件内容
-E : 显示行结束符
-n :对显示的每一行编号
tac [OPTION]... [FILE]... :连接并逆序显示文件内容
文件内容类型查看命令:file
file /PATH/TO/SOMEWHERE
回显命令:echo
-n : 禁止自动添加换行符;
-e : 允许使用转义符;\n:换行,\t:制表符
echo "$VAR_NAME":变量会替换,双引号为弱引用
echo '$VAR_NAME' :变量不会替换,单引号为强引用
which :显示命令对应的程序的路径
--skip-alias :禁止显示别名
whatis:
使用mkwhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库
Linux的文件系统:
根文件系统(rootfs):内核启动后,在自己的用户空间中创建根(/)目录,然后将其他分区挂载到这个目录下。
LSB——Linux标准基础(Linux Standard Base),是一套核心标准,是Linux标准化领域中事实上的标准,制定了应用程序与运行环境之间的二进制接口。它保证了LINUX发行版同LINUX应用程序之间的良好结合。具体地说,它是:1、一个二进制接口规范,是指应用程序在系统间迁移时不用重新编译,保证应用程序在所有经过认证的LINUX发行版上都具有兼容性。2、一个测试规范,测试LINUX发行版和LINUX应用程序是否符合LSB标准。3、搭建遵从LSB规范的应用程序的开发环境。4、为在纯LSB环境下运行和测试应用程序而提供的运行环境样本。LSB包括两个核心部分,分为普通规范和特定处理器规范。
LSB下规定了FHS——Filesystem Hierarchy Standard(文件系统层次化标准),FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录。FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。因为Linux的开发人员实在太多了,如果每个人都使用自己的目录配置方法,那么将可能会带来很多管理问题。所以,后来就有所谓的文件系统层次标准(Filesystem Hierarchy Standard,FHS)出台。第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
根文件系统结构:
/boot : 引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录;
/bin : 供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;
/sbin : 管理类的基本命令,不能关联至独立分区,OS启动即会用到的程序;
/lib : 基本共享,以及内核模块文件库文件(/lib/modules);
/lib64 : 专用于x86_64系统上的辅助共享库文件存放位置;
/etc : 配置文件,(纯文本文件)
/etc/opt : 安装在/opt目录下的系统的配置文件存放路径;
/etc/X11 : 图形界面相关配置;
/etc/sgml :SGML格式的配置文件
/etc/xml : XML格式的配置文件
/home/USERNAME : 普通用户的家目录;
/root : 管理员的家目录;
/media : 便携式移动设备挂载点;
/mnt : 临时文件系统挂载点;
/dev : 设备及特殊文件存储位置:
b : block device,支持随机访问 ; c : character device,线性访问
/opt : 第三方应用程序安装位置;
/srv : 系统上运行的服务用到的数据;
/tmp : 临时文件;
/usr : universal shared read-only data (层级结构)
/usr/bin : 保证系统拥有完整功能而提供的应用程序;
/usr/sbin :
/usr/lib :
/usr/lib64 :
/usr/include : C程序用到的头文件存储位置(header files)
/usr/local : 取代/opt,第三方应用程序的安装位置:其下会有:bin、sbin、lib、lib64、etc、share等。(层级结构)
/usr/share : 结构化独立的数据:如doc、man等;
/var : variable data files(层级结构);
/var/cache : 应用程序缓存数据目录
/var/lib : 应用程序状态信息数据
/var/local : 专用于/usr/local下的应用程序存储可变数据
/var/lock : 锁文件
/var/log : 日志目录及文件;
/var/opt : 专用于/opt下的应用程序存储可变数据
/var/run : 运行中的进程相关的数据:通常用于存储进程的pid文件;
/var/spool : 应用程序数据池;
/var/tmp : 保存系统两次重启之间产生的临时数据;
/proc : 用于输出内核和进程信息相关的虚拟文件系统;
/sys : 用于输出当前系统上硬件设备相关信息的虚拟文件系统;
/misc : 杂项
/selinux : security enhanced Linux,selinux相关的安全策略等信息的存储位置;
LInux上的应用程序的组成部分:
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件 : /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件 : /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件 : /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
Linux下的文件类型:
- (f) : 普通文件
d : 目录文件
b : 块设备
c : 字符设备
l : 符号链接文件
p : 管道文件
s : 套接字文件:socket;
系统管理类命令:
关机:
halt,poweroff,shutdown,init 0
重启:
reboot,shutdown,init 6
关机或重启:
关机:halt, poweroff 重启:reboot
-f : 强制,不调用shutdown
-p : 关闭电源
shutdown: shutdown [OPTIONS] ... TIME [MESSAGE]
-r : reboot
-h : halt
-c : cancel,
TIME :
now:立刻;
+m:相对时间表示法,从命令提交开始多久之后,如+3,3分钟后;
hh:mm : 绝对时间表示,指具体定时间
用户登录相关:
whoami :显示 当前登录的有效用户;
who : 系统当前所有的登录会话
w : 系统当前所有的登录会话及所做的操作
bash的基础特性:
(1)命令历史:
history : 环境变量——HISTSIZE:命令历史记录条数;HISTFILE:~/.bash_history; HISTFILESIZE : 命令历史文件记录历史的条数;HISTCONTROL:控制命令历史的记录方式,值:ignoredups:忽略重复的命令,连续且相同方为重复;ignorespace:忽略所有以空白开头的命令;ignoreboth:以上两者都忽略;
调用历史中的命令:!#:重复执行第#条指令;!!:重复执行最后一次的指令;!string:重复执行最近一次以string开头的指令;
调用上一条命令的参数:!$ 或 ESC,.,先按ESC,松开后再按点号,或ALT+.
修改环境变量值的方式: export 变量名="值"
变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间;
(2)命令补全
Tab : 一次,补全,如果匹配的不止一个,两次Tab,列出所有匹配的。
(3)路径补全
(4)命令行展开
~ : 展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{} : 可承载一个以逗号分隔的列表,并将其展开为多个路径;
/tmp/{a,b} = /tmp/a, /tmp/b ; /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
(5)命令的执行结果状态
bash使用特殊变量$?保存最近一条命令的执行状态结果:
成功:0
失败:1~255
程序执行有两类结果:
程序的返回值:
程序的执行状态结果:
目录管理类命令:cd, pwd, ls mkdir,rmdir
mkdir [options] /path/to/somewhere
-p : 存在也不报错,且可自动创建所需的各目录
-v : 显示详细信息
-m MODE : 创建目录时直接指定权限
tree [options] /path/to/somewhere: 按层级显示路径(目录树)
-d : 只显示目录
-L level : 指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
rmdir [options] DIRECTORY :删除空目录
-v : 显示过程;
-p : 如果父目录为空目录,删除
文本文件内容查看类命令:cat, tac ; more, less, tail, head
more [option] FILE... : -d : 显示翻页及退出提示;
less [options...] FILE... :
head [option] FILE... : -c #:指定获取前#字节;-n # :指定获取前#行
tail [option] FILE... : -c #:指定获取后#字节;-n # :指定获取后#行 ; -f :跟踪显示文件新追加的内容;(Ctrl+c退出)
文件的时间戳管理工具:touch
文件具有:metadata和data,查看文件状态:stat
三个时间戳:
access time:访问时间,atime,读取文件内容
modify time:修改事件,mtime,改变文件内容
change time:改变时间,ctime,元数据发生改变
touch能改变前两个:
touch [options]... FILE...
-a : only atime
-m : only mtime
-t STAMP : [[CC]YY]MMDDhhmm[.ss] 指定修改为的时间戳
-c : 如果文件不存在,不创建文件
命令小结:
date [OPTION] ... [+FORMAT] : 显示日期时间
hwclock: 显示硬件时钟
cal 年份:显示日历
cd [-L|-P] [dir] :目录切换
ls [OPTION]... [FILE]... : 显示指定路径下的文件列表
stat /PATH/TO/SOMEFILE:获取指定文件的元数据
cat [OPTION]... [FILE]... :连接并显示文件内容
tac [OPTION]... [FILE]... :连接并逆序显示文件内容
file /PATH/TO/SOMEWHERE :文件内容类型查看命令
echo : 回显命令
which :显示命令对应的程序的路径
whatis:查看命令章节
mkwhatis:可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库
halt, poweroff : 关机
reboot :重启
shutdown [OPTIONS] ... TIME [MESSAGE] :安全的关机或重启
whoami :显示 当前登录的有效用户;
who : 系统当前所有的登录会话
w : 系统当前所有的登录会话及所做的操作
history : 命令历史管理
mkdir [options] /path/to/somewhere :创建目录
tree [options] /path/to/somewhere: 按层级显示路径(目录树)
rmdir [options] DIRECTORY :删除空目录
more [option] FILE... : -d : 显示翻页及退出提示;
less [options...] FILE... : 显示内容
head [option] FILE... : -c #:指定获取前#字节;-n # :指定获取前#行
tail [option] FILE... : -c #:指定获取后#字节;-n # :指定获取后#行 ; -f :跟踪显示文件新追加的内容;(Ctrl+c退出)
touch [options]... FILE... : 时间戳管理