上学时就学了linux,没认真学,前阵子买了本《linux从入门到精通》,做了一些笔记。现在放博客里便于查看。
第5章:shell基本命令.txt
shell提示符为”$”,如果是root用户登录,提示符为”#”
路径信息格式为:用户名,主机名,当前目录
root@ooyue:/var#
如果当前目前为个人用户主目录(root用户为/root,其他用户为/home/xx),当前目录显示为”~”
cd /root 后
root@ooyue:~#
按Tab可补全命令,如果相同开头的不止一个,连按Tab两次,会显示所有该字符开头的文件
通配符:*,?,[]
“*”用于匹配文件名中任意长度的字符串
ls *.php
“?”类似于”*”,但只能匹配一个字符
“[]“匹配出现在括号内的字符,也可以用”-”指定一个字符集范围,如[1-3] [a-z] [A-Z]
ls text[1A]
text1 textA
ls text[1-3]
text1 text2 text3
显示当前目录:pwd
改变目录:cd (“..”表示当前目录的上一级目录,”.”代表当前目录,空或者”~”代表用户主目录)
列出目录内容:ls
默认情况:目录为绿色,普通文件为黑色,可执行文件为草绿色,连接文件为浅蓝色
-F 在目录后加上/,可执行文件加*,连接文件夹@,这个选项在某些无法显示颜色的终端上会比较有用
-a 显示所有文件,隐含文件前面带.
-l 详细信息
可组合使用以上参数
ls跟路径名可查看子目录内容
列出目录内容:dir和vdir
比ls功能少,很少用了
vdir相当于ls -l
查看文本文件:cat和more
cat可跟多个文件名,-n在每行前显示行号
more 按空格向下翻一页,按enter向下滚动一行 按Q键退出
阅读文件的开头和结尾:head和tail
head -n 2 一个或多个文件名 头2行
tail -n 3 一个或多个文件名 尾3行
less 和more类似,比more强大,改进了more的很多细节,并添加了很多特性
less在屏幕底部显示一个冒号,等待用户输入命令,按空格,向下翻一页,按B,向上翻一页,也可以用光标前后左右移动
/内容 高亮显示查找的内容 要继续查找相同的内容,再次输入/ 按回车
-M 可以显示更多的文件信息
查找文件内容:grep
grep 内容 文件名
查找文件位置:find
find /usr/bin/ -name zip -print
/usr/bin/zip
制定的目录,find会进入子目录查询(无权限进入的目录跳过),-name制定文件名,可以使用通配符,-print打印 会打印出绝对路径
-type制定文件类型
find /var/ -name xx -type d -print
-type选项得参数有b(块文件设备),c(字符设备文件),d(目录文件),f(普通文件),p(命名管道),l(符号链接)
-atime n 最后一次使用(access)在n天前的文件
-mtime n 最后一次修改(modify)在n天前的文件
实际很难确定n的大小,可以用+n表示大于n,-n表示小于n
find /usr/bin/ -type f -atime +100 -print
find . -type f -mtime -1 -print
更快定位文件:locate
locate *.doc
从终端运行程序
firefox 启动firebox
firefox & 后台运行
查找特定程序:whereis
whereis find
find:/usr/bin/find /usr/share/man/man1/find.1.gz
-b只查找二进制可执行文件
whereis -b find
find:/usr/bin/find
who 谁登陆了,whoami我是谁,uname系统版本信息 -a有用的信息,-r内核版本信息
需求帮助:man
man find
获取命令简介:whatis和apropos
whatis uname man有时太罗嗦,用whatis简单介绍
apropos相反,用于通过手册反查某个命令
如果要搜索一个文件,但又不知道命令,可以用
apropos search 将命令简介(whatis的输出)中包含search的条目全部列出来
第6章:文件目录管理
linux用正斜杠/来表示目录
建立目录:mkdir 一个或多个目录名
mkdir document picture
mkdir /root/xx/yy 如果xx不存在会报错,-p选项会建立完整的目录,解决此问题
建立一个空文件:touch
touch xx
还可以更新一个存在的文件的建立日期和时间
移动和重命名:mv
移动时重名文件将被覆盖掉,-i显示提示是否覆盖,-b自动将同名文件的文件名加一个”~”
重命名实际就是将文件在同一个目录里移动
mv准确描述应该为:可以在移动文件和目录的同时对其重命名
复制文件和目录:cp
cp test.php test/
-i ,-b作用同上mv的参数作用,-r复制目录和它里面的内容(不带会出现ommiting)
删除目录和文件:rmdir和rm
rmdir删除目录,因为删除文件是另外一个命令rm,所有rmdir只能删除空目录
rm同样可以删除目录,比rmdir更高效,所有rmdir很少使用
rm test/*.php
rm是永久删除,用rm要谨慎,特别是用root账号
-i 同上还是给提示,对于只读文件,不带-i也会提示
-f 避免提示,直接删除
-r 递归删除
文件和目录的权限
ls -l的内容里 第一个是 – 表示是文件,d表示目录 查看目录属性 ls -ld /etc/
权限:r=4 w=2 x=1 rwxrwxrwx:777
改变文件所有权:chown
chown [option] … [owner][:[group]] file …
这条命令将文件file的属主改成owner,属组改成group。
chown lewis:root xx 把文件xx的属主改成lewis,属组改成root组
如果只要更改属主,可以省略:group
chown :nobody xx 只改文件的属组(只改属组有单独的命令chgrp) chgrp nobody xx
-R递归更改目录及以下所有文件
改变文件权限:chmod
该命令可使用”用户组+/-权限”,用户组包括文件属主u,文件属组g,其他人o和所有人a,权限包括r,w,x
chmod u+x days 增加属主对文件days的执行权限
chmod a-x days 删除所有人对文件days的执行权限
还可以通过”用户组=权限”
chmod ug=rw,o=r days 给属主和属组读写权限,其他读取权限
还可以通过”用户组1=用户组2″
chmod o=u days 将其他人的权限设置成跟属主的权限一样
建立链接:ln
链接文件用ls -l查看 前面是l
符号链接(软链接):ln -s target link_name 相当于快捷方式
硬链接:ln target link_name 直接引用 改动会改变内容
输出重定向:> 追加 >>
输入重定向:<
cat < days 可以直接用cat days
cat <<EOF 接受键盘输入,输入EOF告诉它输入结束
cat <<EOF >hello 以立即文档方式获取输入,再把cat的输出重定向到hello文件
管道:|
将一条命令的输出作为另外一条命令的输入
ls |grep xx
第7章:软件包管理
dpkg:
安装 dpkg -i xx.deb –force 忽略依赖包,只装这个包
查找 dpkg -l |grep xx dpkg -s xx(想知道xx软件向系统复制了哪些文件)
卸载 dpkg -r xx
rpm:
安装 rpm -ivh xx.deb –force 忽略依赖包 –nodeps 忽略错误
升级 rpm -Uvh xx.rmp
查找 rpm –query xx
卸载 rpm -e xx
查看已安装的软件包 rpm -q xx 全部 rpm -qa 结合管道 rpm -qa |grep xx
卸载依赖问题:
rpm -e -vv –test xx test选项要求rpm模拟删除软件包全过程,不是真正的执行,选项-vv要求rpm输出完整的调试信息
apt:Advanced Package Tool
apt-get
install 下载安装软件包
upgrade 下载并安装在本系统上已有的软件包的最新版本
remove 卸载特定的软件包
source 下载特定的软件源代码
clean 删除所有已下载的包文件
man apt-get或者 apt-get -h 查看帮助
apt-cache
apt-get要求准确的软件包名字
apt-cache search xx 搜带xx字样的软件包
apt-cache depends xx 件包xx的依赖关系
配置apt-get:
安装源一般在/etc/apt/sources.list文本文件
deb http://xx.com hardy main restricted
deb-src http://xx.com hardy main restricted
rpm http://xx.com hardy main restricted
rpm-src http://xx.com hardy main restricted
软件包类型,src表示源代码(想想apt-get source) url表示地址 hardy等 表示软件包的发行版本和分类
图形化apt 系统–系统管理–新立得软件包管理器
其他的还有yum等
源码安装:
tar jxvf xx.tar.bz2
配置./configure –prefix=/usr/local/games/xx (将软件装在/usr/local目录是一个好习惯,这样可以与安装在/usr/目录下的系统工具分开),默认是默认位置
–enable-gui 配置启用图形界面(一般软件说明文件readme或者install有说明要开启什么)
编译
make
安装
make install 需要root权限
第8章:磁盘管理
ext2fs,ext2fs(日志功能),ReiserFS
swap交换分区,特殊的硬盘空间
挂载文件系统:
mkdir /mnt/xx
mount /dev/cdrom /mnt/xx
取出设备时,先退出挂载的目录,再unmout /dev/cdrom
设备:
每个设备都映射为一个特殊文件,存在于/dev 下
用户不能直接通过设备文件访问存储设备,必须先挂载到目录
-t 指定文件类型
-r -w 只读,可读写
-o 挂载形式
系统将硬盘挂载到/etc/fstab
硬盘使用情况:df
显示为:
文件系统 总大小 已用 可用 已用% 挂载点
df -t ext3 指定ext3文件系统
df –max-depth=1 -h 当前文件夹下文件夹列表及总大小
检查、修复文件系统:fsck
fsck -p 读取fstab确定检查哪些文件系统(硬盘启动会自动运行这个命令)
建立文件系统:mkfs(本身不执行建立工作,而是调用相关的程序),这些程序包括mkdosfs,mke2fs,mkfs.mini
-t 指定文件系统类型
mkfs -t ext3 /dev/sdb1 第二块硬盘的第一个分区格式化为ext3格式
-c检查指定的设备损坏情况
(必须先卸载unmout才能格式化)
USB设备:在linux下被认为是第一个没有被占用的scsi设备
一般会自动挂载,如果没检测到,可手动挂载
lsusb可查看检测到的usb设备
压缩工具:
gzip:
gzip aa.tar =>文件从aa.tar 变成了aa.tar.gz (或者理解为新文件产生,原文件被删除了)
打包并压缩:1.tar cvf aa 产生aa.tar 2.gzip aa.tar 产生了aa.tar.gz
以上2步相当于tar zcvf aa
如果将aa.tar.gz解压并解开打包 tar zxcf aa.tar.gz 这时会调用gunzip解压,tar的参数-x表示解压,后面会详解
gzip -l查看压缩过程,效果
gzip -d或者gunzip aa.tar.gz 解压文件 为aa.tar
gzip -t测试压缩文件的完整性 没有损坏不显示任何东西,若要显示东西,用-tv,没损坏会显示ok
bzip2(比gzip更高压缩率的格式):
用法跟gzip相同
bzip2 文件名 压缩
bzip2 -d 或者bunzip2 文件名 解压
bzip2 -tv 测试完整
如果aa.tar.bz2 被改成了aa.tar.xx解压后为aa.tar.out
rar:
rar x aa.rar 解压rar文件
tar打包工具:多个参数可以连写,-可以省略
tar -cvf shell.tar shell/ 打包目录shell下所有为shell.tar
-c指导tar创建归档文件
-v用于显示命令执行过程
-f用于指定归档文件的文件名
-w用于每次将单个文件加入(或者抽出)归档文件时征求用户意见?问Y或者N
-z调用gzip程序压缩归档文件
-j调用bzip2程序压缩归档文件
打包并调用gzip压缩:
tar cvf shell.tar shell/
gzip shell.tar
相当于
tar zcvf shell.tar.gz shell/
同样打包并用bzip2压缩:
tar jcvf shell.tar.bz2 shell/
解压只需c换成x
tar zxvf shell.tar.gz (zxvf之前见过很多一直没搞明白,哈哈)
tar jxvf shell.tar.bz2
懂了基本操作, 其他关于Lamp环境+svn的搭建,再了解一下shell语法,网上荡一个备份数据库的脚本,用crontab定时执行,php方面需要的基本的linux知识应该是够了!