在线求助man page与info page
<1>man page
常见的几个数字的意义(可以通过命令:man 7 man查看):
1,用户在shell环境中可以操作的命令或可执行文件
2,系统内核可调用的函数和工具等
3,一些常用函数与函数库,大部分为C函数库(libc)
4,设备文件的说明,/dev下的文件
5,配置文件或者是某些文件的格式
6,game
7,惯例与协议,例如Linux文件系统,网络协议,ASCII code说明
8,系统管理员可用的管理命令
9,跟kernel有关的文件
常用的命令:
man -f man:等同于whatis,匹配命令或文件名称中有完整的“man” 的命令或文件
man -k man :等同于spropos,匹配命令或文件及其说明部分包含“man”的命令或文件
若要使用whatis,spropos命令,先执行命令:sudo makewhatis
<2>info page
类似于命令行模式的网页显示数据。将数据拆分成一个一个的节点(独立的页面)。在info page中使用的按键:
[Tab],在节点之间移动,有节点的地方通常以“*”显示
[Enter],进入光标所在节点
B/E/N/P/U : 移动至第一个节点/最后一个节点/上一个节点/下一个节点/上一层
/,查询
q,退出
除了man page和info page,还有其他文件(documents)存放在/usr/share/doc目录下,
时间
系统时间是从RTC(real time clock)中来的,RTC时间是从1970-1-1 00-00-00开始走过的秒数
hwclock -r 选项用来显示当前的RTC 时间
hwclock -s 选项用来将当前的RTC 时间初始化为Linux 系统时间;
hwclock -w 选项用来将当前的Linux 系统时间写入到RTC 时间;
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS
clock -w 将时间修改保存到 BIOS
系统的关机重启登录
shutdown -h now
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now / reboot 重启
shutdown -c 取消按预定时间关闭系统
shutdown -r now / reboot 重启
logout 注销
whoami 显示当前登录的用户
改变运行级别
<1>重启进入的运行级别:sudo vim /etc/inittab 改变id后的数字
<2>sudo init 5
添加sudo账户
#vim /etc/sudoers
zhoutian ALL=(ALL) ALL(或NOPASSWD:ALL)
符号链接
ln -s ~/projiect/haha/ link1
//在当前目录下创建指向~/projiect/haha目录的符号链接,对link1目录下的文件的操作即是对projiect目录下文件的操作
rm link1 删除链接, 但~/projiect/haha/目录下的内容没有变
rm -r link1/ projiect/haha下的被文件删除 链接link1 没有被删除,显示: 无法删除"link": 不是目录
ln -s ~/projiect/haha 在当前目录下创建一个名为haha的符号链接,haha指向~/prijiect/haha目录
cp的用法
cp -r(递归地复制目录。用于目录中带有子目录) -f (如果存在一个目标文件,不能被打开,那么试图先删除它再尝试)
-a (要完整地复制一个目录,保持软硬链接和文件属性,相当于同时指定-bpr) -p (保留源文件或目录的属性) -i(覆盖文件之前先询问用户)
cp txt txt1 赋值txt到txt1中,txt1不存在则创建,存在则覆盖
cp -a a1 a2 a2不存在则新建,a1中的内容复制到a2;a2存在则a1复制到a2目录下,若在a2下存在同名文件则覆盖
文件和目录
tree (lstree)显示文件和目录由根目录开始的树形结构
file txt 辨识文件类型
stat txt 查看文件的atime(acess访问时间),mtime(modify修改时间),ctime(change状态改动时间)
touch txt 创建一个空文件
touch txt 更新文件txt的时间 用ls --full-time txt查看文件创建时间
touch -t 0712250000 txt 修改txt文件的创建时间为2007-12-25 00-00-00
mkdir -p 创建目录树
mkdir -m
文件传输命令
rz上传文件不能覆盖当前路径下的同名文件 sz
scp命令:基于SSH协议在本地主机与远程主机之间复制文件
scp [OPTIONS] file_source file_target
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接、认证、 或是配置错误
-C 使能压缩选项
-P 选择端口 . 注意 -p 已经被 rcp 使用
-C 使能压缩选项
-P 选择端口 . 注意 -p 已经被 rcp 使用
从 远程 复制到 本地
scp lingyun@192.168.1.3:/home/lingyun/zhoutian/a.txt /home/zhoutian
(然后会提示你输入另外那台192.168.1.3主机的lingyun用户的登录密码,接着就开始copy了),复制目录加参数 -r 即可
从 远程 复制到 本地
scp /home/zhoutian/a.c lingyun@192.168.1.3:/home/lingyun/zhoutian
find命令
<1>基本使用
-name(查找指定文件名) -type(查找某一类型文件 bdcplf f是普通文件) -user/group(按照文件所属的用户/组来查找文件) -nouser/nogroup
-mtime -n/+n (按照文件的更改时间 -n在n天以内更改的文件 +n在n天以前更改的文件) -size +nc(查找文件长度大于n块的文件,一块为512字节)
-exec(对匹配的文件执行该参数给出的shell命令) -print(将匹配的文件输出到标准输出)
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find . ! -type d –print 在当前目录下查找除目录以外的所有类型的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
<2>-exec与xargs配合使用
-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;
xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定
find . -type f -print | xargs file 查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件
find / -name "core" -print | xargs echo "" >/tmp/core.log
//在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中
<3>其它查找命令
locate *.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
which halt 显示一个二进制文件或可执行文件的完整路径
type 用来区分某个命令是由shell自带的,还是一个外部命令(这时-p,会显示该命令的路径)
用户管理
/etc/passwd 定义了每个用户账户的属性
/etc/shadow 保存密文的用户口令,只有管理员才能读取
/etc/group 保存用户组的信息
/etc/login.defs /etc/default/useradd用这两个默认帐号设定文件来 实现创建用户时用户的基本设置的
useradd test 新建用户test 同时会创建一个和用户名同名的用户组
useradd -g students test1 创建test1用户,属于students组,不会创建与用户名同名的组
usermod -g students test (修改用户属性)更改用户的用户组,将test从默认的test组更改到students组
//将已有的用户添加到其他组,一个用户可以同时属于多个组
usermod -G training test 将test用户添加到trainnig组,test同时属于students和trainning组
或使用gpasswd -a test trainning 将test添加到trainning
userdel -r test 删除用户及用户的宿主目录(-r排除主目录)
passwd test root给用户设置密码,连输2次密码
passwd 登录用户test,用户自己修改密码,输入原始密码 输入新密码
chage -E 2005-12-31 user1 设置用户口令的失效期限
pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
groupadd -g 888 students 创建GID为888的用户组
groupdel groupname 删除用户组,要先删除或移除该组的用户
groups test 查看test用户属于哪一个组
修改组名和用户名:
groupmod -n newname oldname
usermod -l newname oldname
文件类型和权限(读写执行权限)
<1>文件类型:
- 普通文件 d目录 b块设备文件(硬盘光驱/dev/sda* sr0) c字符设备文件(/dev/ttyS*) l符号链接文件 p是管道文件
s(socket文件)
sudo mknod -m 660 sdb4 b 8 5 //创建块设备文件,主设备号8,次设备号5
<2>文件权限:(chmod的用法)
chmod a+x hello //增加所有者,所有组和其他用户的可执行权限
//u(文件所有者) g(文件所有组) o(其他用户) a(三者皆是) +(增加权限) -(取消权限) =(唯一设定权限)
//r(读) w(写) x(执行) s(设置用户或组的ID号) t(设置粘着位sticky bit,防止文件或目录被非属主删除)
chmod -R a+r * //将目前目录下的所有档案与子目录皆设为任何人可读取(-R可递归遍历自目录)
chmod a=rwx file 或者 chmod 777 file //修改file三者都可读,可写,可执行
chmod u+s hello //设置hello的SUID设置位,运行该文件的用户也被赋予和所有者同样的权限
chmod g+s hello //设置SGID设置位,类似SUID
chmod o+t projiect/ 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
<3>SUID,SGID和STIKY设置位
-rwsr-xr-x 表示SUID和所有者权限中可执行位被设置
-rwSr--r-- 表示SUID被设置,但所有者权限中可执行位没有被设置
-rwxrwxrwt 表示STIKY位和other的可执行位被设置
<3>文件属性(chown chgrp)
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chown user1:group1 file1 改变一个文件的所有人和群组属性
chgrp group1 file1 改变文件的群组
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chown user1:group1 file1 改变一个文件的所有人和群组属性
chgrp group1 file1 改变文件的群组
<4>文件的特殊属性
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性
磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
du -c --si lib/* 查看压缩后的大小
字符设置和文件格式转换
dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
recode ..HTML < page.txt > page.html
dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
recode ..HTML < page.txt > page.html
rpm和yum命令
rpm -ivh package.rpm 安装一个rpm包
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -qa | grep tree 查询有没有安装这个软件包
ls Package/*tree*.rpm
sudo rpm -ivh /Package/tree*.rpm 用rpm -i 安装
rpm –ql 命令查看rpm 包中包含了哪些文件
rpm –qf /usr/bin/tree 查询一个命令属于哪个rpm 包
rpm –e tree 或 rm -rf 来删除一个软件包
yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
压缩和解压缩命令
这五个是独立的命令,压缩解压都要用到其中一个:
-c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件
下面的参数是根据需要在压缩或解压档案时可选的:
-z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出
tar归档 (-f是必须的)
-f: 使用档案名字 :切记,这个参数是最后一个参数,后面只能接档案名。
压缩(只能是文件,不能是目录):
gzip test.tar => test.tar.gz
bzip2 test.tar => test.tar.bz2
解压缩:
gzip -d test.tar.gz => test.tar 或用gunzip
tar -xf test.tar => file1, file2, dir1, dir2 ...
bzip2 -d test.tar.bz2 => test.tar 或用bunzip2
tar -xf test.tar => file1, file2, dir1, dir2...
<1>*.tar.bz2 压缩比要大些,压缩时间要长些
tar -cjf test.tar.bz2 file1 file2 dir1 dir2... 压缩
tar -xjf test.tar.bz2 解压缩
<2>*.tar.gz 压缩比要消协,压缩时间稍微短些;
tar -czf test.tar.gz file1 file2 dir1 dir2 ...
tar -xzf test.tar.gz 解压缩到当前路径
<3>*.tar.Z
tar –cZf jpg.tar.Z *.jpg 打包压缩成jpg.tar.Z 用compress压缩
tar –xZf jpg.tar.Z 解压缩到当前路径
<4>带上完整路径压缩目录:
tar -czf ~/projiect/a2/a1.tar.gz ~/projiect/a1 将projiect路径下的a1文件夹打包压缩成a1.tar.gz放到projiect/a2目录下
tar -xzf ~/projiect/a2/a1.tar.gz -C ~/projiect 将a1.tar.gz解压到projiect目录下 -C指定解压路径