Linux的指令比较多,在学习的过程中要学会总结和归纳,同时结合实践多多使用,就像学数学一样,不是背过公式就等于掌握的,而是要知道在什么时候用,怎么用才是关键。
这篇文章会列举一系列常用的指令,如果是初学者只需要混个眼熟就好了,没有必要像背大事年表那样去背,重点在于实践,多用肯定会记住的。
但也不仅仅是学指令,其中也会补充很多 Linux 相关的基础知识,有种螺旋式上升的感觉。
whoami:显示当前用户的用户名
clear:清屏
ls 目录:可显示对应目录下的所有文件和子目录,仅显示文件名及其后缀
ls -l: 列出文件的详细信息,可简写为ll
ls -a:多显示隐藏文件
ls -d 目录:仅显示目录本身
*这里的-l和-a是选项, 是指令的一些特殊化功能的实现,不同选项可叠加使用
*隐藏文件包括 . 和 .. 分别表示当前路径和上级路径
注:选项是可以组合使用的例如:ls -al
显示当前所在目录
cd .. :返回上级目录
cd /home/csdn/ :绝对路径
cd ../linux/ :相对路径
cd - :跳转到最近一次所处的路径下
cd ~:进入用户家目录(可类比Windows)
*root 账号默认家目录 /root
普通用户默认家目录 /home/xxx
*区分 Linux 和 Windows 的路径分隔符,分别为 / 和 \
touch 文件名:创建新文件
mkdir 目录名:在当前路径下创建目录
-p:建立多个目录
例如:mkdir -p exa/exa1/exa2
大家最喜欢的指令来了
rm 文件名:删除某个文件
rmdir 目录名:删除某个目录
-f:强制
-r:递归处理,删除目录下所有文件
* 是一个通配符,匹配任意文件
例如:在某个目录下有文件 data11,data12,data13,data21,data22,data23
使用指令 rm data1* 指的就是删除data11,data12,data13,留下data21,data22,data23
man 指令名:查看对应指令的用法,当然 man man 也是可以的
man 手册编号:查找对应编号的手册
*手册前3章比较常用
分别为1 普通指令和可执行程序指令 2 系统调用(调用函数需要的头文件) 3 库函数
cp src dst:把 src 复制到 dst
*src 和 dst 既可以表示文件也可以表示目录
src 和 dst 都可以带绝对路径和相对路径进行拷贝
-r:递归处理,复制目录,指定目录下的文件和子目录也复制过去
-f:强制复制,不论目的文件或目录是否存在(若对应目录不存在,则在对应路径创建新目录)
cp 指令对应复制,mv 指令对应剪切
mv src dst:将 src 复制到 dst
选项和 cp 类似,也有 cp 不具备的功能,就是重命名
*当 dst 不存在时,则重命名目录或是文件
当 dst 存在时,可将多个原文件传到目标目录
cat 选项 文件:查看目标文件内容
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
nano 文件名:以记事本的形式打开(若该文件不存在则创建新文件)
注意:退出要用ctrl + x
echo xxx:把xxx打印到屏幕上
echo xxx > 文件名:把xxx写到该文件中
echo xxx >> 文件名:在该文件内追加xxx
cat < 文件名:表示将该文件的内容输出
简写成 cat 文件名
> 表示的是输出重定向的意思,而>>是追加重定向的意思
有两种用法:创建文件/清空文件
>文件名:若此文件不存在,则创建文件,否则清空文件
不推荐使用
more 文件:方便阅读大文件(只显示满整个屏幕的内容,按回车可下翻,按q退出)
/某数据:可查找数据对应位置
【推荐使用】
less 文件:比more灵活,按上下可以上下翻动,按q退出
/某数据:可查找数据对应位置
head -n 文件名:显示文件的前n行,若没有-n则输出前10行
tail -n 文件名:显示文件的后n行,若没有-n则输出后10行
【思考】
有机智的小伙伴就想到了如果我想看中间的某几行怎么办?
有两种方式,一种是创建临时文件,另一种是使用管道
举例:看第100~110行
方式一:
head -110 tmp.txt
tail -11 tmp.txt
方式二:
head -110 src.txt | tail -11
补充指令:
wc -l file.txt : 统计file.txt中的行数
逆向打印:tac
管道的应用:级联多条指令
输出指定内容的行数
head -110 src.txt | tail -11 | wc -l
逆向打印对应行
head -110 src.txt | tail -11 | tac
时间相关指令(15-16)
date +%Y-%m-%d_%H:%M:%S:表示按对应格式输出日期时间
Y(year) m(month) d(day) H(hour) M(minute) S(second)
时间戳:
格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
效果如下图:
find 寻找路径 -name 文件名:在该路径中寻找对应文件名的文件(-name是后缀)
显示的是对应文件的绝对路径
grep 字符串 文件名 -n:在对应文件中搜该字符串,输出行号
-i:忽略大小写差异
-v:反向选择,输出没有该字符串的行号
grep常常通过管道和其他指令配合使用
例如:
cat /var/log/message* | grep -i 'error' 表示显示该路径下含有'error'字符的文件
打包压缩相关指令(19-20)
zip 压缩后文件名.zip file1 file2:压缩文件
zip -r 压缩后文件名.zip 目录:压缩目录
unzip src.zip (-d 对应目录):解压到当前目录/对应目录,若解压成目录还需加-r
用法跟zip类似
tar -cvzf name.tgz file1 file2:压缩文件
tar -xzvf name.tgz (-C path):解压,注意此处C是大写,表示解压到指定目录
tar的选项比较多,但入门阶段其实懂这两个指令就可以
*为什么要打包压缩?
利于传输,传输过程中不易损坏
缩小体积,方便下载
uname -r:显示Linux主机所用的操作系统的版本和硬件名称等基本信息
-a:详细信息
-h:立即关机
-r:重启
-t 数字:过几秒后关机
Tab 命令补全、档案补全
Ctrl c 停掉当前进程
Ctrl d 退出当前用户
注意Linux中的复制粘贴不能用常用的快捷键,可用鼠标操作代替
which 指令名:指令所在文件夹
alias:给指令起别名 例如: alias pdd='ls -al'
感谢你能看完,喜欢不妨点个赞!