常用命令
pwd:printing working directory
cd:change directory
cd 不带任何参数时回到家目录
cd ~ 也可以回到家目录
cd ~USERNAME 切换指定用户的家目录
cd - 回到上一个目录【两个目录之间切换】
相关的环境变量
$PWD 当前工作目录
$OLDPWD 上一次的工作目录
ls:list,列出指定目下的内容
ls [option] [file]
-a: 显示所有文件,包括隐藏文件;
-A:显示除了.和..之外的所有文件;
-l: long,长格式列表,即显示文件的详细属性信息
-i 查看文件的inode编号
以如下这段显示出来的详细信息为例
-rw-r--r--. 1 root root 6332 Aug 4 2017 ping.8.gz
最前面有10位,其中第一位是文件类型,可以有-,d,b,c,l,s,p;
-:常规文件
d:directory目录
b:block device,块设备文件 ,支持以block为单位进行随机访问
c:character device,字符设备文件,支持以"character"为单位进行线性访问
major number:主设备号,用于表示设备类型,进而确定要加载的驱动程序
minor number:次设备号,用于标识同一类型下的不同设备;
8位二进制:0-255
l:symbolic link,符号链接文件;
p:pipe,命名管道;
s:socket,套接字文件;
后面的9为每3个为一组
左三位 文件属主的权限
中三位 文件属组的权限
右三位 其他用户(非属主,属组)的权限
数字1表示文件被硬链接的次数
root表示文件的属主
root表示文件的属组
6332表示文件的字节数
Aug 4 2017 文件最近一次修改时间
ping.8.gz 文件名
-h, --human-readable,对文件大小换算,可能不精确
-d 查看目录自身属性,而非文件本身
-r reverse 逆序显示
-R recursive 递归显示
cat: concatenate【tac和cat使用方法一样,只是逆序显示】
文本查看工具
如果查看多个文本文件时,使用空格分开即可,两个文件即可被连接显示
-n 给显示的文本编号
-e 显示行结束符$
file:查看文件内容类型
echo 回显
echo [short-option] [string]
-n 不自动执换行操作
-e 让转义符生效【例如增加\n换行生效】
string可以使用银行
单引号:强引用,变量引用不执行替换,即显示字符串
双引号:弱引用,变量引用会被替换,即会显示变量的信息
关机与重启:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h:halt
-r:reboot
-c:cancel 会通知所有当前连接的用户
TIME:
now
hh:mm
+m
WALL 提示所有当前连接的用户相应的文本信息
日期相关的命令:
Linux有两套时钟,硬件时钟和系统时钟。系统启动时从硬件读取日期和时间信息,读取完成后,不再与硬件关联
date 系统时钟
date [OPTION]... [+FORMAT]
日期显示
FORMAT【查看手册即可】
%s:从1970年1月1号0点0分0秒到命令执行那一刻经过的秒数
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
日期设置
clock 硬件时钟
hwclock [function] [option...]
-s --hctosys以硬件为准,把系统时间设置为硬件时钟
-w --systohc以系统为准,把硬件时钟设定为系统时钟
cal calendar 日历
cal [options] [[[day] month] year]
命令历史:shell进程会将其会话中保存此前用户执行过的命令列表
history
定制history的功能,可通过环境变量实现:
$HISTSIZE:sehll进程可保留的命令历史的条数;
$HISTFILE:持久保存命令历史的文件;
.bash_history
$HISTFILESIZE:命令历史文件的大小
用法:
history [-c] [-d offset] [n]
-c清空内存中的历史命令
-d删除指定行历史命令【例如23 2 即从23行起删除两行】
or history -anrw [filename]
-r 从历史文件中的命令读到内存中的历史列表中
-w 将当前内存历史命令写入历史文件中
num 查看最近num条历史命令
or history -ps arg [arg...]
调用命令历史列表中的命令:
! + num:再一次执行历史列表中的第num条命令;
!!:再一次执行上一条命令;
!+COMMAND 执行上一次此COMMAND以及对应的参数
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令
注意:命令的重复执行有时候需要依赖于幂等性。
调用上一条命令中的最后一个参数:
快捷键:ESC + .
字符串:! + $
控制命令历史记录的方式,环境变量$HISTCONTROL
ignoredups,忽略重复的命令,
ignorespace,忽略空格
ignoreboth,既忽略重复又忽略空格
修改变量的值:NAME = "VALUE" 仅对当前shell有效
文件管理cp,rm,mv
cp:copy
复制文件的数据,创建一个空文件,把源文件的数据填充到新文件。
单源复制:cp [OPTION]... [-T] SOURCE DEST
如果dest不存在,则先创建此文件,并复制源文件的数据流至dest中;
如果dest存在,
如果dest是非目录文件,则会 覆盖目标文件;
如果test是目录文件,则先在此目录下创建一个与源文件同名的二五年间,并复制其数据流。
多源复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
如果DEST不存在,错误,
如果DEST存在,
如果DEST是非目录文件,错误;
如果DEST是目录文件,则分别复制每个文件至目标目录中,并保持原名。
常用选项:
-i 交互式提醒,覆盖之前提醒用户;
-f 强制覆盖目标文件
-r 递归复制目录
-d no dereference 赋值符号链接文件本身,而非其指向的源文件
-p preserve
mode 权限
ownership 属主和属组
timestamps 时间戳
context 安全标签
xattr 扩展属性
links 符号链接
all 上述所有属性
-a -dR --preserve = all,archive 用于实现归档
mv move
在同一个目录下,是重命名
在不同目录下,是移动【新建一个文件,把源数据复制过去,然后删除源文件】
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f force
rm remove
rm [OPTION]... FILE...
建议生产环境不要轻易删除,最好自制一个垃圾文件夹【模拟回收站】,mv进去
常用选项
-i interactive
-f force
-r recursive