日期时间 date
修改时间
date -s “2019-7-2 16:47”
(set 设置)
时间字符串,需符合规范
月份的范围 1~12
时分秒也要符合常识
否则,会显示无效的日期
日历 cal
(calendar 日历)
cal
后面不加参数,默认显示当前月份的日历
cal 2019
显示2019年的日历
参数只有1个,表示年份
cal 8 2008
显示2008年8月份的日历
参数有2个,分别表示月份、年份
清空屏幕内容 clear
快捷键:ctrl + L
再打开一个终端
ctrl + shift + t
路径
/
根目录
/etc/
根目录下的etc文件夹
/var/ftp/a.txt
根目录下的ftp文件夹下的a.txt文件
开头第一个/,表示根目录
之后的所有/,表示父目录和子目录之间的分隔符
~
当前用户的家目录
.
当前目录
· ·
上层目录
绝对路径
写法上,以“/”开头的路径
/home
/etc/hostname
相对路径
以当前所在的位置作为参照,来描述一个路径
切换文件夹
cd 路径
(change 改变 directory)
cd
后面如果不跟任何参数,默认回到家目录
cd /var/ftp
切换到 /var/ftp 里
cd … 跳到上一层目录
cd …/… 跳到上一层的上一层
cd -
从哪儿来的,到哪儿去(返回)
===================
打印当前路径(我在哪儿)
pwd
(print 打印 working 正在工作 directory)
ls
列出文件夹里的内容 ls
(list)
ls
后面不加参数,默认列出当前目录下的内容
ls /var
列出指定目录下的内容
ls / /var
同时查看两个路径里的内容
===========================
命令的格式
命令
命令 参数
命令 选项
命令 选项 参数
ls -a /
列出根目录里的所有内容(包含隐藏文件)
ls -a
(all,所有的,包含隐藏文件)
ls -l
(long,长格式,显示详细信息)
ls -al
查看所有内容的详细信息
选项可以组合使用
ls -lh
(human 人类)
h选项不能单独使用,要跟L配合
=============================
手册 man
(manual)
man ls
查看ls命令的手册
文件
创建 touch a.txt
touch b.txt c.txt
touch ./a.txt
在当前目录里,创建a.txt
用ls来查看有没有创建成功
删除 rm a.txt
(remove 移除、移走)
rm b.txt c.txt
rm -f a.txt
(force 强制)
不再询问用户要不要删除
文件夹
创建 mkdir 628
(make 创建 directory 文件夹)
mkdir abc ddd
用ls来查看有没有创建成功
mkdir -p Jay/music/qlx
(parent 父母、父目录、缺啥补啥)
删除 rm -r 628
(recursive 递归)
rm -rf /home/zhaobenshan
=====================
上下方向键
从历史记录(history)里查找命令
tab键
自动补全命令、文件名
如果类似命令只有一个,可以直接补全
如果有多个,再按一次tab,可以列出候选项
调用“上一条命令”的最后一个参数
alt + .
echo的使用
echo 参数
echo hello
效果:hello
echo hello world
效果:hello world
这是两个参数
echo “hello world”
效果:hello world
这是1个参数
echo 默认带有换行效果
echo -n “hello”
可以去除自带的换行效果
输出重定向
命令执行完,默认把结果显示在屏幕上
如果不想显示在屏幕上,可以用重定向
覆盖
date > a.txt
cal > a.txt
echo hello world > a.txt
追加
date >> a.txt
cal >> a.txt
echo hello world >> a.txt
统计字数 wc
(word 字 count 统计)
wc 文本文件名
wc a.txt
效果:1 0 1 a.txt
行数 字数 字节数 文件名
wc -l a.txt
(line 行) 只统计行数
效果:1
=======================
清空文件里的内容
echo “” > a.txt
其实还是会有一个空行
echo -n “” > a.txt
不带有换行功能,但这样写比较复杂
a.txt
完全清空内容
查看文本文件内容 cat
(concatinate 连接)
cat 文本文件名
cat a.txt
cat b.txt c.txt
cat -n a.txt
带有行号显示文本内容(number)
=====================
head
查看文本文件的头10行(默认)
head a.txt
head -3 a.txt
查看文本文件的头3行
tail
查看文本文件的末尾10行(默认)
tail a.txt
tail -5 a.txt
查看文本文件的末尾5行
vim编辑器
Linux系统里的文本编辑器
vim a.txt
如果文件已存在,则直接打开进行编辑
如果不存在,存入内容后会自动创建,否则不创建
【基于模式】
编辑模式
按 i 键进入编辑模式(insert 插入)
o 在当前行的下方另起一行进入编辑模式
O 在当前行的上方另起一行进入编辑模式
按 Esc 键退出编辑模式(escape 摆脱)
一般模式
通过vim命令进入的模式
末行模式
在一般模式下按英文冒号:键进入末行模式
:w 保存(write 写)
:q 退出(quit 退出)
:wq 保存并退出 (write quit)
:q! 强制退出,不保存,直接退出
:set nu 显示行号(number)
:set nonu 不显示行号
让"行号"永久生效:
在当前用户的家目录里,有个 .vimrc 文件
如果没有该文件,可自行创建一个
写入:
set nu
保存并退出
以后再使用vim时,都会显示行号
如果指定tab键是4个空格:
set tabstop=4
=========================
查找关键字(在一般模式下)
/关键字 从上往下查找
?关键字 从下往上查找
按n,切换下一个匹配项(next)
=========================
替换关键字
-
先输入英文冒号:进入末行模式
- 范围 s/old/new/选项
【范围】
如果不写,表示只把“当前行”的old改为new
% 表示把“全文”的old都改为new
5,9 表示把5~9行的old改为new
.,+2 当前行+接下来两行
s 替换 (substitute)
【选项】
c 每次替换前,确认是否删除(y/n/a)
i 忽略大小写、不区分大小写(ignore)
e 不显示错误信息(error)
==============================
以下操作,都是在一般模式下:
复制 nyy (yanked 猛拉、复制)
(n表示整数,比如3、4,如果是1,可省略)
从当前行开始,复制n行
如果n>=3,系统会提示“复制了n行”
否则,不提示
粘贴 np (paste 粘贴)
在当前行下方,粘贴n遍
剪切(删除) ndd (delete 删除)
从当前行开始,删除n行
其实并不是真的删除,而是放到剪切板里
如果紧接着做了“粘贴”,则是剪切,否则是删除
==========================
撤销 u (undo)
重做 ctrl + r (redo)
跳转行
ngg (n是整数,表示目标行数)
或者在末行模式下 :n
跳到第1行 gg
跳到最后1行 G
在打开文件的同时,跳到第7行
vim a.txt +7
调节“内容”在屏幕中的显示位置
zt 置顶当前行,通常用来查看完整的下文(top)
zz 将当前行移到屏幕中部
zb 移到底部(bottom)
调节“光标”在屏幕中的位置
H 可以移动到屏幕的首行
M 到屏幕中间
L 到屏幕尾行
如果使用vim命令时,没加任何参数
相当于新建一个暂时没有名字的文件
在保存时,要指定文件的名字
w a.txt
q
或者 wq a.txt
==========================
按页查看内容
每次翻半页
ctrl + u (up 上)
ctrl + d (down 下)
每次翻一页
ctrl + f (forward 前进)
ctrl + b (backward 后退)
==========================
管道 |
命令1 | 命令2
把命令1执行完的结果,通过管道,给命令2继续处理
ls | head
列出当前目录下的前10个文件
================================
显示文本文件的前5行,并带有行号
cat -n a.txt | head -5
bc 计算器
echo 1+2 | bc
================================
临时设置别名
alias 别名=“本来的命令”
alias qu3=“cal | head -5 | tail -3”
执行:qu3
通过命令设置的别名,是临时生效
重启终端以后,别名不存在
取消临时别名
unalias qu3
永久设置,需要修改配置文件
在当前用户的家目录里,有个隐藏文件 .bashrc
(bash resource 资源)
把设置别名的语句,写入该文件
重新打开终端
列出系统里的别名
alias
查询某个别名的信息
alias 别名
alias gos
效果:alias gos=‘ssh root@172.25.0.11’
也可以同时查询多个别名,写在参数里
通配符 * ?
✳
可以匹配任意长度的字符
ls *.txt
列出当前目录下,所有.txt后缀的文件
?
可以匹配1位字符
ls ?.txt
列出名字是一位、后缀是txt的文件
ls ??.txt
列出名字是两位、后缀是txt的文件
ls a?b.txt
ls a*b.txt
===========================
计算器 bc
(binary compute)
-
-
- / %
加 减 乘 求商 求余
- / %
-
1+2
3-4
5*6
12/5
3%5
复制 cp (copy)
cp 要复制的文件 要复制到的地方
cp a.txt music
cp a.txt b.txt c.txt music
最后一个参数,表示要复制到的地方,
其余参数,表示要复制的文件(可以是多个)
拷贝文件夹
cp -r abc/ music/
剪切 mv (move)
mv 要移动的文件 要移动到的地方
mv a.txt music
mv a.txt b.txt c.txt music
移动文件夹
mv ddd/ music/
重命名
mv a.txt music/bbb.txt
cp date.txt music/date02.txt
mv date.txt date03.txt
mv music pic
打包展开 tar
打包
tar -cvf a.tar a.txt b.txt music
(create 创建 file 文件 view 可见)
f后面,直接跟压缩包的名字
f不能跟其它选项换位置,必须在最后
通过命令列出压缩包里的内容
tar -tf a.tar
(t表示list,列出)
打包并压缩
tar -zcvf a.tar.gz a.txt b.txt music
展开
tar -xvf a.tar
(extract 展开)
默认把a.tar里的内容展开到当前目录
展开到一个指定的目录(大写C)
tar -xvf a.tar -C 目录名
解压并展开
tar -zxvf test.tar.gz