天天看点

15个超常用的Linux命令

Contents

    • 1. sudo
    • 2. apt&apt-get
    • 3. wget
    • 4. mkdir
    • 5. cp&rm&mv
    • 6. tar/zip等压缩/解压缩相关
    • 7. touch&sh&&chmod
    • 8. ls
    • 9. cat
    • 10. watch
    • 11. ps&top
    • 12. vim
    • 13. cd
    • 14. pwd
    • 15. clear&reset
    • Reference

因为总是忘记,干脆自己写下来记忆更深,不然每次都要查,太费时间了…

其实,也可以用如下的help格式调出命令格式或man也行,不过前提也是要记住命令名呀。

[相应命令名] --help			#列出想查询命令的参数及其功能
man [相应命令名]				#查看基本命令
           

1. sudo

一般是与系统管理员权限相关,作为需要权限命令的前缀,当系统检测到该命令时,会提示用户提供当前用户名所对应的密码,以确定你是否有权限进入下一步的操作,一般如果连接服务器用自己的用户名密码登录时是没有相应权限的。

另外,sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。(注:部分来自百度百科https://baike.baidu.com/item/sudo/7337623?fr=aladdin)

2. apt&apt-get

一个快速、实用、高效的方法来安装软件包的命令。

下列命令后加包名

sudo apt-get update 	#更新源
sudo apt-get upgrade    #更新已安装的包
sudo apt-get install [packagename] 	 #安装包
sudo apt-get reinstall [packagename] #重新安装包
sudo apt-get -f install	#修复损坏的软件包,尝试卸载出错的包,重新安装正确版本(-f放在 install 前或后是一样的效果)
sudo apt-get remove [packagename] #删除软件包而保留软件的配置文件
sudo apt-get purge [packagename]  #同时清除软件包和软件的配置文件
sudo apt-get build-dep [packagename] #安装相关的编译环境
apt-get source [packagename] #下载包的源代码
sudo apt-get clean或sudo apt-get autoclean #清理下载文件的存档且只清理过时的包
sudo apt-get check 		#检查是否有损坏的依赖
           

apt&apt-get区别什么的详见https://blog.csdn.net/maizousidemao/article/details/79859669

3. wget

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。

自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。

最重要的是,wget支持断点传输,即使很大的文件下载失败后,也可以用wget-c恢复下载。

下面的参数后要空一格加入想下载的URL

wget -i [URLlist.txt] #下载多个文件,但需先保存一份包含下载链接的文件
wget -b [URL]   #-b即background启动后转入后台执行
wget -t n [URL] #-t即tries,n即number->设定最大尝试链接的次数(0表示无限制)
wget -c [URL]   #-c即continue断点续传,超级好用!当然在这之前要先用过wget [URL]
wget -Y [URL]   #-Y即proxy=on/off 打开或关闭代理
wget –limit-rate=300k [URL] #限速下载,根据网络情况自行调整限速
wget ftp-url [URL] #使用wget匿名ftp下载
wget --ftp-user=USERNAME --ftp-password=PASSWORD [URL]
#使用wget用户名和密码认证的ftp下载
           

4. mkdir

mkdir用来创建文件夹

mkdir [dirname] #当前目录下建立一个文件夹
mkdir -p [dirname] #-p即parents,可创建多级目录,即一次可以建立多个目录,但要确保目录名称存在,如果目录不存在的就新创建一个。
mkdir -m [dirname] #-m即mode,对新建目录设置存取权限。也可以用chmod命令设置。
           

5. cp&rm&mv

cp(copy)即copy文件到指定目录,当然除了单纯的复制之外,还可以创建链接文件对比两文件的新旧而予以更新。一定要注意当前的目录位置,然后准确定位到源目录和目标目录。

不带参数的就是cp [source] [dest]

注:源文件(source),目标文件(destination)

rm(remove)可以移除文件或目录。

mv(move) 能移动文件或目录还有更名。

cp -a [source] [dest] #复制文件夹时使用,保留链接、文件属性,并递归地复制文件夹
cp -r [source] [dest] #此时的目标文件必须是文件夹,递归复制所有文件夹及文件
cp -f [source] [dest] #覆盖已经存在的目标文件而不提示(-f即force,谨慎使用)
cp -i [source] [dest] #覆盖前给出相应提示,交互式删除(推荐使用)
           
rm -rf -- -filename- [filename/dirname] #当某个文件以-开头,删除时应该这么做
rm -rf ./-filename- [filename/dirname] #删除指定是某个目录下的文件
rmdir [dirname] #删除空文件夹rmdir,如果要删除的目录下有内容是无法删除的,非要删除的话那么就需要用到rm -rf。 
rm -rf [filename/dirname]  #这是个非常危险的命令
           
mv [filename1] [filename2] #mv的改名功能 
mv -f [filename] [dir] #若目标文件存在,会被覆盖  
mv -n [filename] [dir] #若目标文件存在,不覆盖
mv -i [filename] [dir] #删除时有提示信息
mv -u [filename] [dir] #若源文件比目标文件新,或者目标文件丢失,则更新,否则不更新(更新移动)
           

这里对mv和rm的使用一定要注意(尤其是rm -rf *),因为不像windows一样垃圾进了回收站,还能恢复,但要恢复也不是没有办法,只是麻烦了点,还不一定能成功。

当然,对于误删文件还原可以分为两种情况:

一是删除以后在进程存在删除信息:进程PID依旧存在,可通过查看删除时的PID进而恢复。

lsof | grep [deletefilename] 			#查看删除的文件进程是否还存在
cp /proc/[PID]/fd/1 /指定目录/文件名
           

二是删除以后进程都找不到,只有借助于工具还原。

6. tar/zip等压缩/解压缩相关

tar 命令可以为文件和目录创建档案。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。注意,它必须配合参数使用。

#压缩
tar -cvf [filename.tar] [dir]   #仅打包,不压缩!-c表示创建新的文档,-v显示详细的tar处理的文件信息,-f 即操作的文件名
tar -zcvf [filename.tar.gz] [filesdir]   #打包dir后,以 gzip压缩(-z表示调用gzip程序来压缩文件,压缩后的文件名称以.gz结尾)
tar -jcvf [filename.tar.bz2] [filesdir]  #打包dir后,以 bzip2压缩(-j表示调用bzip2程序来压缩文件,压缩后的文件名称以.bz2结尾)
tar -rvf [filename.tar] [filesdir] #将指定目录下的文件添加到tar文件中,-r 表示增加文件,把要增加的文件追加在压缩文件的末尾
tar –cZf [filename.tar.Z]  #打包dir后,以compress压缩(-Z表示调用compress压缩文件,压缩后的文件名称以.tar.Z结尾)
tar -tvf [filename.tar]    #查看tar文件里面的内容,-t 表示查看文件中的内容
zip -r [filename.zip] ./*  #将当前目录下的所有文件和文件夹全部压缩成zip文件,-r表示递归压缩子目录下所有文件或用空格将想要压缩的文件或目录个隔开
rar [filename.rar] [dir]   #压缩成rar格式

#解压
tar -xvf [filename.tar]      #将tar文件解压到当前目录下,-x表示解压文件
tar -xzvf [filename.tar.gz]  #解压tar.gz文件到当前目录下
tar -xjvf [filename.tar.bz2] #解压tar.bz2文件到当前目录下
tar -xZvf [file.tar.Z]       #解压tar.Z文件到当前目录下
unrar e [filename.rar]       #解压rar文件到当前目录下
unzip [filename.zip]         #解压zip文件到当前目录
unzip -o -d [filesdir] [filename.zip] #将zip文件解压到指定目录下,-o表示不提示的情况下覆盖文件,-d表示将文件解压缩到指定目录下
           

7. touch&sh&&chmod

linux中touch命令不常用,一般在使用make的时候可能会用到,可用来修改文件时间戳,或者新建一个不存在的文件。

在linux中,shell脚本非常方便,关于sh脚本的编写有以下这些说明:

#!/bin/sh	#开头必须以这样的形式开始,#!用来告知系统它后面的参数是用来执行该文件的程序
chomd +x [yourfilename.sh]	#为sh脚本增加可执行的权限,使得可以用./[yourfilename.sh]执行该shell脚本
           

8. ls

ls可以列出文件夹下文件和文件夹的相关信息,也就是对于不同的文件会显示不同的颜色。

红:不可执行文件,如压缩包

蓝:文件夹

绿:可执行文件,如python文件,sh文件,run文件等

ls [选项] [目录或者文件] #如果单用ls则对当前目录下文件相关信息显示
ls -a	#显示当前目录的所有文件和目录(包括隐藏的)
ls -l	#以列表的方式显示文件信息
ls -s	#显示文件大小
ls -S	#对文件大小排序显示
           

9. cat

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示。

cat [option] [filename] #如果单用cat则对指定文件显示
cat [filename] 		#一次显示整个文件
cat > [filename] 	#创建一个新文件(不能编辑已有文件)
cat [file1] [file2] > [file] #将两个文件合并为一个文件
cat -n          	#对输出的所有行编号,由1开始对所有输出的行数编号
           

10. watch

watch可以帮助监测一个命令的运行结果,它是周期性地执行下个程序,并全面屏显示执行结果,Ctrl+x可切换终端,Ctrl+g可退出watch。

watch [命令]	#参数缺省默认每两秒运行一下程序,多用于周期性执行命令/定时执行命令
watch -n 1 [命令]	#-n表示指定间隔时间,1表示每隔1秒显示变化情况
watch -d [命令]	#-d即-diffiences表示高亮显示变化区域,另:-d=cumulative会把变动过的地方都高亮显示
watch -t [命令]	#-t可关闭watch命令在屏幕顶部的时间间隔、命令和时间的输出
           

常用的watch命令如下:

watch -n 1 -d netstat -ant	#每隔一秒高亮显示网络链接数的变化情况
watch -n 1 -d 'pstree|grep http'	#每隔一秒高亮显示http链接数的变化情况
watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l' 	#实时查看模拟攻击客户机建立起来的连接数
watch -d 'ls -l|grep scf' 	#监测当前目录中 scf' 的文件的变化
watch -n 10 'cat /proc/loadavg'	#10秒一次输出系统的平均负载
           

11. ps&top

ps即process status,用来列出系统中当前运行的哪些进程,还有进程运行的状态以及哪些进程占用了过多的资源等。而top可以动态的显示进程信息。

ps标识进程的5种状态码:

D 不可中断 uninterruptible sleep (usually IO) :收到信号不唤醒和不可运行, 进程必须等待直到有中断发生

R 运行 runnable (on run queue) :正在运行或在运行队列中等待

S 中断 sleeping :休眠中, 受阻, 在等待某个条件的形成或接受到信号

T 停止 traced or stopped :进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行

Z 僵死 a defunct (”zombie”) process :进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放

ps -e	#显示所有进程
ps -a	#显示同一终端下的所有程序
ps e	#显示环境变量
ps -H	#显示树状结构
ps -aux	#显示所有包含其他使用者的行程 
ps -C [命令]	#列出指定命令的情况
ps -u root	#显示指定用户的信息,此处显示root的
ps -l	#将目前属于您自己这次登入的 PID 与相关信息列示出来
           

12. vim

vim编辑器是所有Unix及Linux系统下标准的编辑器(vim是vi的升级版),它基本上有3种状态:

命令行模式(Command):控制屏幕光标的移动,字符、字或行的删除。

插入模式(Insert):在用vim进入命令行模式后,按 ‘i’ 键进入插入模式,能对文字进行删改,按 ‘Esc’ 键退出插入模式。

底行模式(Last line):在前两个模式下按 ‘Esc’ 键进入底行模式,可将文件保存或退出vim,也可以设置编辑环境,如寻找字符串、列出行号等。(":wq"表示保存并退出、":q!"表示不保存之直接强制退出)

13. cd

cd(Change Directory)这个命令可以切换到指定目录,但前提是目录要正确。

绝对路径:从根目录开始定位,不管自己当前所在位置都可以进入到目标路径。

相对路径:根据自己当前所在定位。当前位置不一样,绝对路径就不一样。

cd ~ #或者cd也行,回到home目录
cd ..#回到当前目录的上一级
cd desktop #回到桌面目录下
           

14. pwd

pwd(Print Working Directory),即打印当前所在的工作路径

15. clear&reset

clear	#刷新屏幕,本质上只是让终端显示页向后翻了一页,常用
reset	#完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,速度较慢,少用
           

Reference

https://www.cnblogs.com/peida/archive/2012/12/05/2803591.html

https://blog.csdn.net/Geroge_lmx/article/details/80552272

https://www.jianshu.com/p/57b2b1cc873b

https://www.jb51.net/article/120282.htm

https://blog.csdn.net/qq_40232872/article/details/79159753

https://www.cnblogs.com/xiaohaillong/p/5821952.html

https://www.cnblogs.com/peida/archive/2012/12/31/2840241.html

https://www.cnblogs.com/YuanYe1/p/5241232.html