preface
使用linux你永远也无法避过命令行,能熟练地掌握常用命令是一种必备的技能。
command
man
manual的缩写:手册,指南
显示所查询命令的用法
代码语言:javascript复制man man //查看man命令的用法
man ls
man pwd
man cd
显示命令的用法后: 空格键:向下翻页 B:向上翻页 Q:退出
ls
list缩写
输出目录下的文件和目录信息(默认当前目录)
代码语言:javascript复制ls //列出当前目录下文件信息
ls -a //列出当前目录所有文件信息,包括隐藏文件
ls -l //列出当前目录文件的详细信息(文件属性和权限,硬链接个数,属主,属组,文件大小,最后访问时间,文件或目录名)
ls / //显示根目录下的文件信息
ls -al //显示当前目录下所有文件的详细信息
其他用法
代码语言:javascript复制ls -lt //按修改时间排序显示,从近到远
ls -R //递归显示当前目录下各目录信息(-R为大写)
ls -lih //可以显示总大小,带单位
pwd
print work directory :打印工作目录
输出当前路径
代码语言:javascript复制pwd
cd
change directory
切换目录
代码语言:javascript复制cd / //切换到根目录
cd /etc/python3 //切换到目录下
cd .. //切换到上一层目录
more
- 分页显示文件内容
- 比cat方便
mkdir
make directory
创建目录/新建文件夹
-p:创建多层目录
代码语言:javascript复制mkdir dir_name //创建名为dir_name的目录
mv
move
移动文件或目录,相当于剪切。也可以用来重命名
mv [参数] 源文件 目标文件
-i 覆盖前给予提示
代码语言:javascript复制mv test.txt d1 //将test.txt移动到d1目录下
mv d1/test.txt d2 //将d1下的test.txt移动到d2目录下
mv test.txt ttt.txt //将test.txt重命名为ttt.txt
cp
- copy
- 复制文件夹或目录
- 用法与mv类似
- -R 源文件为多级目录时,需添加该参数(-R为大写)
rm
remove
删除文件或目录
-f:force 强制删除,不给任何提示
-i:information 删除文件时提供交互信息(输入y或n)
-r: recursion 递归删除目录
代码语言:javascript复制rm -rf a.txt //强制递归删除(root用户谨慎使用)
rm -r file1/1.txt //递归删除file下的1.txt
chmod
- change mode
- 修改权限 方式①:
u:user即当前用户 g:group当前用户所属组 o: others其他用户 a:all所有 r:read读权限 w:write写 x:execute执行
for example:
代码语言:javascript复制chmod u-r 1.txt //去除当前用户对1.txt的读权限
方式②:
代码语言:javascript复制chmod 777 1.txt
三个数代表的意思:777分别转换为二进制是 111 111 111 ,这九位分别对应以下1-9位权限的有无
df
disk free
查看当前系统磁盘使用情况
-h 以G或M为单位显示磁盘信息
代码语言:javascript复制df -h
free
- free -h
- 查看物理内存使用情况
gzip
用来压缩文件或解压.gz文件
-d:解压文件
-c:输出到标准输出设备,不更改原始文件
代码语言:javascript复制gzip 1.txt //压缩1.txt为1.txt.gz(覆盖原文件)
gzip -d 1.txt.gz //解压1.txt.gz(覆盖原文件)
gzip -c 1.txt > 1.txt.gz //压缩1.txt(保留原文件)
gzip -dc 1.txt.gz > 1.txt //解压1.txt.gz(保留原文件)
grep
global search regular expression(RE) and print out the line, 全面搜索正则表达式并把行打印出来 用法:
代码语言:javascript复制grep '正则表达式' 1.txt //显示1.txt中满足条件的行
ps/kill
process status
ps:查看系统进程
-a: 包括其他用户的所有进程
-e:显示当前所有进程
-f: 树形格式显示进程
-u: 按照用户名或启动时间顺序来显示进程
-x: 显示无控制终端的进程
代码语言:javascript复制ps -aux //常用组合
ps -ef //常用组合
常见用法:
代码语言:javascript复制ps -aux > ps1.txt //将进程信息输出到ps1.txt
more ps1.txt //用more命令查看
ps -aux | grep '===' //借助grep过滤出满足条件的进程
kill:结束进程 用法:
代码语言:javascript复制kill [进程PID]
tar
打包或压缩文件
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
—–以下为可选——
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
—–以下为必需——
-f: 使用档案名字,切记这个参数是最后一个参数,后面只能接档案名(打包后的) 打包:
代码语言:javascript复制tar -cvf 1.txt.tar 1.txt
打包并用gzip压缩:
代码语言:javascript复制tar -czf 1.txt.tar.gz 1.txt
解开tar包:
代码语言:javascript复制tar -xvf 1.tar
解压.tar.gz:
代码语言:javascript复制tar -xzvf 1.tar.gz
解压.taz:
代码语言:javascript复制tar zxvf 文件名.tgz -C /pathname
其他用法:
代码语言:javascript复制# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思
总结:
代码语言:javascript复制压缩:
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
解压:
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
unzip file.zip //解压zip
总结:
代码语言:javascript复制1、*.tar 或 *.tar.xz 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.zip 用 unzip 解压
取消打印队列
代码语言:javascript复制[root@localhost /]# lpq //查看打印队列
printer01 已准备就绪,正在打印
顺序 所有者 作业 文件 总大小
1st root 4 4.c 1024 字节
active root 2 5.c 1024 字节
[root@localhost /]# cancel 4 //取消4号任务
You have new mail in /var/spool/mail/root
[root@localhost /]# lpq //查看打印队列,4号任务已经取消
printer01 已准备就绪,正在打印
顺序 所有者 作业 文件 总大小
active root 2 5.c 1024 字节
[root@localhost /]#
后台运行任务
代码语言:javascript复制在一个命令最后加 &,代表把该命令放后台运行
ctrl z将正在前台运行的命令放到后台,并使其处于暂定状态
jobs -l #显示所有后台任务(包括编号,状态,运行时的命令)
fg %xxx # 将后台命令调至前台运行,xxx为该任务编号,不是进程号
bg %xxx # 将后台暂停的命令变成在后台继续运行
Linux practice
- 利用man命令来查看ls/mkdir/mv/cp/rm的用法
- 利用cd命令切换到上级目录、根目录、home目录、usr目录
- 利用pwd命令显示当前目录
- 利用ls命令显示目录下的内容、显示隐藏内容、显示上级目录内容、显示根目录内容
- 利用mkdir创建一个目录dir_one、递归创建目录、在目录下创建一个文档并写上内容
- 利用rmdir将创建的目录删除
- 在本目录下创建一个文档test1,利用mv命令改名为test2,利用cp命令在 本目录下拷贝test1为test3,将test3拷贝到root目录下,用rm将test3删除
- 首先用echo在屏幕上显示helloworld,其次用echo通过变量的形式显示helloworld
- 在home目录下创建一个文件夹test1,并tar命令将其压缩为test1.tar.gz,然后将test1删除,然后利用tar命令将test1.tar.gz解压
- 利用tar/make命令对vim源码包进行加压、配置、编译、安装。
转载请注明出处:http://taowusheng.cn/ 微博:寒枫–0-0– 知乎:https://www.zhihu.com/people/tao-wu-sheng 豆瓣:YIFEI