Linux基础

上学时就学了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知识应该是够了!

此条目发表在 Linux 分类目录,贴了 , , , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>