linux命令多而杂,很多命令使用的时候都需要百度才能找到,下面是我常用的一些命令,总结起来就不用到处去找了。
其他
sudo命令以系统管理者的身份执行指令
查看电脑目前的环境变量: echo $PATH
编辑文件
vi /路径/文件名
Page Up和Page Down键上下翻页
按下Insert键,可以见到窗口左下角有“Insert”字样,表示当前为插入编辑状态,这时从键盘输入的内容将插入到光标位置;再按下Insert键,左下角将有“Replace”字样,表示当前为替换编辑状态,这时从键盘输入的内容将替换光标位置的内容
编辑完内容后,按下Esc键 保存并退出 :wq 不保存退出 :q!
终端
打开终端: ctrl+alt+t
打开新终端: ctrl+shift+t
关闭终端: ctrl + d
如何让Linux的脚本关闭终端后继续执行?
在Linux的shell终端中执行一个命令时是不能关掉终端的,否则程序也会终止,但是有些耗时比较长的命令是无法保证一直开着终端的。
解决方法是nohup命令,在程序的前面加上nohup,程序的后面加上&,这样程序就会一直执行直到结束。
比如:nohup python test.py &
回车,然后提示一堆东西,再次回车,回到shell界面。这就可以了。
还有一个问题:程序在执行中会输出一些信息,如果后台执行的话,这些信息是不是没法看了?(比如:程序执行出错终端,想看看报错信息之类的)。使用了nohup命令后,会在当前目录下生成一个nohup.out的日志文件,记录的就是命令的输出。
目录操作(路径)
目录的查看:ls //查看当前目录下的文件及目录
ls -l filename //文件属性
ls dir //目录中包含的内容
ls -d dir //显示目录本身
ls -a dir //显示所有文件(包含隐藏文件)
ls -s dir //查看并按照大小排序
新建目录: mkdir [路径名]
要删除空目录,请使用该-d选项: rm -d dirname
要删除非空目录及其中的所有文件,请使用r(递归)选项: rm -r dirname
如果目录中的目录或文件受到写保护,系统将提示您确认删除。要删除非空目录和所有文件而不提示,请使用r(递归)和-f选项:
rm -rf dirname
要一次删除多个目录,请使用rm命令,后跟以空格分隔的目录名称:
rm -r dirname1 dirname2 dirname3
与文件相同,您还可以使用通配符(*)和常规扩展来匹配多个目录。
路径
显示当前路径: pwd
切换路径:cd 目录名 //进入到指定的目录中
cd - //当前目录和当前目录之前所在的目录之间切换
cd ~ //进入当前用户家目录
cd … //进入当前目录的上层目录
删除
- 删除文件
常规删除a.txt文件: rm a.txt
要一次删除多个文件,请使用rm命令后跟由空格分隔的文件名:
rm filename1 filename2 filename3
您还可以使用通配符(*)和常规扩展来匹配多个文件。例如,要删除.pdf当前目录中的所有文件,请使用以下命令:
rm *.pdf
强行删除file.log文件: rm -f file.log
- 删除目录
rm -rf 目录名字
压缩文件操作
zip 压缩
(1)压缩一个文件
zip -r archive_name.zip filename (-r是压缩文件)
(2)将当前文件夹下的所有文件打包成一个 new1.zip 文件
zip new1.zip *
(3)把当前文件夹下所有 my1*.doc 的文件打包成一个 new1.zip 文件
zip new1.zip my1*.doc
(4)把一个文件 abc.txt 和一个目录 dir1 压缩成为 yasuo.zip
zip -r yasuo.zip abc.txt dir1
(5)将 /home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip
备注:-q 为安静模式,在压缩的时候不显示指令的执行过程
zip -qr html.zip /home/Blinux/html
(6)添加一个文件到 .zip 文件中
备注:如果当初并没有把 my32.doc 压在 new1.zip 里面,现在把它加进去。-g 选项是增加而不要重新产生的意思。
zip -g new1.zip my32.doc
(7)将更改过的文件添加到压缩包中
备注:如果当初 my2*.doc 都已经压缩进 new1.zip 里面了,但是后来 my2*.doc 中有几个文件有更改,又不想去找出到底是哪些文件更改了,这条命令请系统自行帮助检查,更改过的才更新到压缩,否则就不必动。
zip -u new1.zip my2*.doc
(8)删除除 .zip 文件中的指定文件
备注:如果当初 my18.doc 是压缩在 new1.zip 中的一个文件,现在这条命令把它从压缩文件中抽走并删掉。-d 是删除的意思。
zip -d new1.zip my18.doc
unzip 解压缩
(1)把文件解压到当前目录下
unzip test.zip
(2)如果要把文件解压到指定的目录下,需要用到-d参数。
unzip -d /temp test.zip
(3)解压的时候,有时候不想覆盖已经存在的文件,那么可以加上 -n 参数
unzip -n test.zip
unzip -n -d /temp test.zip
(4)将压缩文件 test.zip 在指定目录 tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令覆盖原先的文件
unzip -o test.zip -d /tmp/
(5)只看一下 zip 压缩包中包含哪些文件,不进行解压缩
unzip -l test.zip
(6)查看显示的文件列表还包含压缩比率
unzip -v test.zip
(7)检查 zip 文件是否损坏
unzip -t test.zip
二、tar格式
tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,它仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
tar -cvf archive_name.tar directory_to_compress
-c参数是建立新的存档
-v参数详细显示处理的文件
-f参数指定存档或设备
打包之后如何解包:
tar -xvf archive_name.tar
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用下面的这个命令来解包到指定的路径:
tar -xvf archive_name.tar -C new_dir (解包的参数是-C,不是小写c)
三、tar.gz格式
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。
压缩方式:
tar -zcvf archive_name.tar.gz filename
解压缩方式:
tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解包在当前目录下面。当然,你也可以用下面的这个命令来指定解包的路径:
tar -zxvf archive_name.tar.gz -C new_dir
移动/重命名 文件
详细介绍可以看下面的链接:
http://www.sohu.com/a/213687177_660184
linux实用命令之如何移动文件夹及文件下所有文件:
mv [options] 源文件或目录 目标文件或目录
[options]主要参数(几个重要的参数)
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。 - r 指示mv将参数中列出的全部目录和子目录均递归地移动。
第二个参数
当第二个参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
移动多个文件或目录到指定目录下:
mv 目录1 目录2 目录3 目标目录
系统默认前面的目录/文件是要移动的目录/文件,最后一个目录是目标目录(文件要移动到的地方)。
重命名目录
mv directory_1/ directory_2/
运行sh文件
假设一个sh命令:start.sh
那么我进入这个命令所在的路径,然后输入:
start.sh
却不能执行。
原因:
Linux不像DOS,默认的先搜索当前路径,而Linux一般情况下是按$PATH变量去搜索的,用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径。
假设你的文件在//test/start.sh
运行的话就
./start.sh
/test/start.sh
sh start.sh
3种方法
./即当前目录,…/上一级目录。
你不可能把所有目录都加到路径变量$PATH中,所以执行当前目录下的文件时用./,这是习惯。
进程
检查是否在运行apt,apt-get相关的进程:
grep -i apt
如果存在与apt相关的正在运行的进程,kill掉进程:
sudo kill -9
或者直接简单粗暴的:
sudo killall apt apt-get
查看cpu内存占用率:
gnome-system-moniter
常见错误
1. Permission denied
运行test.sh脚本文件报错:
-bash: ./xx.sh: Permission denied
为了获得执行权限,借助chmod指令修改文件权限即可。运行以下命令:
chmod 777 test.sh
然后再运行脚本文件就可以了。
./test.sh
Linux chmod +755和chmod +777 各是什么意思呢?
755 代表用户对该文件拥有读,写,执行的权限,同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样。
777代表,user,group ,others ,都有读写和可执行权限。