Linux常用命令以及举例

文章目录

  • 1 帮助命令
    • 1.1 man帮助命令
    • 1.2 --help帮助命令
    • 1.3 info帮助命令
  • 2 查看命令
    • 2.1 ls命令
      • 2.1.1 ls -l 命令
      • 2.1.2 ls -a 命令
    • 2.2 cat/more/less 查看命令
      • 2.2.1 cat
      • 2.2.2 more
      • 2.2.3 less
  • 3 mkdir创建目录命令
    • 3.1 创建单个目录
    • 3.2 创建多层目录
  • 4 cd 切换目录
    • 4.1 改变活动目录
    • 4.2 绝对路径
    • 4.3 主目录
    • 4.4 ..(上层目录)和.(当前目录)
  • 5 rmdir 删除命令
    • 5.1 rmdir用来删除空目录
    • 5.2 rm删除文件
    • 5.3 删除目录
  • 6 touch命令
  • 7 复制命令
    • 7.1 cp复制命令
      • 7.1.1 复制单个文件
      • 7.1.2 复制文件夹
    • 7.2 scp远程复制
      • 7.2.1 本地复制远程
      • 7.2.2 远程复制本地
  • 8 打包/解包
    • 8.1 tar命令
      • 8.1.1 打包
      • 8.1.2 解包
  • 9 文件的权限
    • 9.1 文字设定法
    • 9.2 数字设定法
    • 9.3 chown更改某个文件或目录的所有者
  • 10 查找命令
    • 10.1 find命令
    • 10.2 grep
  • 11 mount/umount 挂载U盘
  • 12 df/du磁盘空间占用命令
    • 12.1 df
    • 12.2 du
  • 13 ps监视后台进程的工作命令
    • 13.1 ps -a
    • 13.2 ps -u
    • 13.3 ps -x
  • 14 ifconfig 查看或设置网络命令
    • 14.1 查看网络设置
    • 14.2 设置网卡参数
  • 15 端口监控
    • 15.1 netstat监控
    • 15.2 lsof
  • 16 环境变量
    • 16.1 查找环境变量
    • 16.2 更改环境变量
    • 16.3 修改终端启动脚本
  • 17 软件安装与卸载
    • 17.1 yum命令
    • 17.2 rpm命令
      • 17.2.1 rpm安装
      • 17.2.3 rpm卸载

1 帮助命令

1.1 man帮助命令

man命令没有内部与外部命令的区分
man查看关键词的man page(manual page)(手册页)查看lsmanpage(manual page)可以输入:man ls就可以查看ls的manpage

$ man ls

1.2 --help帮助命令

help只能用于内部命令,不能用于外部命令
查看关键词的快捷帮助而不是man page(手册页),可以使用--help查看ls的快速帮助,输入ls --help快速帮助信息就会打印到终端上

ls --help

1.3 info帮助命令

另外一个帮助命令,可以显示出更完整的最新的信息。 得到的信息比 man 还要多,info来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。所以得到的信息当然更多

maninfo 就像两个集合,它们有一个交集部分,但与 man 相比,info工具可显示更完整的GNU工具信息。若 man页包含的某个工具的概要信息在info中也有介绍,那么 man 页中会有请参考 info 页更详细内容的字样。

查看lsinfo信息,可以输入:info ls,可以显示lsinfo信息。

info ls

2 查看命令

2.1 ls命令

ls查看指定目录下的内容

2.1.1 ls -l 命令

查看当前目录内容的详细信息

2.1.2 ls -a 命令

查看当前目录中的所有文件(包括隐藏文件)
具体的ll命令可以查看此处ll查询结果的详细分析

2.2 cat/more/less 查看命令

2.2.1 cat

cat filename cat用来查看文本文件中的内容

$ls
main.c Makefile
$cat main.c
the content of main.c

cat后不加任何文件名,则cat进程就会一直运行,不能自行退出,这时按下Ctrl + Z即可结束该进程。

2.2.2 more

more filenamemorecat的作用差不多,只是当文件内容多于一屏时,按下空格可以滚到下一屏继续阅读,但是不可以回退

$ more main.c
content of main.c
...
press space to continue

2.2.3 less

less filename
less的功能比more更强大,当文件内容多于一屏时,按j可以向下滚动,按k可以向上滚动。

$ less main.c
content of main.c 
...
press j to down 
press k to up 

3 mkdir创建目录命令

3.1 创建单个目录

在当前目录下创建一个名为akaedu的目录

$ mkdir akaedu

3.2 创建多层目录

在当前目录下创建目录a, 再在a目录下创建b

$ mkdir -p a/b

4 cd 切换目录

4.1 改变活动目录

假设当前目录下有一个a目录,要切换到a目录下可以输入

$ ls
main.c Makefile akaedu a
$pwd
/home/ymqqqqdx/
$cd a
$pwd
/home/ymqqqqdx/a

4.2 绝对路径

假设要切换到用户主目录下的a目录,可以使用绝对路径

$ pwd
/
$ cd /home/ymqqqqdx/a
$ pwd
/home/ymqqqqdx/a

4.3 主目录

每一个用户都有一个对应的主目录,其绝对路径为/home/usrname
要切换到主目录时,只需输入cd,即可回到用户主目录。另外~代表当前用户的主目录,~/a即代表主目录下的a目录

$pwd
/home/ymqqqqdx/a/b/c/d
$cd
$pwd
/home/ymqqqqdx/
$cd ~/a
/home/ymqqqqdx/a

4.4 …(上层目录)和.(当前目录)

..代表上层目录.代表当前目录,若要运行当前目录下的a.out程序,即可输入./a.out运行程序。

$pwd
/home/ymqqqqdx/a/b/c/d
$cd ..
$pwd
/home/ymqqqqdx/a/b/c
$./a.out
hello world!

5 rmdir 删除命令

5.1 rmdir用来删除空目录

$pwd
/home/ymqqqqdx/
$ls
a main.c Makefile
$rmdir a
$ls
main.c Makefile

5.2 rm删除文件

删除1.c文件,rm 1.c

$ls
main.c Makefile 1.c
$rm 1.c
$ls
main.c Makefile

5.3 删除目录

删除a目录
rm -r a,若目录非空,会提示是否删除,若不需要提示,输入rm -rf a就可以直接删除a目录不需要确认。

$ls
main.c Makefile a
$rm -rf a
$ls
main.c Makefile

6 touch命令

touch命令:创建空文件
创建一个空文件,touch foo.c,这样就在当前目录创建了foo.c文件。
touch的另外一个作用是更新当前文件修改时间,若已经存在foo.c文件,输入touch foo.c后,用ls -l可以看到文件修改时间已更新为当前时间

$ls
main.c Makefile
$touch foo.c
main.c Makefile foo.c
$ls –l
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 0 2011-08-27 01:04 foo.c
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 0 2011-08-27 00:31 main.c
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 0 2011-08-27 00:31 Makefile
$touch main.c
$ls –l
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 0 2011-08-27 01:04 foo.c
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 0 2011-08-27 01:06 main.c
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 0 2011-08-27 00:31 Makefile

7 复制命令

7.1 cp复制命令

7.1.1 复制单个文件

cp filename newfilename,复制filenamenewfilename

$ls
main.c Makefile
$cp main.c new.c
$ls
main.c Makefile new.c
$cp main.c ~/new.c
$ls ~/
new.c ...

7.1.2 复制文件夹

cp -r a/ b/,复制a目录为b目录。

$ls
main.c Makefile a
$cp -r a b
$ls
main.c Makefile a b

7.2 scp远程复制

scpsecure copy 的缩写, scplinux 系统下基于ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scprcp 的加强版。

scp [可选参数] file_source file_target 
参数说明:

-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项

7.2.1 本地复制远程

# 复制文件
scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file 
# 复制文件夹
scp -r local_folder remote_username@remote_ip:remote_folder 

应用实例:

#复制文件
scp /home/space/music/1.mp3  [email protected]:/home/root/test/music 
#复制文件夹
scp -r /home/space/music/ www.test.com:/home/root/test/ 

7.2.2 远程复制本地

远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:

#复制文件
scp [email protected]:/home/root/test/music /home/space/music/1.mp3 
#复制文件夹
scp -r www.test.com:/home/root/test/ /home/space/music/

8 打包/解包

8.1 tar命令

8.1.1 打包

将a目录用gzip打包,tar zcvf a.tar.gz a
将a目录用bzip2打包,tar jcvf a.tar.bz2 a

$ls
	main.c Makefile
$tar -zcvf foo.tar.gz main.c
$ls
main.c Makefile foo.tar.gz
$tar -jcvf foo.tar.bz2 main.c
$ls
main.c Makefile foo.tar.gz foo.tar.bz2

8.1.2 解包

解压gzip包,tar zxvf a.tar.gz
解压bzip2包,tar jxvf a.tar.bz2

$ls
foo.tar.gz foo.tar.bz2
$tar -zxvf foo.tar.gz
$ls
main.c foo.tar.gz
$rm main.c
$tar -jxvf foo.tar.bz2
$ls
main.c foo.tar.gz foo.tar.bz2

9 文件的权限

Linux系统中使用的Ext文件系统中,支持文件的权限,用ls -l查看当前目录的文件权限。

$ls –l
-rwxr-xr-x 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 3681 2011-09-02 17:49 chess.c

由图中我们可以看出这两个文件的权限是不一样的:
最前边的一位,可以看出backup/的前边有一个d,这代表它是一个目录a.outchess.c为一个-,这说是它们是普通文件
后边有三位代表文件所有者的权限,分别为可读可写可执行,这说明a.out为一个可执行文件,chess.c为一个不可执行文件。
随后的三位表示同组用户所拥有的权限,最后的三位表示其它用户所拥有的权限。

9.1 文字设定法

可以使用chmod who +|-|= 文件名来改变权限。
who可以是下述字母中的任一个或者它们的组合:u表示文件或目录的所有者; g表示同组用户;o表示其它用户;
a 表示所有用户mode的常用权限为以下几个:r可读 , w可写, x 可执行

$ls –l
-rwxr-xr-x 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 3681 2011-09-02 17:49 chess.c
$chmod -x a.out
$ls –l
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 3681 2011-09-02 17:49 chess.c

9.2 数字设定法

chmod后边可以加上数字,000即代表不可读不可写不可执行
011则代表不可读,可写,可执行。用二进制进行转换011为3,所以用chmod 333 a.out就可以将a.out的变为–rx-rx-rx权限。

$ls –l
-rwxr-xr-x 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 3681 2011-09-02 17:49 chess.c
$chmod 333 a.out
$ls –l
--wx-wx-wx 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 3681 2011-09-02 17:49 chess.c

9.3 chown更改某个文件或目录的所有者

更改某个文件或目录的所有者,这个命令是很常用的,例如root用户把自己的一个文件拷贝给用户akaedu,为了能让用户akaedu存取这个文件,root用户应该把这个文件的所有者设为akaedu,否则,akaedu无法存取这个文件。
例如把一个文件改为akaedu用户所有

$ls –l
-rwxr-xr-x 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 ymqqqqdx ymqqqqdx 3681 2011-09-02 17:49 chess.c
$chown akaedu chess.c
$ls –l
-rwxr-xr-x 1 ymqqqqdx ymqqqqdx 7438 2011-09-02 15:08 a.out
drwxr-xr-x 2 ymqqqqdx ymqqqqdx 4096 2011-09-03 09:33 backup/
-rw-r--r-- 1 akaedu ymqqqqdx 3681 2011-09-02 17:49 chess.c

10 查找命令

10.1 find命令

find在目录中搜索文件,使用find命令

$find . -name 'chess.\*'
./chess.c

10.2 grep

在指定文件中搜索特定内容,并将含有这些内容的行输出到标准输出。若不指定文件名,则从标准输入读取。

$grep 'printf' ./ -R
./chess.c:30: printf("\n ");
./chess.c:32: printf(" %d", i + 1);
./chess.c:33: printf("\n");
./chess.c:35: printf(" -");
./chess.c:36: printf("\n");
./chess.c:39: printf("%d ", i + 1);
./chess.c:42: printf(" %d", chessboard[i][j]);
./chess.c:44: printf("\n");
./chess.c:115: printf("current: p1: %d, p2: %d.\n", p1, p2);
./chess.c:126: printf("Welcome!\n");
./chess.c:127: printf("Input link this, 3 3\n");
./chess.c:131: printf("Player %d: ", who);
./chess.c:140: printf("Board full!\n");
./chess.c:143: printf("Current step: %d\n", step);
./chess.c:146: printf("out of range or place 
occupied!\n"

11 mount/umount 挂载U盘

新版本的Linux发行版大多支持自动挂载U盘分区,默认的挂载位置为/media/卷名,但是如果发生问题不能自动挂载,所以要介绍U盘的手动挂载。

$ls /dev/sd\*
/dev/sda /dev/sda2 /dev/sda5 /dev/sda7 /dev/sda9 /dev/sda1 /dev/sda3 /dev/sda6 /dev/sda8

插入U盘后

$ls /dev/sd\*
/dev/sda /dev/sda2 /dev/sda5 /dev/sda7 /dev/sda9 /dev/sda1 /dev/sda3 /dev/sda6 /dev/sda8 /dev/sdb /dev/sdb1

我们发现这里多了一个sdb 和一个sdb1,这就是我们的U盘。

$mount /dev/sdb1 /mnt
$cd /mnt
$ls
file1 file2 .. .

这样就将U盘挂载到了/mnt目录下,对/mnt目录的操作就可以读写U盘上的文件

12 df/du磁盘空间占用命令

12.1 df

df用来检查文件系统的磁盘空间占用情况,可以利用该命令来获取硬盘被占用了多少空间,日前还剩下多少空间等信息。

$df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda8 15480816 3693868 11000568 26% /
none 1024060 332 1023728 1% /dev 
none 1028300 1460 1026840 1% /dev/shm 
none 1028300 104 1028196 1% /var/run 
none 1028300 0 1028300 0% /var/lock 
none 1028300 0 1028300 0% /lib/init/rw 
/dev/sda9 15472768 11540932 3145860 79% /home 
/dev/sda1 52428796 15280160 37148636 30% 
/media/7CE619AAE6196624 
/dev/sda2 62915580 2578292 60337288 5% /media/New Volume 
/dev/sda5 101448700 55005980 46442720 55% /media/Entertainment 
/dev/sda6 62918652 519376 62399276 1% /media/New Volume 

12.2 du

du用来统计目录或文件所占用磁盘空间的大小,du意为disk usage
使用du -s可显示当前目录所占用的空间总大小。

$du –s
1697668 .

13 ps监视后台进程的工作命令

$ps
PID TTY TIME CMD
2575 pts/2 00:00:00 bash
4190 pts/2 00:00:00 ps

13.1 ps -a

ps -a显示终端上的所有进程,包括其他用户的进程

$ps –a
PID TTY TIME CMD
1753 pts/0 00:00:00 tig
3640 pts/1 00:00:13 vi
4207 pts/2 00:00:00 ps

13.2 ps -u

ps -u 查看进程所有者及其他一些详细信息

$ps –u
USER PID %CPU %MEM VSZ RSS TTY STAT
START TIME COMMAND
ymqqqqdx 1563 0.0 0.1 6488 3664 pts/0 Ss 00:01 0:00 bash
ymqqqqdx 1753 0.0 0.0 4092 1492 pts/0 S+ 00:03 0:00 tig
ymqqqqdx 1801 0.0 0.1 6492 3668 pts/1 Ss 00:04 0:00 bash
ymqqqqdx 2575 0.0 0.1 6492 3656 pts/2 Ss 00:30 0:00 bash
ymqqqqdx 3640 1.0 0.3 13164 6340 pts/1 S+ 01:19 0:14 vi 1.11.md
ymqqqqdx 4226 0.0 0.0 2716 1072 pts/2 R+ 01:42 0:00 ps -u

13.3 ps -x

ps -x显示没有控制终端的进程

$ps –x
1356 ? Sl 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login 
1374 ? Ssl 0:00 gnome-session 
1405 ? Sl 0:30 /usr/bin/ibus-daemon --xim 
1409 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-s 
1412 ? S 0:00 /usr/bin/dbus-launch --exit-with-session gnome-sessio 
1413 ? Ss 0:01 /bin/dbus-daemon --fork --print-pid 5 --print-address 
1416 ? S 0:00 /usr/lib/libgconf2-4/gconfd-2 
1417 ? S 0:00 /usr/lib/ibus/ibus-gconf 
1419 ? S 0:11 python /usr/share/ibus/ui/gtk/main.py 
1421 ? S 0:00 /usr/lib/ibus/ibus-x11 --kill-daemon 
1423 ? S 0:21 python /usr/share/ibus-table/engine/main.py --ibus 
1435 ? Ss 0:02 /usr/lib/gnome-settings-daemon/gnome-settings-daemon 
1438 ? S 0:00 /usr/lib/gvfs/gvfsd 
1445 ? Sl 0:02 gnome-power-manager 
1446 ? SL 0:00 nm-applet --sm-disable 
1447 ? S 0:00 /usr/lib/policykit-1-gnome/polkit-gnome-authenticatio 
1449 ? S 0:00 bluetooth-applet 
1451 ? S 1:16 /usr/bin/compiz

14 ifconfig 查看或设置网络命令

14.1 查看网络设置

直接输入ifconfig即可查看网络的IP,网关和子网掩码

$ifconfig
eth0 
Link encap:以太网 
硬件地址 00:26:9e:27:21:1e 
inet 地址:192.168.0.4 
广播:192.168.0.255 
掩码:255.255.255.0 
inet6 地址: fe80::226:9eff:fe27:211e/64 
Scope:Link UP BROADCAST RUNNING MULTICAST 
MTU:1500 跃点数:1 接收数据包:5456 错误:0 丢弃:0 过载:0 帧数:0 
发送数据包:1380 错误:0 丢弃:0 过载:0 载波:0 碰撞:0 发送队列长度:1000 
接收字节:1139542 (1.1 MB) 发送字节:244972 (244.9 KB) 
中断:17

14.2 设置网卡参数

ifconfig eth0 192.168.0.1 netmask 255.255.255.0
设置IP地址和子网掩码。

$ifconfig eth0 192.168.0.1 netmask 255.255.255.0

15 端口监控

15.1 netstat监控

netstat是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息.Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
netstat -a可以显示所有的socket
netstat -tunlp | grep “5789” 查看5789端口的的连接。

$netstat -tunlp| grep "5789"
unix 3 [ ] 流 已连接 5789 /var/run/acpid.socket

15.2 lsof

lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

# lsof -i:8000
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
lwfs    22065 root    6u  IPv4 4395053      0t0  TCP *:irdmi (LISTEN)

16 环境变量

16.1 查找环境变量

在我们的当前目录下有一个可执行文件,它的作用是打印出hello world!,我们执行一下:

$ls
hello.c hello
$hello
hello: 找不到命令
$./hello
hello world!

想一下,为什么我们执行ls的时候就可以执行,而要执行hello的时候就必须要加上./呢?
我们先用which命令看一下ls这个文件在哪里存放:

$which ls
/bin/ls

在我们没有告诉系统完整路径时,系统会在一个名为PATH的的环境变量所存的路径下去找这个文件,我们用env打印当前的环境变量看一下:

$env
...
DESKTOPSESSION=gnome
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
QTIMMODULE=xim
PWD=/home/ymqqqqdx 
XMODIFIERS=@im=ibus
...

我们找到PATH项可以看到/bin在这个环境变量中,所以我们输入ls后,系统会到这个目录下去寻找。

16.2 更改环境变量

如果我们要把hello所在的目录也添加到PATH里面,是不是直接输入hello就可以直接运行我们这个程序了呢?
下面我们来试一下:

pwd
/home/ymqqqqdx
export PATH=/home/ymqqqqdxhello
hello world!
ls
ls: 找不到命令

这是怎么了?怎么连ls都找不到了呢?
我们上面把PATH设置为了/home/ymqqqqdx/,而这个目录下没有ls,所以系统就报错了。不要急,我们重新启动一下终端就好了。
正确的做法是这样的:

$export PATH=$PATH:/home/ymqqqqdxhello
hello world!
ls
hello.c hello

16.3 修改终端启动脚本

由上面的例子我们可以看出,我们做的修改在关闭终端后没有保存,怎么才能将我们做的修改保存起来呢?
修改~/.bashrc

$gedit ~/.bashrc

此时我们用gedit打开了这个文件,到这个文件的最下方,添加我们上面输入的export PATH=$PATH:/home/ymqqqqdx,然后保存退出。
这时我们重启一下终端,终端就会按着这个脚本顺序执行,把我们的路径添加到了环境变量之中。

17 软件安装与卸载

17.1 yum命令

yum      install       softwarename        安装
yum      repolist                          列出设定yum源的信息
yum      remove        softwarename        卸载
yum      list          softwarename      查看软件源中是否有此软件
yum      list all                         列出所有软件名称
yum      list installd                    列出已经安装的软件名称
yum      list available               列出可以用yum安装的软件名称
yum      clean all                        清空yum缓存
yum      search         softwarename    根据软件信息搜索软件名字
yum      whatprovides   filename       在yum源中查找包含filename文件的软件包
yum      update                           更新软件
yum      history                          查看系统软件改变历史
yum      reinstall       softwarename     重新安装
yum      info            softwarename     查看软件信息
yum      groups list                      查看软件组信息
yum      groups info     softwaregroup    查看软件组内包含的软件
yum      groups install  softwaregroup    安装组件

17.2 rpm命令

17.2.1 rpm安装

rpm -ivh   # 安装一个包
rpm -Uvh #升级一个包
rpm -e #移走一个包

##安装参数
–force #即使覆盖属于其它包的文件也强迫安装
–nodeps #如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

rpm -q < rpm package name> #查询一个包是否被安装
rpm -qi < rpm package name> #得到被安装的包的信息
rpm -ql < rpm package name>  列出该包中有哪些文件
rpm -qf  #列出服务器上的一个文件属于哪一个RPM包
rpm -qil < rpm package name>  #可综合好几个参数一起用
rpm -qa  #列出所有被安装的rpm package
rpm -qilp < rpm package name>  #列出一个未被安装进系统的RPM包文件中包含有哪些文件

17.2.3 rpm卸载

rpm -qa | grep 包名
这个命令是为了把包名相关的包都列出来
rpm -e 文件名
这个命令就是你想卸载的软件,后面是包名称,最后的版本号是不用打的
例如:

# rpm -qa | grep mysql
mod_auth_mysql-2.6.1-2.2
php-mysql-5.3.9-3.15
mysql-devel-5.1.77-1.CenOS 5.2
mysql-5.0.77-1.CenOS 5.2
mysqlclient10-5.0.77-1.CentOS 5.2
libdbi-dbd-mysql-0.6.5-10.CentOS 5.2
# rpm -e mysqlclient

你可能感兴趣的:(linux)