linux如何查看所有的用户和组信息?

  1. cat /etc/passwd
  2. cat /etc/passwd查看所有的用户信息,详情如下图

  3. 【步骤二】cat /etc/passwd|grep 用户名

    cat /etc/passwd|grep 用户名,用于查找某个用户,如下图

  4. 【步骤三】cat /etc/group

    cat /etc/group查看所有组信息,如下图

  5. 4

    【步骤四】cat /etc/group|grep 组名

    cat /etc/group|grep 组名,用于查找某个用户组,如下图

  6. 5

    【步骤五】用户和组常用命令

    groups 查看当前登录用户的组内成员

    groups test 查看test用户所在的组,以及组内成员

    whoami 查看当前登录用户名

原创 linux 添加ftp 用户 设置密码 分配猪目录权限

1、环境:ftp为vsftp。被限制用户名为goonls。被限制路径为/home/wwwroot/www.goonls.com
2、建用户:在root用户下:
useradd -d /home/wwwroot/www.goonls.com goonls
//增加用户test,并制定test用户的主目录为/home/wwwroot/www.goonls.com
3、设置密码 或随机生成密码(选择其中一种方式就可以)
passwd goonls   //为goonls 设置密码
mkpasswd         //为goonls 随机生成密码
http://goonls.com/?p=761

Linux系统用户和组管理 添加 修改 删除

该教程为一系列教程,其包含文字和视频,点这里回到索引页。如有问题,请加Linux学习群148412746 寻求帮助,请标注来自于腾讯云。

认识/etc/passwd和/etc/shadow

这两个文件可以说是Linux系统中最重要的文件之一。如果没有这两个文件或者这两个文件出问题,则无法正常登录系统。先来看看/etc/passwd文件吧。

# cat /etc/passwd | head
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

你是不是对上面的命令有点不知所以呢?head前面的 “|” 我们叫做管道符,它的作用是把前面的命令的输出再输入给后面的命令。管道符在后续章节还会介绍,它用的也是蛮多的,请掌握它的用法。

/etc/passwd解说

/etc/passwd由“:”分割成7个字段,每个字段的具体含义是:
(1) 用户名(如第一行中的root就是用户名),代表用户账号的字符串。用户名字符可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位为点时,另外减号也不建议使用,因为容易造成混淆。
(2) 第二个字段存放的是该账号的口令。这里为什么是“x”呢?早期的Unix系统口令确实是存放在这里,但基于安全因素,后来就将其存放到“/etc/shadow”中了,在这里只用一个“x”代替。
(3) 这个数字代表用户标识号,也叫做uid。系统识别用户身份就是通过这个数字来的,0就是root,也就是说我们可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。uid的取值范围是0~65535(但实际上已经可以支持到4294967294),0是超级用户(root)的标识号,1~499由系统保留,作为管理账号,普通用户的标识号从500开始,如果我们自定义建立一个普通用户,您会看到该账户的标识号是大于或等于500的。
(4) 表示组标识号,也叫做gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上类似。
(5) 注释说明,该字段没有实际意义。通常记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你使用finger的功能时就会显示这些信息的(稍后做介绍)。
(6) 用户的家目录,当用户登录时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,用户家目录是可以自定义的。比如,建立一个普通用户test1,要想让test1的家目录在/data目录下,只要修改/etc/passwd文件中对应该用户那行中的本字段为/data即可。
(7) 用户的shell。用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有很多种sh、csh、ksh、tcsh、bash等。而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录。如果想建立一个账号不让他登录,那么就可以把该字段改成/sbin/nologin,默认是/bin/bash。

/etc/shadow解说

/etc/shadow和/etc/passwd类似,用“:”分割成9个字段。
# cat /etc/shadow |head -n 3
root:$6$Wo0kPkgm$OAp0Wl2AsaE4ei4YVbxo3DIU5OBSYxn1y7qxB5Jns70Yk91AvzElsR5GmoGCC8DUXkKzK7vyiV8wXNeaWNm861:15832:0:99999:7:::
bin:*:15628:0:99999:7:::
daemon:*:15628:0:99999:7:::

每个字段的含义是:
(1) 用户名。跟/etc/passwd对应。
(2) 用户密码,这个才是该账号的真正的密码,不过这个密码已经加密过了,但是有些黑客还是能够解密的。所以,该文件属性设置为000,但是root账户是可以访问或更改的。

# ls -l /etc/shadow
———- 1 root root 719 5月  10 09:02 /etc/shadow

(3) 上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是365 x (2012-1970) + (2012-1970)/4 + 1 = 15341。因为如果是闰年,则有366天。
(4) 要过多少天才可以更改密码,默认是0,即不限制。
(5) 密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。
(6) 密码到期前的警告期限。若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
(7) 账号失效期限。你可以这样理解,如果设置这个值为3。则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个账号就失效了,即锁定了。
(8) 账号的生命周期。跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。
(9) 作为保留用的,没有什么意义。

新增一个组——命令 : groupadd

语法 : groupadd [-g GID] groupname
# groupadd grptest1
# tail -n1 /etc/group
grptest1:x:502:

不加 “-g” 选项则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的。

# groupadd -g 511 grptest2
# tail -n2 /etc/group
grptest1:x:502:
grptest2:x:511:

“-g” 选项可以自定义gid。

删除组—— 命令 : groupdel

# groupdel grptest2
# tail -n3 /etc/group
testgroup:x:500:
user1:x:501:
grptest1:x:502:

该命令没有特殊选项,但有一种情况不能删除组:

# groupdel user1
groupdel: cannot remove the primary group of user ‘user1’

这是因为user1组中包含user1账户,只有删除user1账户后才可以删除该组。

增加用户 —— 命令 : useradd

语法 : useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]

-u: 自定义UID
-g:使其属于已经存在的某个组,后面可以跟组id, 也可以跟组名
-d: 自定义用户的家目录
-M: 不建立家目录
-s: 自定义shell

# useradd test10
# tail -n1 /etc/passwd
test10:x:500:503::/home/test10:/bin/bash
# tail -n1 /etc/group
test10:x:503:

useradd不加任何选项直接跟用户名,则会创建一个跟用户名同样名字的组。

# useradd -u510 -g 513 -M -s /sbin/nologin user11
useradd: group ‘513’ does not exist
# useradd -u510 -g 502 -M -s /sbin/nologin user11
# useradd -u511 -g grptest1 user12
# tail -n2 /etc/passwd
user11:x:510:502::/home/user11:/sbin/nologin
user12:x:511:502::/home/user12:/bin/bash
# tail -n2 /etc/group
grptest1:x:502:
test10:x:503:

-g 选项后面跟一个不存在的gid会报错,提示该组不存在。刚刚上面说过-M选项加上后则不建立用户家目录,但是在/etc/passwd文件中仍然有这个字段。但是您使用 ls /home/user11 查看一下会提示该目录不存在。所以-M选项的作用只是不创建那个目录。

# ls /home/user11
ls: 无法访问/home/user11: 没有那个文件或目录

删除账户 —— 命令 : userdel

语法 : userdel [-r] username

# ls -ld /home/user12
drwx—— 3 user12 grptest1 4096 5月  11 07:12 /home/user12
# userdel user12
# ls -ld /home/user12
drwx—— 3 511 grptest1 4096 5月  11 07:12 /home/user12
# ls -ld /home/test10/
drwx—— 3 test10 test10 4096 5月  11 07:09 /home/test10/
# userdel  -r test10
# ls -ld /home/test10/
ls: 无法访问/home/test10/: 没有那个文件或目录

-r选项的作用只有一个,就是删除账户的时候连带账户的家目录一起删除。

命令:passwd

语法 : passwd [username]

等创建完账户后,默认是没有设置密码的。虽然没有密码,但该账户同样登录不了系统。只有设置好密码后才可登录系统。在为用户创建密码时,安全起见,请尽量设置复杂一些。阿铭建议你按照这样的规则来设置密码:
(1) 长度大于10个字符;
(2) 密码中包含大小写字母数字以及特殊字符*、&、%等;
(3) 不规则性(不要出现happy、love、linux、7758520、111111等等单词或者数字);
(4) 不要带有自己名字、公司名字、自己电话、自己生日等。

# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

passwd后面不加username则是修改当前账户的密码。如果你登录的是root账户,后面可以跟普通账户的名字,意思是修改指定账户的密码。

# passwd user11
更改用户 user11 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

只有root才可以修该其他账户的密码,普通账户只能修改自己的密码,其他账户的密码是不可以修改的。

命令: mkpasswd

这个命令用来生成密码,省的自己去想。默认我们安装的Linux是没有这个命令的,需要安装一个包 “expect”。

# yum install -y expect
# mkpasswd
HXut8oy*8

有时,我们需要生成指定长度的密码。mkpasswd命令也可以满足,比如生成12位长的密码:

# mkpasswd -l 12
j2zo9PlnM{tq

还可以指定密码中有几个特殊字符,和几个数字。
# mkpasswd -l 12 -s 0 -d 3
eu8e2fJ7sjtE

-s指定特殊字符的个数,-d 指定数字的个数。这个随机字符串作为密码再好不过了,只不过它不容易记忆。

用户身份切换

Linux系统中,有时候普通用户有些事情是不能做的,除非是root用户才能做到。这时就需要临时切换到root身份来做事了。下面阿铭带你做一个小实验,创建 “test” 账户,并修改其密码,这样我们就可以使用test账户登录Linux了。

# useradd test
# passwd test
更改用户 test 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

然后用test账户登录Linux.

login as: test
test@10.72.137.78‘s password:
$ whoami
test

登录后,使用 “whoami” 命令查看当前用户是test。普通用户和root用户的shell提示符号有些区别。root账户是#,普通用户是$。

命令su

语法 : su [-] username
后面可以跟“-”,也可以不跟。普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户。 “-”这个字符的作用是,加上后会初始化当前用户的各种环境变量,关于环境变量这部分内容阿铭放在后面的章节中讲解。 下面阿铭做个简单的实验来说明加与不加“-”的区别:

$ pwd
/home/test
$ su
密码:
# pwd
/home/test
# exit
exit
$ su –
密码:
# pwd
root

如果不加“-”切换到root账户下时,当前目录没有变化。而加上“-”切换到root账户后,当前目录为root账户的家目录。这跟直接登录root账户是一样的。当用root切换普通用户时,是不需要输入密码的。

命令 : sudo

用su可以切换用户身份,而且每个普通用户都能切换到root身份。如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,Linux系统工程师设计了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码。这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的。我们可以使用 visudo 命令去编辑相关的配置文件/etc/sudoers。如果没有visudo这个命令,请使用命令 yum install -y sudo 安装。

默认root能够sudo,是因为这个文件中有一行 “root ALL=(ALL) ALL”。 在该行下面加入 “test ALL=(ALL) ALL” 就可以让test用户拥有了sudo的权利。使用 “visudo” 命令编辑/etc/sudoers配置文件,其实它的操作方法和前面阿铭介绍的 “vi” 命令使用方法是一样的,按i进入编辑模式,编辑完成后,按 “Esc” ,再输入:wq 完成保存。

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
test    ALL=(ALL)       ALL

此时可以验证一下test账户的权限了。

# su test
$ ls
ls: 无法打开目录.: 权限不够
$ sudo ls
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.

#2) Think before you type.

#3) With great power comes great responsibility.

[sudo] password for test:
123  456  789  anaconda-ks.cfg  dirb  install.log  install.log.syslog  test  test1  test2  test3

由于切换到test账户后的当前目录依旧是在/root 下,test账户没有任何权限,所以 ls的时候提示说权限不够。然而使用 sudo ls 输入test账户自身的密码后就有权限了。初次使用sudo 时会有上面的一大段提示,而后再次使用sudo 命令则不再提示。

如果每增加一用户就设置一行,这样太麻烦了。所以我们可以这样设置。把 “# %wheel ALL=(ALL) ALL” 前面的#去掉,让这一行生效。它的意思是,wheel这个组的所有用户都拥有了sudo的权利。接下来需要把想让有sudo权利的所有用户加入到wheel这个组中即可。

## Allows people in group wheel to run all commands

%wheel  ALL=(ALL)       ALL

配置文件/etc/sudoers包含了诸多配置项,可以使用命令 man sudoers 来获得帮助信息。下面阿铭介绍一个很实用的案例,我们的需求是把Linux服务器设置成这个样子:只允许使用普通账户登录,而普通账户登录后,可以不输入密码就能sudo切换到root账户。下面是阿铭的配置:

# visudo
然后在文件的最后面加入三行:
User_Alias USER_SU = test, test1, aming
Cmnd_Alias SU = /bin/su
USER_SU ALL=(ALL) NOPASSWD: SU

保存配置文件后,使用test、test1、aming 三个账户登录Linux。执行命令“sudo su –” 切换到root账户,获取root账户的所有权利。

# su – test
$ sudo su –
# whoami
root

不让root直接登录,这个问题如何做呢?其实很简单,设置一个非常复杂连自己都记不住的密码。不过这样也有一个问题,就是普通用户可以su到root,然后他再自己修改简单的密码就能直接root登录了不是嘛?的确有这个问题,其实阿铭还有一个更好的办法。

不允许root远程登录Linx

注意,阿铭提供的这个方法只适用于通过ssh远程登陆Linux的时候。修改配置文件/etc/sshd/sshd_config,  在文件中查找“#PermitRootLogin  yes”这句话, 修改为 “PermitRootLogin no”。它表示不允许root用户远程登录。

/etc/sshd/sshd_config 为sshd服务的配置文件,默认允许root账户通过ssh远程登录Linux。要想不让root登录,修改为no 就可以了。保存配置文件后,需要重启sshd 服务:

# service sshd restart
停止 sshd:                                                [确定]
正在启动 sshd:                                         [确定]

这样,我们再测试,发现已经不能用root登录了。

Linux中的15个基本‘ls’命令示例

ls命令是Linux系统中最被频繁使用的命令之一,我相信ls命令一定是你进入一台Linux系统的电脑打开命令提示符后第一个使用的命令。我们每天都在频繁地使用ls命令,即使我们可能没有意识也从来用不到所有可用的选项。本文中,我们将讨论下一些基本的ls命令并且覆盖尽可能多的有关参数来讲解。

Linux的ls命令

Linux的ls命令

1. 不带任何选项列出文件

不带选项的ls命令来光秃秃地列出文件和目录,我们是不能看到像文件类型、大小、修改日期和时间、权限以及链接这样具体的信息的。

  1. # ls
  2. 0001.pcap Desktop Downloads index.html install.log.syslog Pictures Templates
  3. anaconda-ks.cfg Documents fbcmd_update.php install.log Music Public Videos

2 带 –l 选项列出文件列表

你看,ls -l(-l是字母不是“1”)就能展示出是文件还是目录,它的大小、修改日期和时间、文件或目录的名字以及文件的属主和它的权限。

  1. # ls -l
  2. total 176
  3. -rw-r--r--. 1 root root 683 Aug 19 09:59 0001.pcap
  4. -rw-------. 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg
  5. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Desktop
  6. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Documents
  7. drwxr-xr-x. 4 root root 4096 Aug 16 02:55 Downloads
  8. -rw-r--r--. 1 root root 21262 Aug 12 12:42 fbcmd_update.php
  9. -rw-r--r--. 1 root root 46701 Jul 31 09:58 index.html
  10. -rw-r--r--. 1 root root 48867 Jul 31 02:17 install.log
  11. -rw-r--r--. 1 root root 11439 Jul 31 02:13 install.log.syslog
  12. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Music
  13. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Pictures
  14. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Public
  15. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Templates
  16. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Videos

3. 浏览隐藏文件

列出所有文件包括以‘.’开头的隐藏文件。

  1. # ls -a
  2. . .bashrc Documents .gconfd install.log .nautilus .pulse-cookie
  3. .. .cache Downloads .gnome2 install.log.syslog .netstat.swp .recently-used.xbel
  4. 0001.pcap .config .elinks .gnome2_private .kde .opera .spice-vdagent
  5. anaconda-ks.cfg .cshrc .esd_auth .gtk-bookmarks .libreoffice Pictures .tcshrc
  6. .bash_history .dbus .fbcmd .gvfs .local .pki Templates
  7. .bash_logout Desktop fbcmd_update.php .ICEauthority .mozilla Public Videos
  8. .bash_profile .digrc .gconf index.html Music .pulse .wireshark

4. 用 -lh 选项来以易读方式列出文件

用-lh组合选项,以易读方式来显示大小。

  1. # ls -lh
  2. total 176K
  3. -rw-r--r--. 1 root root 683 Aug 19 09:59 0001.pcap
  4. -rw-------. 1 root root 1.6K Jul 31 02:17 anaconda-ks.cfg
  5. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Desktop
  6. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Documents
  7. drwxr-xr-x. 4 root root 4.0K Aug 16 02:55 Downloads
  8. -rw-r--r--. 1 root root 21K Aug 12 12:42 fbcmd_update.php
  9. -rw-r--r--. 1 root root 46K Jul 31 09:58 index.html
  10. -rw-r--r--. 1 root root 48K Jul 31 02:17 install.log
  11. -rw-r--r--. 1 root root 12K Jul 31 02:13 install.log.syslog
  12. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Music
  13. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Pictures
  14. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Public
  15. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Templates
  16. drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Videos

5. 以尾部以‘/’字符结尾的方式列出文件和目录

使用 ls 命令的 -F 选项,会在每个目录的末尾添加“/”字符显示。

  1. # ls -F
  2. 0001.pcap Desktop/ Downloads/ index.html install.log.syslog Pictures/ Templates/
  3. anaconda-ks.cfg Documents/ fbcmd_update.php install.log Music/ Public/ Videos/

6. 倒序列出文件

ls -r 选项能以倒序方式显示文件和目录。

  1. # ls -r
  2. Videos Public Music install.log fbcmd_update.php Documents anaconda-ks.cfg
  3. Templates Pictures install.log.syslog index.html Downloads Desktop 0001.pcap

7. 递归列出子目录

ls -R 选项能列出非常长的目录树,来看看示例输出:

  1. # ls -R
  2. total 1384
  3. -rw-------. 1 root root 33408 Aug 8 17:25 anaconda.log
  4. -rw-------. 1 root root 30508 Aug 8 17:25 anaconda.program.log
  5. ./httpd:
  6. total 132
  7. -rw-r--r-- 1 root root 0 Aug 19 03:14 access_log
  8. -rw-r--r--. 1 root root 61916 Aug 10 17:55 access_log-20120812
  9. ./lighttpd:
  10. total 68
  11. -rw-r--r-- 1 lighttpd lighttpd 7858 Aug 21 15:26 access.log
  12. -rw-r--r--. 1 lighttpd lighttpd 37531 Aug 17 18:21 access.log-20120819
  13. ./nginx:
  14. total 12
  15. -rw-r--r--. 1 root root 0 Aug 12 03:17 access.log
  16. -rw-r--r--. 1 root root 390 Aug 12 03:17 access.log-20120812.gz

8. 以修改时间倒序列出

带-ltr组合选项能以文件或目录的最新修改时间的次序来显示它们。

  1. # ls -ltr
  2. total 176
  3. -rw-r--r--. 1 root root 11439 Jul 31 02:13 install.log.syslog
  4. -rw-r--r--. 1 root root 48867 Jul 31 02:17 install.log
  5. -rw-------. 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg
  6. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Desktop
  7. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Videos
  8. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Templates
  9. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Public
  10. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Pictures
  11. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Music
  12. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Documents
  13. -rw-r--r--. 1 root root 46701 Jul 31 09:58 index.html
  14. -rw-r--r--. 1 root root 21262 Aug 12 12:42 fbcmd_update.php
  15. drwxr-xr-x. 4 root root 4096 Aug 16 02:55 Downloads
  16. -rw-r--r--. 1 root root 683 Aug 19 09:59 0001.pcap

9. 按文件大小排序

带-lS组合选项能按文件从大到小的次序显示。

  1. # ls -lS
  2. total 176
  3. -rw-r--r--. 1 root root 48867 Jul 31 02:17 install.log
  4. -rw-r--r--. 1 root root 46701 Jul 31 09:58 index.html
  5. -rw-r--r--. 1 root root 21262 Aug 12 12:42 fbcmd_update.php
  6. -rw-r--r--. 1 root root 11439 Jul 31 02:13 install.log.syslog
  7. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Desktop
  8. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Documents
  9. drwxr-xr-x. 4 root root 4096 Aug 16 02:55 Downloads
  10. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Music
  11. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Pictures
  12. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Public
  13. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Templates
  14. drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Videos
  15. -rw-------. 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg
  16. -rw-r--r--. 1 root root 683 Aug 19 09:59 0001.pcap

10. 显示文件或目录的索引节点号

我们有时候可以看到一些数字打印在文件或目录名之前,带-i选项就能列出文件或目录的索引节点号。

  1. # ls -i
  2. 20112 0001.pcap 23610 Documents 23793 index.html 23611 Music 23597 Templates
  3. 23564 anaconda-ks.cfg 23595 Downloads 22 install.log 23612 Pictures 23613 Videos
  4. 23594 Desktop 23585 fbcmd_update.php 35 install.log.syslog 23601 Public

11. 显示ls命令的版本

查看ls命令的版本。

  1. # ls --version
  2. ls (GNU coreutils) 8.4
  3. Copyright (C) 2010 Free Software Foundation, Inc.
  4. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
  5. This is free software: you are free to change and redistribute it.
  6. There is NO WARRANTY, to the extent permitted by law.
  7. Written by Richard M. Stallman and David MacKenzie.

12. 显示帮助页面

列出ls命令的选项帮助页面。

  1. # ls --help
  2. Usage: ls [OPTION]... [FILE]...

13. 列出目录信息

用ls -l命令列出/tmp目录下的文件,其中-ld参数可以只显示/tmp目录的信息。

  1. # ls -l /tmp
  2. total 408
  3. drwx------. 2 narad narad 4096 Aug 2 02:00 CRX_75DAF8CB7768
  4. -r--------. 1 root root 384683 Aug 4 12:28 htop-1.0.1.tar.gz
  5. drwx------. 2 root root 4096 Aug 4 11:20 keyring-6Mfjnk
  6. drwx------. 2 root root 4096 Aug 16 01:33 keyring-pioZJr
  7. drwx------. 2 gdm gdm 4096 Aug 21 11:26 orbit-gdm
  8. drwx------. 2 root root 4096 Aug 19 08:41 pulse-gl6o4ZdxQVrX
  9. drwx------. 2 narad narad 4096 Aug 4 08:16 pulse-UDH76ExwUVoU
  10. drwx------. 2 gdm gdm 4096 Aug 21 11:26 pulse-wJtcweUCtvhn
  11. -rw-------. 1 root root 300 Aug 16 03:34 yum_save_tx-2012-08-16-03-34LJTAa1.yumtx

  1. # ls -ld /tmp/
  2. drwxrwxrwt. 13 root root 4096 Aug 21 12:48 /tmp/

14. 显示文件的UID和GID

用ls -n命令来显示文件和目录的UID(译者注:userid,用户ID)和GID(译者注:groupid,组ID)。

  1. # ls -n
  2. total 36
  3. drwxr-xr-x. 2 500 500 4096 Aug 2 01:52 Downloads
  4. drwxr-xr-x. 2 500 500 4096 Aug 2 01:52 Music
  5. drwxr-xr-x. 2 500 500 4096 Aug 2 01:52 Pictures
  6. -rw-rw-r--. 1 500 500 12 Aug 21 13:06 tmp.txt
  7. drwxr-xr-x. 2 500 500 4096 Aug 2 01:52 Videos

15. ls命令和它的别名

我们给ls命令设置如下别名之后,当我们执行ls命令的时候它会默认执行-l选项并且像上文提到的那样显示长列表。

  1. # alias ls="ls -l"

注意:我们可以通过不加任何参数的alias命令来看到目前系统中可用的所有alias设置,当然它们同时也可以unalias来取消。

  1. # alias
  2. alias cp='cp -i'
  3. alias l.='ls -d .* --color=auto'
  4. alias ll='ls -l --color=auto'
  5. alias ls='ls --color=auto'
  6. alias mv='mv -i'
  7. alias rm='rm -i'
  8. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

删除一项之前定义的alias设置,只需用unalias命令即可。

  1. # unalias ls

下篇文章我们将讨论更多更高级的ls命令以及示例,如果我们在本文有遗漏了任何东西,请通过评论让我们获

https://linux.cn/article-5109-1.html

linux下mysql修改root密码

方法一:用set password命令

首先,登陆mysql

1
mysql -u root -p

然后执行set password命令

1
set password for root@localhost = password('654321');

上面例子,将root密码更改为654321

方法二:使用mysqladmin

格式为:mysqladmin -u用户名 -p旧密码 password 新密码

1
mysqladmin -uroot -p123456 password "654321"

上面例子,将root密码由123456更改为654321

方法三:更改mysql的user表

首先,登陆mysql

1
mysql -uroot -p

然后操作mysql库的user表,进行update

1
2
3
mysql> use mysql;
mysql> update user set password=password('654321') where user='root' and host='localhost';
mysql> flush privileges;

 

方法四:忘记密码的情况下

首先停止mysql服务

1
service mysqld stop

以跳过授权的方式启动mysql

1
mysqld_safe --skip-grant-tables &

以root用户登录mysql

1
mysql -u root

操作mysql库的user表,进行update

1
2
3
4
mysql> use mysql;
mysql> update user set password=password('654321') where user='root' and host='localhost';
mysql> flush privileges;
mysql> quit

重启mysql服务

1
service mysqld restart

OneinStack一键PHP/JAVA/HHVM安装及VPS手动安装LNMP(3)添加虚拟机

继著名的LAMP Stack(Linux + Apache + MySQL/MariaDB + PHP)网站环境之后,LNMP Stack(Linux + Nginx + MySQL/MariaDB + PHP)以其负载小、静态文件处理能力强的优势,在Linux平台上开始流行,尤其是在配置不太高的VPS上应用广泛。

说起LNMP,多数人应该知道lnmp.org站长开发的LNMP一键安装包,该脚本虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件的安装、重置MySQL root密码、502自动重启等,在国内用户众多,且有官方论坛作为技术支持。

不过,LNMP一键安装包也并非只有lnmp.org一家,本篇文章就来分享一下Linux运维笔记下的一键PHP/JAVA/HHVM安装工具,Linux运维笔记lnmp、lamp、lnmpa一键安装包长年坚持更新,作者博客也有不少原创Linux技术文章和VPS脚本工具,看得出是一个“纯”程序猿。

OneinStack的一键LNMP安装包与lnmp.org站长开发的LNMP一键安装包最大的不同之处就是,多出了支持lnmt(Linux + Nginx+ MySQL+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA和lnmh(Linux + Nginx+ MySQL+ HHVM)。

OneinStack一键工具提供多个Tomcat版本(Tomcat-8,Tomcat-7) 和多个JDK版本(JDK-1.8,JDK-1.7,JDK-1.6),支持CentOS 6、7下HHVM安装。如果还有为无法成功配置好Java或者HHVM环境而烦恼的话,OneinStack就可以助你一臂之力。

当然,喜欢手工制作的LNMP,本篇文章就为大家分享一篇四弦博客投稿的超详细的VPS手动安装LNMP的教程,给有折腾精神的朋友参考参考。

OneinStack一键PHP/JAVA/HHVM安装和超详细的VPS手动安装LNMP

一、OneinStack一键PHP/JAVA/HHVM安装

1、OneinStack官网:

官方网站:http://oneinstack.com/

作者博客:https://blog.linuxeye.com/31.html

2、OneinStack一键PHP/JAVA/HHVM安装代码如下:(阿里云用户可以选择OneinStack阿里云节点,这样速度会更快一些)

yum -y install wget screen    #for CentOS/Redhat 
# apt-get -y install wget screen    #for Debian/Ubuntu 
wget http://aliyun-oss.linuxeye.com/oneinstack-full.tar.gz    #阿里云用户下载 
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz    #包含源码,国内外均可下载 
wget http://mirrors.linuxeye.com/oneinstack.tar.gz    #不包含源码,建议仅国外主机下载 
tar xzf oneinstack-full.tar.gz 
cd oneinstack    #如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件 
screen -S oneinstack    #如果网路出现中断,可以执行命令`screen -r oneinstack`重新连接安装窗口 
./install.sh     #请勿sh install.sh或者bash install.sh这样执行

3、OneinStack一键安装包支持以下组合自由安装:

  • lnmp(Linux + Nginx+ MySQL+ PHP)
  • lamp(Linux + Apache+ MySQL+ PHP)
  • lnmpa(Linux + Nginx+ MySQL+ PHP+ Apache):Nginx处理静态,Apache(mod_php)处理动态PHP
  • lnmt(Linux + Nginx+ MySQL+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA
  • lnmh(Linux + Nginx+ MySQL+ HHVM)

4、你安装时可以自己选择。

LNMP一键安装包 PHP一键安装包 LNMP安装教程

5、然后你可以根据你自己的需要来安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。

LNMP一键安装包 PHP一键安装包 LNMP安装教程

6、还有php加解密工具ionCube、ZendGuardLoader ,和Memcached、Redis等。

LNMP一键安装包 PHP一键安装包 LNMP安装教程

7、OneinStack一键安装支持升级:./upgrade.sh,提供了Nginx、Tengine、Apache、PHP、MySQL、Redis等升级。

LNMP一键安装包 PHP一键安装包 LNMP安装教程

Ubuntu14.04LTS上的Nginx-1.9.5 + MariaDB-10.1 + PHP-7.0.0RC5网站环境搭建教程

二、编译安装Nginx-1.9.5

1、上面是LNMP一键安装方法,接下来就是关于在Ubuntu-14.04 LTS系统上手动搭建LNMP环境的教程。之所以选择手动搭建环境,无非是为了装逼(大雾)从手动搭建中积累搭建环境的经验,并且享受到一定的乐趣。如果您对这方面感兴趣,又有足够的闲暇时间,不妨一试。

2、首先,到nginx官方下载nginx源码(注:由于本博安装nginx-1.9.5的原因是为了支持HTTP/2协议,所以对于部分不需要SSL的网站,会在本段后给出一个1.8.0的教程)。

cd /usr/local/src

wget http://nginx.org/download/nginx-1.9.5.tar.gz

3、 下载LibreSSL(注:本博使用LibreSSL的目的是支持SSL中使用的ChaCha20-Poly1305流式加密算法,对于使用AES-GCM的站点,也可以使用该SSL库)。

cd /usr/local/src

wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.3.0.tar.gz

tar xzf libressl-2.3.0.tar.gz

4、现在,/usr/local/src的目录结构类似这样(以反斜线与缩进显示结构):

usr\
    local\
        src\
            libressl-2.3.0
            nginx-1.9.5

5、 编译准备工作:

apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev
groupadd www
useradd www -g www

6、开始编译nginx:

./configure \ 
--user=www \ 
--group=www  \ 
--prefix=/usr/local/nginx \ 
--with-http_stub_status_module \ 
--with-http_ssl_module \ 
--with-http_gzip_static_module \ 
--with-ipv6 \ 
--with-http_v2_module \ 
--with-openssl=../libressl-2.3.0

7、我所使用的编译参数说明如下:

--user=www \ #指定nginx运行用户
--group=www  \ #指定nginx运行用户组
--prefix=/usr/local/nginx \ #指定nginx安装路径,不用修改
--with-http_stub_status_module \ #开启状态监控模块
--with-http_ssl_module \ #开启SSL
--with-http_gzip_static_module \ #开启Gzip
--with-ipv6 \ #开启ipv6,无v6可去掉
--with-http_v2_module \ #开启HTTP/2
--with-openssl=../libressl-2.3.0 #指定openssl路径

8、建立Makefile完成,开始编译:

make
make install

9、加入环境变量:

vim /etc/environment
#vim操作请自行Google
#在PATH变量的最后加入
:/usr/local/nginx/sbin
#完成后类似于
PATH="/.../:/.../:......:/usr/local/nginx/sbin"
#保存退出
source /etc/environment

10、输入:nginx -v ,显示 nginx 的版本就说明安装成功了。

11、 如果不想安装nginx-1.9.5的话,可以参加此方法安装nginx-1.8.0,操作步骤和上面一样的,代码如下:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.8.0.tar.gz

cd /usr/local/src  
wget http://www.openssl.org/source/openssl-1.0.2d.tar.gz  
tar zxvf openssl-1.0.2d.tar.gz  
cd openssl-1.0.2d  
./config
make
ldconfig

apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev
groupadd www
useradd www -g www

./configure \ 
--user=www \ 
--group=www  \ 
--prefix=/usr/local/nginx \ 
--with-http_stub_status_module \ 
--with-http_ssl_module \ 
--with-http_gzip_static_module \ 
--with-ipv6 \ 
--with-http_v2_module \ 
--with-openssl=/usr/local/src/openssl-1.0.2d

make
make install

vim /etc/environment
#vim操作请自行Google
#在PATH变量的最后加入
:/usr/local/nginx/sbin
#完成后类似于
PATH="/.../:/.../:......:/usr/local/nginx/sbin"
#保存退出
source /etc/environment

nginx -v

三、apt-get快速安装MariaDB-10.1

1、添加MariaDB官方apt源:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://mariadb.nethub.com.hk//repo/10.1/ubuntu trusty main'
#我的VPS是香港softlayer数据中心 vps.to的VPS。因此,本处添加了HK的apt源,
可以在这里找到更#多的源:https://downloads.mariadb.org/mariadb/repositories

2、apt-get安装MariaDB:

apt-get install mariadb-client mariadb-server

3、安装时会要求输入root密码以及重复密码,按照要求进行。如果需要修改root密码,使用:

/usr/bin/mysqladmin -u root -p 旧密码 新密码

四、编译安装PHP-7.0.0RC5

1、下载PHP-7.0.0RC5源码包:

cd /usr/local/src
wget https://downloads.php.net/~ab/php-7.0.0RC5.tar.gz
tar xzf php-7.0.0RC5.tar.gz

2、安装PHP依赖包:

sudo apt-get install libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev

3、编译PHP:

cd /usr/local/src/php-7.0.0RC5
 ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-fpm-user=www --with-fpm-group=www \
--enable-fpm \
--disable-fileinfo \
--enable-mysqlnd \
 --with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-exif \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-inline-optimization \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-ftp \
--with-gettext \
--enable-zip \
--enable-soap \
--disable-debug
make #时间可能较长,我的vps.to VPS花费大约十五分钟
make install

4、添加环境变量:

vim /etc/environment
#在PATH变量的最后加入:
:/usr/local/php/bin
#保存退出
source /etc/environment

5、测试:php -v,输出PHP版本就表示安装成功了。

 

五、修改nginx、MariaDB、PHP配置文件

1、修改nginx配置文件,建立虚拟主机配置文件夹:

mkdir /usr/local/nginx/conf/vhost

2、编辑nginx.conf,引入所有虚拟主机配置:

vim /usr/local/nginx/conf/nginx.conf
#在最后的}前一行加入
include vhost/*.conf;
#文件头部
user www;
work_process 1;#根据CPU核数设定
#保存退出

3、添加nginx服务,并测试nginx:

wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
chmod +x /etc/init.d/nginx
service nginx start

4、如果出现Nginx服务器正在启动就表示成功了,最后执行以下代码开机启动:

update-rc.d –f nginx defaults

5、修改MariaDB配置文件,设置MariaDB字符集:

cd /etc/my.cnf.d  
vim server.cnf  
#在[mysqld]段下加入
character-set-server=utf8  
#在[server]段上方输入
[client]
default-character-set=utf8  
#保存退出
service mysql restart

6、修改PHP配置文件,复制默认php.ini文件:

cd /usr/local/src/php-7.0.0RC5
cp php.ini-production /usr/local/php/etc/php.ini

7、关闭display_errors:

vim /usr/local/php/etc/php.ini
#定位到display_errors,设置:
display_errors = Off
#保存退出

8、修改php-fpm配置:

cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf #如果没有则建立该文件
cd php-fpm.d
cp www.conf.default www.conf
vim www.conf
#修改如下项目:
user = www
group = www
listen = /dev/shm/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660
#保存退出

9、建立PHP服务:

cp /usr/local/src/php-7.0.0RC5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpm

update-rc.d -f php-fpm defaults

10、启动php:

service php-fpm start

六、建立虚拟主机

1、由于建立虚拟主机是个比较麻烦的事儿,此处还是借用了oneinstack.com的虚拟主机脚本,使用如下命令即可使用oneinstack包的虚拟主机脚本:

wget http://mirrors.linuxeye.com/oneinstack.tar.gz
tar xzf oneinstack.tar.gz
cd oneinstack
./vhost.sh

2、按提示进行即可建立虚拟主机。

LNMP一键安装包 PHP一键安装包 LNMP安装教程

3、将域名解析到VPS上,进入对应虚拟主机目录,编辑如下PHP文件,或者上传一个PHP探针,然后就能查看到LNMP成功了:

LNMP一键安装包 PHP一键安装包 LNMP安装教程

七、VPS手动安装LNMP小结

1、其实,VPS手动安装LNMP还是挺麻烦的,当然它的可定制性也是非常高,对于不想使用LNMP一键安装包的朋友来说,自己手动可以编译最新版本的Nginx、MysqL、PHP等,能够最先体验到新版的性能提升。

2、OneinStack一键PHP/JAVA/HHVM安装包的作者还有不少的实用工具,例如Linux VPS主机挂载硬盘扩容的方法比较复杂,这里有一个自动搜索硬盘并挂载的代码:

wget http://mirrors.linuxeye.com/scripts/auto_fdisk.sh
chmod +x ./auto_fdisk.sh
./auto_fdisk.sh

3、看到如下图就表示已经自动挂载成功了,该方法在阿里云VPS上测试通过,其它的VPS主机都是可以用的。

LNMP一键安装包 PHP一键安装包 LNMP安装教程

http://www.chinaz.com/web/2015/1203/478650.shtml

linux中nginx如何配置一个ip多个域名

nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里。
一、每个域名一个文件的写法
首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.rodine.org 则在此目录建一个文件:www.rodine.org.conf然后在此文件中写规则,如:server

1
2
3
4
5
6
7
{
listen 80;
server_name www.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
}

然后重起nginx服务器,域名就绑定成功了nginx服务器重起命令:/etc/init.d/nginx restart
二、一个文件多个域名的写法
一个文件添加多个域名的规则也是一样,只要把上面单个域名重复写下来就ok了,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server
{
listen 80;
server_name www.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
}server
{
listen 80;
server_name msn.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/msn.rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
}

三、不带www的域名加301跳转
如果不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不用写网站目录,而是进行301跳转,如:

1
2
3
4
5
6
server
{
listen 80;
server_namerodine.org;
rewrite ^/(.*) http://www.rodine.org/$1 permanent;
}

四、添加404网页

添加404网页,都可又直接在里面添加,如:

1
2
3
4
5
6
7
8
9
server
{
listen 80;
server_name www.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
error_page 404 /404.html;
}

学会上面四种规则方法,基本就可以自己独立解决nginx 多域名配置问题了

linux操作系统下RAR的安装和使用 rar解压

Centos下解压rar、zip文件的方法,一般需要先安装linux下的rar程序才可以

 

============zip文件的操作==================================
zip -r data.zip data
解释:将data文件夹压缩成了data.zip格式。

unzip data.zip
解释:将data.zip文件解压到当前文件夹。
—————–下面是一些详细的说明————————–
1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip:
# zip -r yasuo.zip abc.txt dir1
2.我下载了一个yasuo.zip文件,想解压缩:
# unzip yasuo.zip
3.我当前目录下有abc1.zip,abc2.zip和abc3.zip,我想一起解压缩它们:
# unzip abc\?.zip
注释:?表示一个字符,如果用*表示任意多个字符。
4.我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:
# unzip -v large.zip
5.我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了
# unzip -t large.zip
6.我用-v选项发现music.zip压缩文件里面有很多目录和子目录,并且子目录中其实都是歌曲mp3文件,我想把这些文件都下载到第一级目录,而不是一层一层建目录:
# unzip -j music.zip

====================rar文件==========================
在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本,操作如下
wget http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz
tar -zxvf rarlinux-4.0.1.tar.gz
cd rar
make
看见下面这些信息就是安装成功了
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
先记住两个常用命令吧:
rar x vpsyou.rar //解压 vpsyou.rar 到当前目录
rar vpsyou.rar ./vpsyou.com/ //将 vpsyou.com 目录打包为 vpsyou.rar
—————————————————–
rar常用命令主要有

a 添加文件到操作文档
例:rar a test.rar file1.txt 若test.rar文件不存在,则打包file1.txt文件成test.rar
例:rar a test.rar file2.txt 若test.rar文件已经存在,则添加file2.txt文件到test.rar中
(这样test.rar中就有两个文件了)
注,如果操作文档中已有某文件的一份拷贝,则a命令更新该文件,对目录也可以进行操作
例:rar a test.rar dir1
c 对操作文档添加说明注释
rar c test.rar
(会出现Reading comment from stdin字样,然后输入一行或多行注释,以ctrl+d结束)
cf 添加文件注释,类似上面的c,不过这个是对压缩文档中每个文件进行注释
cw 将文档注释写入文件
例:rar cw test.rar comment.txt
d 从文档中删除文件
例:rar d test.rar file1.txt
e 将文件解压到当前目录
例:rar e test.rar
注:用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件
也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压
k 锁定文档
例:rar k test.rar 锁定文档后,该文档就无法进行任何更新操作了
r 修复文档
例:rar r test.rar
当rar文件有问题时,可以尝试用该命令进行修复(鬼知道有多少用)
s 转换文档成自解压文档
例:rar s test.rar
会生成一个test.sfx的可执行文档,运行它的效果就相当于rar x test.rar,
适合于向没有rar的用户传输文件
t 检测文档
例:rar t test.rar
检测test.rar的完整性,一般压缩完大型文件准备传输前最好用这个命令来确保文件的正确性
x 带路径解压文档中内容到当前目录
例:rar x test.rar
这样解压的话,dir1就会保持原来的目录结构
以上就是rar的常用命令,一个rar操作只能有一个命令,而选项却可以有多个。
————————————————————————
rar选项有很多,在此无法一一说明,只示范经常使用的几个
cl 将文件名转换为小写
cu 将文件名转换为大写
例:rar a -cl test.rar FILe.txt
FILe.txt在添加进test.rar之后,变为file.txt
df 文档操作后删除源文件
例:rar a -df test.rar file1.txt file2.txt dir1
将file1.txt,file2.txt,dir1压缩到test.rar中之后,删除源文件
ed 不添加空目录
例:rar a -ed test.rar dir1
添加dir1到test.rar中时,不对空目录进行操作
rar e -ed test.rar
解压test.rar时,不生成空目录
k 锁定文件
例:rar a -k test.rar file1.txt
等价于rar a test.rar file1.txt
rar k test.rar
m<0..5> 设定压缩比等级(0-存储,3-默认,5-最大)
例:rar a -m0 test.rar dir1 dir2
将dir1,dir2打包存储到test.rar,不进行实质上的压缩(速度奇快,适合于对无甚可压的文件进行操作
比如avi,jpg等)
rar a -m5 test.rar *.txt *.bmp
将当前目录下的txt文件和bmp文件打包压缩到test.rar中,使用最大压缩比(最慢)
ms[ext;ext] 特定文件采用非压缩方式
例:rar a -m5 -ms avi;jpg;jpeg test.rar /home
将home目录下所有目录和文件归档到test.rar,采用最大压缩,但avi,jpg,jpeg文件不进行压缩
(只是打包进test.rar,因为这些文件即使用最大压缩也压不了多少,不如直接打包节省时间)
o+ 覆盖已有文件
o- 不覆盖已有文件
例:rar x -o- test.rar
解压test.rar文件,但是如果碰到以存在的文件则不覆盖
ol 将符号链接以链接文件保存,而不是普通文件
ow 保存或者恢复文件所有者的信息(username,group)
这两个是*nix系统特有的命令,很容易理解吧
————————————————————————
p[password] 设定密码
例:rar a test.rar *.txt -p prettygirl
压缩文件设定密码为prettygirl,解压时无密码无法进行操作
如果觉得明码密码太过暴露,可以使用
rar a test.rar *.txt -p
则rar程序会询问你要使用什么密码,不回显
s- 不使用固实压缩
注,固实压缩就是压缩后文档内容不可变更的压缩方式,这和lock不一样。因为使用普通压缩
要照顾以后的插入删除个别文件的需要,就要留下很多操作余地。而固实压缩则不可以对
其内容进行任何更新,所以压缩比是最大的。
sfx[name] 创建自解压文件,这和先用a进行压缩,再用s转换效果是一样的。
t 压缩完毕后进行完整性检验
例:rar a test.rar /home -t
压缩完毕后进行检验,如果有问题则报错。
ta 仅对data日期后文件进行操作
tb 仅对data日期前文件进行操作
注,date的格式为 YYYYMMDDHHMMSS 这样。
v[k,b] 分卷压缩,每卷大小由后面的size指定
例:rar a -v15000k -m0 test xvid-fn.avi
对xvid-fn.avi进行打包存储,每卷大小15000k(这种格式在网上发布dvdrip时很流行)
生成的文件名为test.part1.rar,test.part2.rar….(rar 3.20版)
x 排除特定的文件
例:rar x test.rar -x *.txt
解压test.rar中除*.txt以外的文档
x@ 同上,不过这次所有排除的文件放在list文件列表中
y 所有操作均回答yes
例如有时解压时每碰到相同文件就问是否覆盖(Y/N),加上-y就可以默认选择Yes,不再询问

 

http://www.jb51.net/os/RedHat/1061.html

Linux添加FTP用户并设置权限

Linux添加FTP用户并设置权限
在linux中添加ftp用户,并设置相应的权限,操作步骤如下:
1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test
2、建用户:在root用户下:
useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
passwd test //为test设置密码
3、更改用户相应的权限设置:
usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
usermod -s /sbin/bash test //用户test恢复正常
usermod -d /test test //更改用户test的主目录为/test
4、限制用户只能访问/home/test,不能访问其他路径
修改/etc/vsftpd/vsftpd.conf如下:  www.2cto.com
chroot_list_enable=YES //限制访问自身目录
# (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
编辑 vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行
改完配置文件,不要忘记重启vsFTPd服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
5、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:
usermod -s /usr/bin/passwd test //用户telnet后将直接进入改密界面
http://www.2cto.com/os/201206/135771.html