免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1022 | 回复: 0

[学习分享] Unix/Linux下最常使用的50个命令 [复制链接]

论坛徽章:
0
发表于 2016-05-26 23:01 |显示全部楼层
引用地址如下:
Unix/Linux下最常使用的50个命令
本文为Unix/Linux下最常使用的50个命令提供了实践的示例!
这无论如何也不是一个全面的列表,但这能够帮你对一些通用的Linux命令有一个快速的了解,收藏这边文章,以后可以进一步参考。
1。 tar命令实例
创建一个tar压缩包

$ tar cvf archive_name.tar dirname/

从一个已存在的tar压缩档解压

$ tar xvf archive_name.tar

查看一个已存在的tar压缩档

$ tar tvf archive_name.tar

2. grep命令实例
在一个文件中查找一个给定的字符串(不区分大小写的查找)

$ grep -i "the" demo_file

打印匹配的行数以及其后的3行

$ grep -A 3 -i "example" demo_text

递归文件夹中的所有文件查找指定的字符串

$ grep -r "ramesh" *

3. find命令实例
查找指定文件名的文件(不区分大小写的查找)

# find -iname "MyCProgram.c"

对由find命令找到的文件执行命令

$ find -iname "MyCProgram.c" -exec md5sum {} \;

在用户名录下查找空文件

# find ~ -empty

4. ssh命令实例
登录到远程主机

ssh -l jonathan remotehost.example.com

调试一个ssh客户端

ssh -v -l jonathan remotehost.example.com

显示ssh客户端版本

$ ssh -V
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012

5. sed命令实例
当你将一个文件从DOS拷贝到Unix的时候,你可以在文件的末尾发现\r\n,这个实例演示用sed命令来将一个DOS格式的文件转换成Unix格式的文件

$sed 's/.$//' filename

倒叙打印文件的内容(按行)

$ sed -n '1!G;h;$p' finance.txt

将非空的文件的每一行添加行号并打印出来

$ sed '/./=' finance.txt | sed 'N; s/\n/ /'

6. awk命令实例
使用awk命令来移除重复的行

$ awk '!($0 in array) { array[$0]; print }' temp

打印/etc/passwd文件中具有相同uid和gid的所有行

$awk -F ':' '$3==$4' passwd.txt

仅仅打印某个文件中指定的区域

$ awk '{print $2,$5;}' employee.txt

7. vim命令实例
到某个文件的第143行

$ vim +143 filename.txt

跳转到第一个匹配的指定内容

$ vim +/search-term filename.txt

以只读方式打开文件

$ vim -R /etc/passwd

8. diff命令实例
忽略空白行进行比较

# diff -w name_list.txt name_list_new.txt
2c2,3
< Jonathan Li --- > Michael Zhang T
> Jonathan Li

9. sort命令实例
按照上升/递增的顺序排序一个文件的内容

$ sort names.txt

按照下降/递减的顺序排序一个文件的内容

$ sort -r names.txt

把passwd文件按照第三个字段排序

$ sort -t: -k 3n /etc/passwd | more

10. export命令实例
看oracle相关的环境变量:

$ export | grep ORACLE
declare -x ORACLE_BASE="/u01/app/oracle"
declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0"
declare -x ORACLE_SID="med"
declare -x ORACLE_TERM="xterm"

export一个环境变量

$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0

11. xargs命令实例
将所有的镜像文件拷贝到外部硬盘

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

在系统中查找jpg图片并打包

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

将url-list.txt文件中提到的URLs内容都下载下来

# cat url-list.txt | xargs wget –c

12. ls命令实例
以人可读的方式显示文件的大小

$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz

使用ls -ltr按照文件最后修改的时间来排序文件.

$ ls -ltr

使用ls -F命令来将具有特殊字符的文件的可视化分类

$ ls -F

13. pwd command命令实例
pwd is打印当前的工作路径
14. cd命令实例
使用"cd -" 来 to 在最后两个路径间切换
使用"shopt -s cdspell"来自动更正使用cd命令时不匹配的路径名称
15. gzip命令实例
创建一个 *.gz的压缩文件:

$ gzip test.txt

To uncompress a *.gz file:

$ gzip -d test.txt.gz

用gzip -l来显示一个压缩文件的压缩率

$ gzip -l *.gz
         compressed        uncompressed  ratio uncompressed_name
              23709               97975  75.8% asp-patch-rpms.txt

16. bzip2命令实例
创建一个*.bz2的压缩文件

$ bzip2 test.txt

解压缩一个*.bz2文件

bzip2 -d test.txt.bz2

17. unzip命令实例
解压缩一个*.zip文件

$ unzip test.zip

查看一个*.zip文件中的内容(不解压缩文件本身)

$ unzip -l jasper.zip
Archive:  jasper.zip
  Length     Date   Time    Name
--------    ----   ----    ----
    40995  11-30-98 23:50   META-INF/MANIFEST.MF
    32169  08-25-98 21:07   classes_
    15964  08-25-98 21:07   classes_names
    10542  08-25-98 21:07   classes_ncomp

18. shutdown命令实例
关闭系统并立即断电

# shutdown -h now

10分钟后关闭系统

# shutdown -h +10

使用shutdown命令来重启系统

# shutdown -r now

在重启过程中强制文件系统检查

# shutdown -Fr now

19. ftp命令实例
ftp和安全ftp(sftp)具有相似的命令格式,连接一个远程服务器并下载多个文件,可以使用如下命令:

$ ftp IP/hostname
ftp> mget *.html

To view the file names located on the remote server before downloading, mls ftp command as shown below. 在下载之前先查看位于远程服务器上的文件名称,可以使用ftp命令的mls

ftp> mls *.html -
/ftptest/features.html
/ftptest/index.html
/ftptest/othertools.html
/ftptest/samplereport.html
/ftptest/usage.html

20. crontab命令实例
查看某个用户的crontab入口

# crontab -u john -l

每10分钟调度一个cron工作

*/10 * * * * /home/ramesh/check-disk-space

21. service命令实例
Service命令是用来运行一个系统V初始脚本,你可以用这个service命令而不需要用全路径来调用位于/etc/init.d目录下的脚本。
检查某个服务的状态

# service ssh status

检查所有服务的状态

service --status-all

重新启动一个服务

# service ssh restart

22. ps命令实例
ps目录是用来显示系统中运行的进程的状态的,ps命令有很多参数可用,下面是一些基本的例子
查单当前运行的进程

$ ps -ef | more

按照树状结构来显示当前运行的进程,H选项表示进程层次

$ ps -efH | more

23. free命令实例
这个命令是用来显示系统中存在的空闲,使用,交换内存的情况。 典型的free命令输出是按照字节来显示的。

$ free
             total     used     free   shared  buffers   cached
Mem:       3566408  1580220  1986188        0   203988   902960
-/+ buffers/cache:   473272  3093136
Swap:      4000176        0  4000176

如果是想快速检查你系统具有多少GB的内存的话,可以使用-g选项。-b选项会按照字节显示,-b会按照K字节显示,-m会按照M字节显示

$ free -g
             total    used     free   shared  buffers  cached
Mem:             3       1        1        0        0       0
-/+ buffers/cache:       0        2
Swap:            3       0        3

如果你想看所有的内存(包括交换内存),使用-t开关,这就会显示在一整行上

jonathan@ramesh-laptop:~$ free -t
             total    used       free   shared    buffers     cached
Mem:       3566408  1592148    1974260       0     204260     912556
-/+ buffers/cache:   475332    3091076
Swap:      4000176        0    4000176
Total:     7566584  1592148    5974436

24. top命令实例
top命令用来显示系统中的top进程(默认是按照CPU的利用率),将top输出按照某一列进行排序,按O(大写的o),将会所有可以排序的可能的列。

Current Sort Field:  P  for window 1ef
Select sort field via field letter, type any other key to return

  a: PID    = Process Id          v: nDRT     = Dirty Pages count
  d: UID    = User Id             y: WCHAN    = Sleeping in Function
  e: USER   = User Name           z: Flags    = Task Flags
  ........

可以用-u选项显示属于某一个用户的进程。

$ top -u oracle

25. df命令实例
df命令用来显示系统磁盘空间的使用情况,默认情况下df -k显示输出会按照字节方式打印

$ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             29530400   3233104  24797232  12% /
/dev/sda2            120367992  50171596  64082060  44% /home

df -h会以人可读的方式来打印

jonathan@ramesh-laptop:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  3.1G   24G  12% /
/dev/sda2             115G   48G   62G  44% /home

使用-T选项来显示文件系统的类型

jonathan@ramesh-laptop:~$ df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext4    29530400   3233120  24797216  12% /
/dev/sda2     ext4   120367992  50171596  64082060  44% /home

26. kill命令实例
kill命令用来中断一个进程,首先用ps -ef命令来获取进程号,然后用kill -9来杀死该进程,你也可以使用killall,pkill,xkill来杀死一个unix进程。

$ ps -ef | grep vim
ramesh    7243  7222  9 22:43 pts/2    00:00:00 vim
$ kill -9 7243

27. rm命令实例
rm命令用来删除某个文件或目录,在删除之前需要确认的话,加-i选项

$ rm -i filename.txt

在文件名里面有特殊字符的时候非常管用。 打印文件名,并在删除文件千确认

$ rm -i file*

下面的命令递归example路径下的文件和目录,也删除example路径自身。

$ rm -r example

28. cp命令实例
将一个文件拷贝到另一个文件,保留原来的模式,所有权和时间戳

$ cp -p file1 file2

将文件从file1拷贝到file2,如果file2存在的话,会有提示要求确认是否覆盖

$ cp -i file1 file2

29. mv命令实例
将文件从file1重命名为file2,如果file2存在的话,会有提示要求确认是否覆盖

$ mv -i file1 file2

注意:mv -f恰恰相反,在覆盖file2之前不会有任何提示
mv -v 将会打印在重命名过程中发生的细节,在文件名参数指定shell特殊字符时非常有用。

$ mv -v file1 file2

30. cat命令实例
你可以在某个时间里同时查看多个文件,下面的命令将file1的文件内容打印出来后接着打印file2的内容

$ cat file1 file2

当显示某个文件时,下面的cat -n命令将会在每一行内容前面加上行号

$ cat -n /etc/logrotate.conf
    1        /var/log/btmp {
    2            missingok
    3            monthly
    4            create 0660 root utmp
    5            rotate 1
    6        }

31. mount命令实例
加载一个文件系统,你需要首先创建一个目录并将其挂载到目录上

# mkdir /u01

# mount /dev/sdb1 /u01

你也可以将这个命令放到fstabe文件里来自动挂载该文件系统,比如任何时候,只要系统重启,这个文件系统将会被挂载。

/dev/sdb1 /u01 ext2 defaults 0 2

32. chmod命令实例
chmod命令是用来更改一个文件或目录的许可权的,将一个指定文件的所有访问权限(读,写和执行)给一个用户和组。

$ chmod ug+rwx file.txt

从一个文件将某个用户组的所有权限(读,写和执行)去除.

$ chmod g-rwx file.txt

将一个子目录中的所有文件按递归方式赋予所有的权限。

$ chmod -R ug+rwx file.txt

33. chown命令实例
chown命令是用来更改一个文件的拥有者和组。 将一个文件的拥有者更改成oracle,将组更改成db,比如同时更改文件的拥有者和组。

$ chown oracle:dba dbora.sh

使用-R参数来递归更改拥有权

$ chown -R oracle:dba /home/oracle

34. passwd命令实例
从命令行使用passwd命令来更改你的密码,这将会提示输入旧密码,随后输入新密码。

$ passwd

超级用户可以使用passwd命令来复位其他用户的命令,这将不会提示输入该用户的当前密码。

# passwd USERNAME

删除某个用户的密码,超级用户可以关闭某个用户的命令。一旦密码关闭,这个用户登录的时候就不需要输入密码。

# passwd -d USERNAME

35. mkdir命令实例
下面的例子在你的用户目录下创建了一个叫temp的目录

$ mkdir ~/temp

用一个mkdir命令创建一个嵌套的目录,如果其中的任何目录已经存在,将不会显示任何错误信息,如果其中任何目录不存在,就会创建目录

$ mkdir -p dir1/dir2/dir3/dir4/

36. ifconfig命令实例
使用ifconfig命令来查看或配置Linux系统里的网络接口
查看所有接口的状态

$ ifconfig -a

如下命令,使用up和down命令来启动或关闭某个指定的接口。

$ ifconfig eth0 up
$ ifconfig eth0 down

37. uname命令实例
uname命令用来显示系统的重要信息,比如内核名称,主机名,内核发布号,处理器类型等 在一个Ubuntu笔记本上使用uname命令输出的示例如下所示:

$ uname -a
Linux john-laptop 2.6.32-24-generic #41-Ubuntu\
SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux

38. whereis命令实例
当你想找出一个具体Unix/Linux命令存放在哪儿时候,可以使用whereis命令

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

当你想从某个别的路径(而不是默认路径)来查找某个可执行程序时候,你可以使用-B选项来将某个路径作为参数传入。

$ whereis -u -B /tmp -f lsmk
lsmk: /tmp/lsmk

39. whatis命令实例
Whatis命令显示一个命令的单个行的描述

$ whatis ls
ls                (1)  - list directory contents

$ whatis ifconfig
ifconfig (         - configure a network interface

40. locate命令实例
使用locate命令你能够迅速地找到一个指定文件(或者一组文件)的位置,locate命令使用由updatedb创建的数据库。 下面的命令是显示系统里面所有包含了crontab单词的文件。

$ locate crontab
/etc/anacrontab
/etc/crontab
/usr/bin/crontab
/usr/share/doc/cron/examples/crontab2english.pl.gz
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/anacrontab.5.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim72/syntax/crontab.vim

41. man命令实例
显示一个指定命令的man内容

$ man crontab

当一个命令的man页面位于多个段的时候,你可以用如下命令显示指定段的内容。

$ man SECTION-NUMBER commandname

下面是man页面中可用的8个段

    General commands
    System calls
    C library functions
    Special files (usually devices, those found in /dev) and drivers
    File formats and conventions
    Games and screensavers
    Miscellaneous
    System administration commands and daemons

比如,当你查看什么是crontab的时候,你会发现crontab具有两个man页面(段1和段5),为了显示段5,你可以使用如下命令:

$ whatis crontab
crontab (1) - maintain crontab files for individual users (V3)
crontab (5) - tables for driving cron
$ man 5 crontab

42. tail命令实例
默认打印一个文件的最后10行

$ tail filename.txt

从指定文件名的文件打印N行

$ tail -n N filename.txt

实时查看一个文件的内容,这个命令在查看增长的log文件时非常有用,可以用CTRL-C来结束这个命令。

$ tail -f log-file

43. less命令实例
在查看一个巨大的log文件的时候less是一个非常高效的命令,当打开文件的时候,它不需要加载整个文件。

$ less huge-log-file.log

一旦你用less命令打开了文件,下面两个快捷键是非常有帮助的。

CTRL+F – forward one window
CTRL+B – backward one window

44. su命令实例
使用su命令来切换到一个不同的用户账户。超级管理员能够切换到任何别的用户而不需要输入他们的密码。

$ su - USERNAME

从一个不同的账户名称执行一个单独的命令,在下面的例子中,jonathan能够作为用户名michael来执行ls命令。一旦命令执行完毕,就会切回到jonathan的账户。

[jonathan@dev-server]$ su - Michael -c 'ls'
[jonathan@dev-server]$

登录到一个指定的用户账户,运行指定的shell而不是默认的shell Login to a specified user account, and execute the specified shell instead of the default shell.

$ su -s 'SHELLNAME' USERNAME

45. mysql命令实例
mysql可能是在Linux系统里面最广泛使用的开源数据库。即使你并没有在你的服务器上运行mysql数据库,你可能也会使用mysql命令(客户端)来连接一个运行在远程服务器上的数据库。
连接一个远程mysql数据库。这会提示让你输入密码

$ mysql -u root -p -h 192.168.1.2

连接一个本地的mysql数据库

$ mysql -u root -p

46. yum命令实例
使用yum命令来安装apache

$ yum install httpd

使用yum命令来升级apache

$ yum update httpd

使用yum命令来卸载/移除apache

$ yum remove httpd

47. rpm命令实例
使用rpm命令来安装apache

# rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm

使用rpm命令来升级apache

# rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm

使用rpm命令来卸载/移除apache

# rpm -ev httpd

48. ping命令实例
只发送5包数据来ping一个远程主机

$ ping -c 5 gmail.com

49. date命令实例
设置系统日期和时间

# date -s "01/31/2010 23:59:53"

一旦你更改了系统日期和时间,你需要用如下命令将系统的时间和日期同步到硬件时钟里。

# hwclock –systohc

# hwclock --systohc –utc

50. wget命令实例
最快速和有效的从网络下载软件,音乐,视频的方法是使用wget命令

$ wget https://sourceforge.net/projects/goage/files/g0agent-3.2.3.zip

下载并将文件存成不同的文件名

$ wget -O ga.zip https://sourceforge.net/projects/g0agent.zip


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP