linux命令:常用shell命令及应用

Posted -柚子皮-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令:常用shell命令及应用相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/pipisorry/article/details/44681081

小技巧

首次登录及帮助

在linux中可以用shutdown命令实现自动定时关机的功能,总结如下:
1、shutdown -r now  关机后重启
2、shutdown -h now  关机后不重启
3、shutdown -r +10 10分钟后重启
4、shutdown -r 10:00 10点钟重启
5、shutdown -h +10 10分钟后关机
6、shutdown -h 10:00 10点钟关机

命令行中直接查看linux shell命令及解释

man command

Linux下更好用的帮助命令—cheat

#pip install cheat

$cheat tar

[Linux下更好用的帮助命令—cheat]

命令行中复制、粘贴

Ubuntu终端窗口中,复制粘贴的快捷键需要加上 shift

复制:ctrl+shift+c 粘贴:ctrl+shift+v

bash特殊参数

command !$ 执行后!$把上个命令最后的参数作为输入

!! 代表上一条命令

命令中执行某个命令

$(hostname)

可以这样echo $(hostname) > 1.txt

还可以通过``来执行命令

sed "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

sudo shell 内置命令

shell 是一个交互式的应用程序,在执行外部命令时通过 fork 来创建一个子进程,再通过 exec 来加载外部命令的程序来执行,但是如果一个命令是 shell 内置命令,那么只能直接由 shell 来运行。sudo 的意思是,以别的用户(如root)的权限来 fork 一个进程,加载程序并运行,因此 sudo 后面不能跟 shell 的内置命令,如:$ sudo cd /sys/kernel/debugfs
sudo: cd: command not found
在这种情况,我们又没有 root 账户的密码,我们怎样执行该命令呢?有种办法就是使用 sudo 获得root shell 的权限,然后在root shell 中执行该命令。进入root shell 很简单,输入sudo bash 确认本用户的密码即可,此时你会发现命令提示符显示当前是 root。一旦获得root shell,你可以执行任何命令而不需要在每条命令前输入sudo了。

shell内置命令

[15 Useful Bash Shell Built-in Commands (With Examples)]

[cd 命令:一个内置命令]

历史命令history

$ history [n]
$ history [-c]
$ history [-raw] histfiles
选项与参数:
n   :数字,意思是“要列出最近的 n 笔命令列表”的意思!
-c  :将目前的 shell 中的所有 history 内容全部消除
-a  :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,
      则默认写入 ~/.bash_history
-r  :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w  :将目前的 history 记忆内容写入 histfiles 中!

执行历史命令

$ !number
$ !command
$ !!
选项与参数:
number  :执行第几笔指令的意思;
command :由最近的指令向前搜寻“指令串开头为 command”的那个指令,并执行;
!!      :就是执行上一个指令(相当于按↑按键后,按 Enter)

还有一个快捷键

ctrl + r 在历史命令中查找  有时history比较多时,想找一个比较复杂的,直接在这里,shell会自动查找并调用;将自动在命令历史缓存中增量搜索后面入的字符。

[linux键盘及终端快捷键 ]

皮皮Blog

 

 

 

目录和文件操作命令

[linux文件及目录管理]

[Linux文件格式化与相关处理及sed工具 ]

linux vi vim命令、快捷键

 

[linux vi vim命令、快捷键]

 

linux解压、压缩命令tar

 

z是针对 gzip,j是针对 bzip2,J针对xz。注意.tgz是.tar.gz的缩写

压 缩(可同时多个文件或目录)

tar -zcv -f ~/filename.tar.gz fname1 fname2 或者dirname1 dirname2

tar -jcv -f ~/filename.tar.bz2 fname1 fname2 或者dirname1 dirname2

tar压缩排除某个文件夹

要排除多个目录,增加 --exclude 即可,如下命令排除logs和libs两个目录及文件tmp.txt:

tar -zcvf dir.tar.gz --exclude=dir/logs --exclude=dir/libs --exclude=dir/tmp.txt dir

查 询

tar -jtv -f filename.tar.bz2

Note: 如果for循环压缩多个目录,使用

DIRS=$(echo ~/SysReinstall/ ~/files/DESKTOP/   #不能加"",否则找不到路径

for DIR in $DIR

do
    cd
    tar -czf $(basename $DIR).tar.gz $DIR
done

解压缩

tar -zxv -f filename.tar.gz -C 欲解压缩的目录

tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

tar -xJf extra-cmake-modules_1.4.0.orig.tar.xz

单纯的.gz文件解压,这种文件不可以使用tar命令解压,需要用gzip解压(且不能指定解压目录)

gzip -d ***.gz

压缩解压.zip,  .7z文件

sudo apt-get install p7zip p7zip-full p7zip-rar

# 7z a yajiu.7z yajiu
这条命令是将文件夹yajiu压缩成一个7z包
# 7z x yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,x是解压到压缩包命名的目录下
# 7z e yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,e是解压到当前路径,就是压缩包里面的东西都抽取到当前目录下(一般不会用这个命令)

[Linux 下压缩与解压.zip和.rar及.7z文件 ]

linux下压缩\\解压rar文件

解压rar文件好像只能用unrar,用7z解压出来只有0kb。压缩也用rar吧

$sudo apt-get install rar

$sudo apt-get install unrar

安装后可以在命令行或者文件管理器中打开和解压rar文件。

压缩$rar a ***.rar ***

解压unrar ***.rar

linux下解压windows下的压缩文件时出现文件名乱码

主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用系统默认的格式(utf-8)解压缩,编码格式不同,自然会出现乱码。
解决办法,linux下解压zip文件时声明一下编码即可。
比如对于某个windows下用zip压缩的文件 xx.zip,解压时,可以利用
$ unzip -O CP936 xx.zip
实际上,CP936用GBK, GB18030也是可以的。
Note:一般rar文件在linux解压时并不会出现文件名乱码的情况,主要原因是rar文件头声明了压缩时的编码。所以大家以后为了方便,尽量还是用rar方式压缩吧。

bash命令批量处理压缩文件

 

#!/bin/bash
for i in $(ls | grep 'zip')
do
    unzip -O CP936 ${i}
done

for i in $(ls | grep 'rar')
do
    unrar ${i}

done

 

Linux转换命令convert

图片转换

 默认都是使用像素作为单位

convert -sample 70%x70% xxx.jpg xxx1.jpg 将图像的缩减为原来的70%*70%

如果需要转换成90x120,而图片无需保持原有比例,可以在宽高后面加上一个感叹号!.

如:convert -resize 90x120! src.jpg dst.jpg    (600后面是字母x)

[linux下使用convert命令修改图片分辨率 ]

 

图片查看

identify命令是专门“识别”图片的,列出的内容有图片分辨率,大小,位深,红、绿、蓝的值等等。

 

$ identify pi-240-320.jpg
pi-240-320.jpg JPEG 240x320 240x320+0+0 8-bit sRGB 68.1KB 0.020u 0:00.019

这命令来自ImageMagick。没有此命令的可以安装:# apt-get install imagemagick

{nm, 写的文章怎么只剩一半了,真给跪了。。。。。。}

 

以上是关于linux命令:常用shell命令及应用的主要内容,如果未能解决你的问题,请参考以下文章

linux的常用命令及技巧

LINUX对shell命令的拦截

linux常用命令及使用技巧

shell脚本简介及常用文本编辑命令

linux系统常用命令统计及shell特殊字符

[Linux]Linux 基础知识常用命令和 Shell 脚本