Linux常用命令总结

2022-11-14 14:02:55 浏览数 (1)

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

0 人点赞