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
命令行中复制、粘贴
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)]
历史命令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 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)
图片查看
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命令及应用的主要内容,如果未能解决你的问题,请参考以下文章