shell常用命令

Shell命令

随着linux的流行,Shell命令成为程序员最常用的技能。我们来看看最常用的Shell命令都有那些:

1.apt-get处理各种和安装相关问题的命令。

  • sudo apt-get install package 安装包
  • sudo apt-get install package –reinstall,重新安装包。
  • sudo apt-get -f install ,修复安装。
  • sudo apt-get remove package ,删除包。
  • sudo apt-get remove package –purge ,删除包,包括配置文件等
  • sudo apt-get update ,更新源。
  • sudo apt-get upgrade ,更新已安装的包。
  • sudo apt-get dist-upgrade,升级系统。
  • sudo apt-get build-dep package,安装相关的编译环境。
  • sudo apt-get clean 或者 sudo apt-get autoclean,清理无用的包。
  • sudo apt-get check,检查是否有损坏的依赖。
  • apt-get source package,下载该包的源代码。
  • apt-cache search package,搜索软件包。
  • apt-cache show package,获取包的相关信息,如说明、大小、版本等。
  • apt-cache depends package,了解使用该包依赖那些包。
  • apt-cache rdepends package,查看该包被哪些包依赖。

2.ls: 文档及目录查询,最常用的参数有2个: -a -l。

  • ls –a :Linux上以.开头的文件是隐藏文件用ls -a可以将隐藏文件显示出来。
  • ls –l :显示更详细的文件信息。

3.cd: 用于切换用户当前工作目录。

  • cd demo: 进入demo目录。
  • cd或者 cd ~:切换到当前用户的home目录。
  • cd - :命令后跟一个减号,则会退回到之前的目录。
  • cd .. :回到当前目录下的上一级目录。

4.mkdir用来创建目录、rmdir用来删除目录,但是如果文件中有内容rmdir命令就失效了。这时候得用到rm命令,rm用于删除目录和文件,rm命令常用到两个参数:-i,-r。

  • rm –i:在删除文件之前系统会先询问一下如果回车确认后,文件就会被删除。
  • rm –r:支持目录删除。

5.cp复制目录或者文件。

  • 复制一个文件到另一目录:cp test.txt ../demo
  • 复制一个文件到本目录并改名:cp test1.txt test2.txt
  • 复制一个目录demo并改名为demobak:cp -r demo demobak

6、mv移动文件或者目录。

  • 将一个文件移动到另一个目录:mv test.txt ../demo
  • 将一个文件在本目录改名:mv test1.txt test2.txt
  • 将一个文件移动到另一个目录并改名:mv test1.txt ../demo/test2.txt

7、cat的功能是显示或连结一般的ascii文本文件。用法如下:

  • cat file1 ,显示file1文件内容;
  • cat file1 file2 ,依次显示file1,file2的内容;
  • cat file1 file2 > file3 ,把file1, file2的内容结合起来,再重定向到file3文件中。”>”是右重定向符,表示将左边命令的结果当成右边命令的输入,如果右侧文件是一个已存在文件,其原有内容会被清空,而变成左侧命令输出的内容。如果希望以追加方式写入,要用”>>”重定向符。如果”>”左边没有指定文件,如cat > file1,系统会等用户输入,输入完成后再按[Ctrl]+[c][Ctrl]+[d],系统会将用户输入的内容写入file1中。

8.more和less,这两个命令用于查看文件,如果一个文件太长,显示内容超出一个屏幕,用cat命令就只能看到内容的最后,用more和less两个命令都可以分页查看。more指令可以使超过一页的文件内容分页暂停显示,用户按键后才继续显示下一页。而less除了有more的功能以外,还可以用方向键往上或往下的滚动文件,更方便浏览阅读。 less的常用动作: - set | less 分屏显示shell的全部变量; - w 可以指定显示哪行开始显示,是从指定数字的下一行显示; - g 跳到第一行; - G 跳到最后一行; - p n% 跳到n%,比如10%; - /单词 搜索,比如/HUBWIZ表示在文件中搜索HUBWIZ单词; - v 调用vi编辑器; - q 退出less。

9.grep用于从文件中搜索包含指定模式的行并打印出来,它是一种强大的文本搜索工具,支持使用正则表达式搜索文本。 - $ ls -l | grep ‘^a’,通过管道过滤ls -l输出的内容,只显示以a开头的。 - $ grep ‘Vm’ h*,显示所有以h开头的文件中包含Vm的行。 - $ grep ‘Vm’ file1 file2 file3,显示在三个文件中匹配Vm的行。 - $ grep ‘[a-z]/{5/}’ file1,显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

10.ssh,加密的远程登录工具。

  • cd ~/.ssh,密钥一般放在这里,可以先看看有没有。
  • ssh username@hostname,登录主机,例如:ssh tom@10.0.0.1
  • ssh -p 2222 username@hostname,登录P参数指定的主机的2222端口。
  • ssh-keygen,生成dsa或者rsa的公钥、私钥密钥对,例如 ssh-keygen -t rsa -C “yourname@emailname.com。会得到两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。
  • ssh-add id_rsa,添加私钥到ssh。
  • ssh-copy-id username@hostname,例如,ssh-copy-id -i ~/.ssh/id_rsa.pub tom@10.0.0.1将你的SSH公钥复制到远程主机10.0.0.1去,并追加到.ssh/authorized_keys中,开启无密码登录。
  • ssh username@hostname ‘mkdir -p .ssh && cat >> .ssh/authorized_keys’ < ~/.ssh/id_rsa.pub,登录远程主机,成功后在远程主机的authorized_keys中追加上你本地的SSH公钥。 和ssh-copy-id一个意思。

11.wget,从指定URL地址下载文件。

  • wget -i filelist.txt ,下载filelist.txt中所包含的链接的所有文件
  • wget -r http://www.github.com,下载整个www.github.com网。
  • wget -r -p -np -k http://www.github.com 用wget做站点镜像。
  • wget -c http://www.github.com,断点续传。

12.mount命令用来将设备挂载到用户指定的系统挂载点上;对应的umount,卸载已经加载的设备。

  • mount,列出当前系统中已经挂载的文件系统。
  • mount /dev/sdb1 /media,使用mount命令挂载移动硬盘设备/dev/sdb1到/media。
  • mount -t iso9660 /dev/hdc /media,挂载光驱到/media目录。
  • umount /media,卸载某个挂载点下的文件系统。

13 压缩和解压缩文件。

  • tar -zxvf /tmp/etc.tar.gz,将/tmp/etc.tar.gz文件解压缩在/usr/local/src 下。
  • tar zcvf this.tar.gz ./*.txt,将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz中。
  • .tar用tar –xvf,.tar.gz.tgz用tar –xzf,.tar.bz2用tar –xjf,.tar.Z用tar –xZf。
  • unzip用来解压缩.zip文件。
  • zip用来压缩文件。
  • arj压缩.arj文件。
  • unarj解压缩.arj文件。
  • znew将“.Z”文件转换成“.gz”文件。
  • gzip压缩文件;
  • gunzip,解压缩由gzip压缩的文件。

一些常用的一看就明白的基本命令。

  • logout,用于退出系统,与login命令对应。
  • halt,用来关机。
  • reboot,重启计算机。
  • su,切换用户。
  • sudo,以另一个用户身份执行指令。
  • top,显示和管理系统进程。
  • free,内存使用情况。
  • uname,显示系统信息。
  • ping,测试到达目标主机的网络是否通畅。
  • netstat,显示网络状态。
  • ifconfig,配置网络接口的网络参数。
  • ifdown,关闭指定网络接口。
  • ifup,启动指定网络接口。
  • pwd:显示用户当前的工作目录。
  • passwd,设置密码。
  • date,显示和设置系统日期时间。
  • man,是manual的缩写,相当于Unix/Linux的联机Help,每个系统命令和调用都有非常详细的说明,绝大多数都是英文。如:man ls即是查看ls命令的使用说明,比ls –-help要详细的多。
  • find,查找文件和目录。
  • clear是用来清除当前屏幕显示的。
  • du用来显示目录所占用的磁盘空间,du -hs 指定目录,所占用的磁盘空间。du -hs ./* 查看当前目录下的所有文件夹和文件的大小。
  • df用来显示目前磁盘剩余空间。
  • vi,文本编辑器。
  • diff,比较并显示两个文件的不同。