linux命令

文件基本属性

文件属性说明

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

查看文件属性

1
ls -l

输出

1
2
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
第一个字符 属主 属组 其他用户
d 目录
- 文件
l 链接文档(link file)
b 装置文件里面的可供储存的接口设备(可随机存取装置)
c 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
r 读
w 写
x 执行
r 读
w 写
x 执行
r 读
w 写
x 执行

更改文件属性

功能 方法
更改文件属组 chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
更改文件属主 chown [–R] 属主名 文件名                  `chown bin install.log`
chown [-R] 属主名:属组名 文件名     `chown root:root install.log`
更改文件属性 Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
第一种方式 chmod [-R] xyz 文件或目录
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
xyz : 就是刚刚提到的数字类型的权限属性

` chmod 777 test`
第二种方式 u   属主
g   同组
o   其他
a   所有
+(加入)
-(除去)
=(设定)
r
w
x
文件或目录
`chmod u=rwx,g=rx,o=r  test`

文件与目录管理

Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。

命令 说明
ls 列出目录
a: 全部的文件,连同隐藏文件(开头为.的文件)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
cd 切换目录
# cd ~ # 表示回到自己的家目录,亦即是 /root 这个目录
pwd 显示目前的目录
-P :显示出确实的路径,而非使用连结 (link) 路径。
mkdir 创建一个新的目录
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
rmdir 删除一个空的目录
-p :连同上一级『空的』目录也一起删除
cp 复制文件或目录
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
rm 移除文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
mv 移动文件与目录,或修改文件与目录的名称
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

用户与用户组

用户管理

命令 说明
useradd 添加新的用户账号 useradd -s /bin/sh -g group –G adm,root gem
useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
userdel 删除帐号 userdel -r sam
-r:把用户的主目录一起删除
usermod 修改帐号 usermod -s /bin/ksh -d /home/z –g developer sam
usermod 选项 用户名
包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样
passwd 用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
passwd 选项 用户名
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。

用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

命令 方法
groupadd 增加一个新的用户组
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
groupdel 删除一个已有的用户组
groupmod 修改用户组的属性
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
newgrp 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
root``` |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

## 与用户账号有关的系统文件

完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。这些文件包括/etc/passwd, /etc/shadow, /etc/group等。

### 伪用户

这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。常见的伪用户如下所示:

```shell
伪 用 户 含 义
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用

用户管理文件-/etc/passwd

1
2
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
root:x:0:0:Superuser:/:
字段 说明
口令 虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
用户标识号 系统内部用它来标识用户,一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等
组标识号 记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。
注释性描述 记录着用户的一些个人情况。例如用户的真实姓名、电话、地址等,
主目录 用户的起始工作目录
登陆shell 用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell

用户管理文件-/etc/shadow

由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

1
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志   root:Dnakfw28zf38w:8764:0:168:7:::
字段 说明
登录名 与/etc/passwd文件中的登录名相一致的用户账号
口令 存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
最后一次修改时间 从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
最小时间间隔 是两次修改口令之间所需的最小天数。
最大时间间隔 口令保持有效的最大天数。
警告时间 从系统开始警告用户到用户密码正式失效之间的天数。
不活动时间 用户没有登录活动但账号仍能保持有效的最大天数。
失效时间 给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

用户组管理文件-/etc/group

每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

1
2
组名:口令:组标识号:组内用户列表
root::0:root
字段 说明
组名 用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
口令存 用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。
组标识号 与用户标识号类似,也是一个整数,被系统内部用来标识组。
组内用户列表 属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

添加批量用户

  1. 先编辑一个文本用户文件。

    每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:

    1
    2
    3
    4
    5
    6
    user001::600:100:user:/home/user001:/bin/bash
    user002::601:100:user:/home/user002:/bin/bash
    user003::602:100:user:/home/user003:/bin/bash
    user004::603:100:user:/home/user004:/bin/bash
    user005::604:100:user:/home/user005:/bin/bash
    user006::605:100:user:/home/user006:/bin/bash
  2. 以root身份执行命令 /usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据,创建用户

    1
    newusers < user.txt
  3. 执行命令/usr/sbin/pwunconv

    /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadowshadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。

    1
    pwunconv
  4. 编辑每个用户的密码对照文件。

    1
    2
    3
    4
    5
    6
    user001:密码
    user002:密码
    user003:密码
    user004:密码
    user005:密码
    user006:密码
  5. 以root身份执行命令 /usr/sbin/chpasswd

    创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。

    1
    chpasswd < passwd.txt
  6. 确定密码经编码写入/etc/passwd的密码栏后。

    执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow

    1
    pwconv

yum 命令-包管理

  • yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器

  • 基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

  • yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

1
yum [options] [command] [package ...]
参数 说明
options -h 帮助
-y 当安装过程提示选择全部为"yes"
-q 不显示安装的过程
command check-update 列出所有可更新的软件清单命令
update 更新所有软件命令
update<package_name> 仅更新指定的软件命令
install <package_name> 仅安装指定的软件命令
list 列出所有可安裝的软件清单命令
remove <package_name> 删除软件包命令
search
<keyword>
查找软件包命令
clean packages 清除缓存目录下的软件包
clean headers 清除缓存目录下的 headers
clean oldheaders 清除缓存目录下旧的 headers
clean/clean all 清除缓存目录下的软件包及旧的headers
package 操作的对象

命令大全

1、文件管理
cat chattr chgrp chmod
chown cksum cmp diff
diffstat file find git
gitview indent cut ln
less locate lsattr mattrib
mc mdel mdir mktemp
more mmove mread mren
mtools mtoolstest mv od
paste patch rcp rm
slocate split tee tmpwatch
touch umask which cp
whereis mcopy mshowfat rhmask
scp awk read updatedb
2、文档编辑
col colrm comm csplit
ed egrep ex fgrep
fmt fold grep ispell
jed joe join look
mtype pico rgrep sed
sort spell tr expr
uniq wc let
3、文件传输
lprm lpr lpq lpd
bye ftp uuto uupick
uucp uucico tftp ncftp
ftpshut ftpwho ftpcount
4、磁盘管理
cd df dirs du
edquota eject mcd mdeltree
mdu mkdir mlabel mmd
mrd mzip pwd quota
mount mmount rmdir rmt
stat tree umount ls
quotacheck quotaoff lndir repquota
quotaon
5、磁盘维护
badblocks cfdisk dd e2fsck
ext2ed fsck fsck.minix fsconf
fdformat hdparm mformat mkbootdisk
mkdosfs mke2fs mkfs.ext2 mkfs.msdos
mkinitrd mkisofs mkswap mpartition
swapon symlinks sync mbadblocks
mkfs.minix fsck.ext2 fdisk losetup
mkfs sfdisk swapoff
6、网络通讯
apachectl arpwatch dip getty
mingetty uux telnet uulog
uustat ppp-off netconfig nc
httpd ifconfig minicom mesg
dnsconf wall netstat ping
pppstats samba setserial talk
traceroute tty newaliases uuname
netconf write statserial efax
pppsetup tcpdump ytalk cu
smbd testparm smbclient shapecfg
7、系统管理
adduser chfn useradd date
exit finger fwhios sleep
suspend groupdel groupmod halt
kill last lastb login
logname logout ps nice
procinfo top pstree reboot
rlogin rsh sliplogin screen
shutdown rwho sudo gitps
swatch tload logrotate uname
chsh userconf userdel usermod
vlock who whoami whois
newgrp renice su skill
w id free
8、系统设置
reset clear alias dircolors
aumix bind chroot clock
crontab declare depmod dmesg
enable eval export pwunconv
grpconv rpm insmod kbdconfig
lilo liloconfig lsmod minfo
set modprobe ntsysv mouseconfig
passwd pwconv rdate resize
rmmod grpunconv modinfo time
setup sndconfig setenv setconsole
timeconfig ulimit unset chkconfig
apmd hwclock mkkickstart fbset
unalias SVGATextMode
9、备份压缩
ar bunzip2 bzip2 bzip2recover
gunzip unarj compress cpio
dump uuencode gzexe gzip
lha restore tar uudecode
unzip zip zipinfo
10、设备管理
setleds loadkeys rdev dumpkeys
MAKEDEV

其他

解压rar

1
sudo apt-get install rar unrar