- 论坛徽章:
- 0
|
引用地址如下:
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 1 ef
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
|
|