ln -s src dust,连接
linux操作笔记
**********************************************************************************************
1。在windows下面将一个文件夹下面的所有文件用zip压缩,然后再linux下面,unzip xxx.zip文件就可以了
2。tar xzvf xxx.tar.gz解压缩在当前目录下。
***********************************************************************************************
压缩
比如一个world文件夹,就用
tar -cf libbak.tar world/*
来将其压缩为一个tar包,好像很多时候就用这样一个tar包就能行了。
然后再
gzip libbak.tar 将其压缩为.tar.gz包
然后就可以用
tar xzvf libbak.tar.gz 来解压缩这个包
解开多种压缩文件
)对于.tar结尾的文件
tar -xf all.tar
//
tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思
以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件
///
1) tar调用gzip
gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar
中使用-z这个参数来调用gzip。下面来举例说明一下:
# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz
# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。
///
1)对于.zip
linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,
依旧举例说明一下其用法:
# zip all.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
# unzip all.zip
这条命令是将all.zip中的所有文件解压出来
///
2)对于.rar
要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux
不是免费的;可从http://www.rarsoft.com/download.htm下载RAR for Linux 3.2.0,然后安装:
# tar -xzpvf rarlinux-3.2.0.tar.gz
# cd rar
# make
这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的
参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# rar a all *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加
到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来
/
********************************************************************************************
------------------------------------------------
linux: top 列出当前进程,和cpu占用率,q退出。
netstat -an|grep LIST 列出当前监听的端口
********************************************************************************************
[root@backup01 chongqing]# date
四 9月 16 09:33:14 CST 2004
执行date命令,得到当前日期,时间和年份等。
----------------------------------------------
[root@backup01 chongqing]# who
root pts/4 Sep 16 09:07 (210.78.136.34)
root pts/8 Sep 16 09:29 (210.78.136.34)
who命令显示所有当前正在使用unix系统的人或者说用户的列表
[root@backup01 root]# who
root pts/4 Sep 16 09:07 (210.78.136.34)
root pts/8 Sep 16 09:29 (210.78.136.34)
root pts/10 Sep 16 09:43 (210.78.136.34)
[root@backup01 root]# who am i
root pts/10 Sep 16 09:43 (210.78.136.34)
-------------------------------------------------------
shell为我们用户和unix系统之间提供了一个交互界面。它读取我们的
输入然后执行特定的程序。当程序执行时候,还显示命令的输出。
而且,shell不仅仅是一个命令解析器还是一种功能强大的程序设计语言。
包括条件语句,循环和函数。
--------------------------------------------------------
*********************************************************************************************
/
在Linux下如何查找文件?
1. 在当前路径查找文件名为*.sql的文件,代码如下:
$ find . -name "*.sql"
2. 查找大于100MB的文件,代码如下:
$ find . -size +100000
后面的数字的单位是KB。
3. 查找含有print的文件,代码如下:
$ find . -name "*" -exec grep -l "print" {} /
4. 查找并删除tmp*的文件,代码如下:
$ find . -name "tmp*" -exec rm {} /
5. 查找7天内没有修改过的文件,代码如下:
$ find . -mtime +7:
//
如何将文件备份、打包?
1.用tar打包
将指定文件(目录)打包,可使用如下代码:
$ tar cvf 包名 文件(或者目录)列表
例如将/usr/local/var目录的内容打包到var.tar,可以操作如下:
$ tar cvf var.tar /usr/local/var
如果要查看包中文件的内容,可以使用如下代码:
$ tar tvf var.tar 将列出var.tar中文件的内容
展开包的内容时,操作如下:
$ tar xvf var.tar
向已经打好的包中增加文件时,可做如下操作:
$ tar rf 包名 要添加的文件列表
例如将当前目录下的所有.sql文件加入var.tar,可用以下代码实现:
$ tar rf var.tar *.sql
2.用gzip打包
压缩文件时(如将var.tar压缩),可使用如下命令:
$ gzip var.tar
压缩后的包名为var.tar.gz。
解压可用如下代码:
$ gzip -d var.tar.gz
或者:
$ gunzip var.tar.gz
tar可调用gzip将压缩文件解压并展开。比如,将var.tar.gz解压并展开到当前目录,可使用如下命令:
$ tar zxvf var.tar.gz
其中的z选项表示调用gzip。
///
在Linux下如何获得命令帮助?
答:可使用man、info实现。将man的信息保存到文件的代码:
$ man 命令 | col -b > 保存的文件名
例如,将cp的命令保存到文件cp.txt,代码如下:
$ man cp | col -b > cp.txt
如何查看硬盘使用情况?
答:可以使用df命令,代码如下:
$ df -m
其中m表示按M显示各个分区使用情况。可以使用du查看某个目录占用的空间,代码如下:
$ du -sm
或者查看/usr目录占用的空间(单位为MB),代码如下:
$ du -sm /usr
//
答:较为常用的文字编辑工具是vim,在Linux中缺省安装。vim的一些用法如下。
1. 打开/关闭语法颜色,设置如下:
syn on/syn off
2. 复制指定的区域内容
复制到开始处:mk。
复制到结尾:"ay'k。此时已经将指定的内容压到缓冲区a中。
复制到目标:"ap。这里表示将"a的内容粘贴到当前位置。
3. 查找替换
将文件的所有abc替换为d,代码如下:
%s/abc/def
将第一行到30替换,并且不区分abc的大小写,代码如下:
1,30s/abc/def/i
4. 同时编辑两个文件,代码如下:
vi file1 file2
用:n、:N在两个文件之间切换。
5. 快速移动光标
用w、b实现向前/后移动一个单词;用Ctrl+d和Ctrl+u可实现向后/前翻半页。
如何在Linux下进行文字编辑工作?
如何设置颜色?
答:修改$HOME/.bashrc文件,加入如下代码:
alias ls="ls --color"
然后使用如下代码使修改立即生效:
$ source .bashrc
Linux中常见的颜色含义为:蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝
色表示链接文件;灰色表示其它文件。
************************************************************************************************
经验之谈:
grep view $(ls -F|grep //|grep -v u) * -r
可以搜索排除某个目录下的关键字
************************************************************************************************
2004-09-21 下午的一些笔记:
1。shell得初始化过程:
通过一个initialization的进程来定义一些shell命令所需要的一些参数
1。首先检查/ect/profile文件是否存在
2。如果存在,shell就读取该文件。
3。接着shell检查主目录下面的.profile(.bash_profile, .profile)文件是否存在。
4。如果存在,shell就读取该文件,否则,跳过
以上步骤执行完毕之后,显示提示符。Bourne shell默认的提示符为$
2.启动文件.profile饱含了shell初始化过程的所有设置:
主要包含:
置放命令的目录列表
置放命令手册的目录列表。
3.交互和非交互式shell:
shell只能在两种方式下运行,交互 和 非交互
交互:读入输入并执行指定的命令
非交互:读入命令,存放文件中,然后执行,文件结束,退出。
************************************************************************************************
2004-09-22
1。输入输出:
。输出重定向:
捕捉一个命令的输出并存储在文件中。
$ { date; uptime; who; } > mylog
$ cat mylog
三 9月 22 11:37:03 CST 2004
11:37:03 up 4 min, 1 user, load average: 0.04, 0.12, 0.06
root pts/0 Sep 22 11:36 (192.168.0.62)
。追加到文件:
输出追加到文件,操作符 >>
。输出重定向到文件和屏幕:
cmd | tee file
如:
$ date | tee now
将在屏幕输入date结果,并写入文件now中。
2,输入:
。来自文件的输入重定向:
。从用户那里读取输入:
。重定向一个命令的输出到另一个命令的输入:
* 输入重定向:
cmd < file
file的内容作为命令cmd的输入
标准错误:用来输出错误信息的特殊类型的输出,其文件描述符为 2
标准输入:用户通常从标准输入读取输入信息,其文件描述符为 0
标准输出:脚本通常将正常信息输出到标准输出,其文件描述符为 1 ,经常被默认省略
* 重定向标准输出和标准错误到单独的文件:
如:
ln -s ch05.doc ./docs >> /tmp/ln.log 2> /dev/null
ln的STDOUT被追加到文件/tmp/ln.log,STDERR被重定向到文件/dev/null,
出错信息被丢弃。
注意这里的标准输出文件描述符 1 被省略。
-------------------------------------------------------------------------------
使用精简的linux系统效率会提高吗?
1.根据自己的需要,重新配置编译内核,把不用的去掉,这样会提高效率
2.关注!!! 如何自己定制系统很重要。 如果才能做到单纯的数据库服务器。
必要的内核+shell(只要一个shell)+必要的库和编译器 +数据库(mysql 或者oracle 这是目标)
3.原来是把linux当成windows,以为装多东西了一定就慢了,删了就快了,呵呵,这没有必然的联系
4.估计问题还是出在线程库
rh fc2的线程库是nptl,而你自己做的很有可能还是老的linuxthreads
nptl在线程的创建切换时候相比于linuxthreads有近600%的提升
-------------------------------------------------------------------------------
* 操作文件属性:
- 常规文件
l 符号连接
c 字符设备文件
b 块设备文件
p 命名管道
d 目录文件
如:$ ls -ld /xxx/xxx
$ file xxxx
file指令可以得到该文件的详细信息,如下:
[root@localhost pikenv]# file startup.sh
startup.sh: Bourne-Again shell script text executable
[root@localhost pikenv]# file pikenv.jsp
pikenv.jsp: ISO-8859 C program text
***************************************************************************************
2004-09-23:
第七章:进程
如ls命令列出目录内容,系统就开始了一段进程。
UNIX通过一个5位数字的进程标示符来跟踪进程,同一个系统中每一个进程都有唯一的一个进程标示符
从1到32767,周而复始。同一个系统不可能出现两个相同的进程标示符的。
不用等待一个进程结束后才开始下一个进程,UNIX通过后台进程提供便利。可以悬挂前台进程同时执行
后台进程,并且在前后台进程之间进行切换。
*后台进程:
输入前台命令,然后+&,切换到后台,
或者前台命令,然后Ctrl+Z,切换到后台。
bg,切换到后台继续执行该进程,fg,切换到前台。
fg,默认是最近一次的后台切换,可在fg后面加上任务号,将其调出。
* 察看那些进程被悬挂,那些进程在后台运行,用 jobs 命令。
或者用 ps 命令也可以。
* 关闭进程:kill
kill 任务号
或者 kill 进程标示符
* 父进程和子进程
ps -cf
******** SHELL 编程 ***********************************************************************************
第八章:变量
*shell编程中,使用两种变量:
标量变量:一次只能被赋予一个值
数组变量:可以被赋予多重值
1。标量变量:
定义格式:
name = value
*访问变量:用美元符号$来访问变量的值,但不能定义或分配变量值。
2。数组变量:
--------------------------------------------------------------------
察看SHELL版本:
[root@localhost xiakexing]# echo $BASH
$BASH $BASH_ENV $BASH_VERSINFO $BASH_VERSION
[root@localhost xiakexing]# echo $BASH_VERSION
2.05b.0(1)-release
[root@localhost xiakexing]#
--------------------------------------------------------------------
BASH版本在2。0以下的,不支持数组变量。
* 建立数组变量:
name[index] = value
初始化:
name = (value1 ... valueN);
* 在bash中设定多重数组元素,需要在值之前建立一个数组索引:
如:myarray = ([0]=derri [3]=gene [2]=mike [1]=terry)
数组索引不必按照顺序。
* 访问数组的值:
如:${name[index]}
访问数组中所有项目:${name[*]}
${name[@]}
* 只读变量:
指一个变量的值在被定义了之后,就不能再更改。
如:
$FRUIT=kiwi
$readonly FRUIT
$echo $FRUIT
kiwi
* 删除变量:
unset name
只读变量无法删除,等shell退出之后才消失
*******************************************************************************
环境和SHELL变量
输出环境变量:
export name
标准语法输出变量:name = value ; export name
shell变量:
*******************************************************************************
置换:
通配符 意义
* 匹配0个或多个任意字符
? 匹配1个任意字符
[characters] 匹配给定的characters中的任何一个字符
----------------------------------------------------------------------------
变量置换:
缺省值置换 ${param:-word}
缺省值赋值 ${param:=word}
空值错误 ${param:?msg}
有值置换 ${param:+word}
----------------------------------------------------------------------------