Linux常用命令(更新ING)

1.怎样查看某一个目录的所有的符号连接

[symlinks说明]
作用:检查并列出目录中的符号链接信息
[root@book ~]# symlinks /usr/bin/
absolute: /usr/bin/etags ->; /etc/alternatives/etags
absolute: /usr/bin/lpq ->; /etc/alternatives/print-lpq

 

 

链接类型: 符号链接位置 ->; 源文件的位置
链接类型说明:
absolute: 符号链接使用了绝对路径。 这类符号链接可能会因为载入点的改变而无法使用
dangling: 源文件已不存在
lengthy: 符号链接的路径中包含了多余的../
messy: 符号链接的路径中包含了多余的/
other_fs: 源文件位于其他文件系统中
relative: 符号链接使用了相对路径

参数:
-c 将使用绝对路径的符号链接转换为相对路径
-d 删除dangling类型的符号链接
-r 递归检查目录及子目录下的符号链接
-s 检查lengthy类型的符号链接
-t 与-c一并使用时,会显示如何将绝对路径的符号链接转换为相对路径,但不会实际转换
-v 显示所有类型的符号链接。若不用-v参数,则默认不会显示relative类型的符号链接

2.linux解压 tar命令

(http://www.21andy.com/blog/20060820/389.html/?article2pdf=1 )

tar命令

tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
   『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]#
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/" from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

 

3.使用Screen创建虚拟终端避免Linux远程断线

维护Linux的ssh工具在使用中,一旦遇到网络中断,则当前的shell就会自动关闭
当前的工作进度就会丢失,这对于远程升级等比较耗费时间的工作是非常不利的
对于远程调适代码也是很不可靠不安全的
为此,可以使用screen这个工具来解决这个问题。

对于最小化的linux,通常screen是不包含在系统内的。
需要查找操作系统的安装光盘,例如对于AS4update4
在其中的CD4.iso里边可找到screen-4.0.2-5.i386.rpm
到服务器上执行rpm -ivh screen-4.0.2-5.i386.rpm即可安装完成

打开一个ssh终端,执行screen,并回车,即可创建了一个新的虚拟终端
此时在上边执行的程序,如果遇到服务器断线是不会中断的,依然会在后台运行
当新的ssh连接到服务器后,执行screen -x 就可以连接到刚才的终端了

此外,利用screen建立的终端,还具有实时演示的效果。
比如两个用户A和B,分别从北京和上海使用SSH连接到一个服务器
A先执行Screen建立好虚拟终端,B执行screen -x连接上来
这时候的虚拟终端是唯一的,就像二人都在显示器前一样
A键入的命令和显示的结果,B都可以实施看到
B键入的命令和输入结果,A也可以实施看到
因此,利用Screen,还可以进行远程操作演示、培训等

注意:
1) 如果多次执行screen,则会建立多个虚拟终端。
当执行screen -x的时候,则会被询问,要连接到哪一个虚拟终端,如下所示:

[root@idc root]# screen -x
There are several suitable screens on:
1408.pts-0.idc (Attached)
1382.pts-4.idc (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
[root@idc root]#

这个时候,要执行screen -x <终端名>,就可以连接到需要的终端,例如
screen -x 1382.pts-4.idc,即可连接到名为1382.pts-4.idc的虚拟终端上。

2) 退出虚拟终端的方法:首先用screen -x连接到终端,然后执行exit即可退出当前终端。

4.linux加ip或网卡的方法

4.1linux 加ip的方法:

cd /etc/sysconfig/network-scripts
ls ifcfg-eth0*
可以看到有
ifcfg-eth0
如果以前配过别的ip,可能会有
ifcfg-eth0:0
ifcfg-eth0:1
等等
如果没有,就编辑一个ifcfg-eth0:0的文件,如果有,就在最大数上加一。文件内容:
IPADDR="192.168.0.10"
NETMASK=""
IPADDR就是要加的新的IP,如果有多个连续IP,可以写成:
IPADDR="192.168.0.10-11"
NETMASK=""

文件编辑完之后,运行:
/etc/init.d/network reload

用ifconfig看新的IP是否已经加上。


4.2如果是为第二块网卡配IP,在/etc/sysconfig/network-scripts目录下编辑一个ifcfg-eth1的文件:

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

修改一下IPADDR,NETMASK和GATEWAY的参数。

运行:

/etc/init.d/network reload

用ifconfig看新的IP是否已经加上。

4.2如果为Debian系统,则如下:

IP Address (/etc/network/interfaces)
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.18.4
netmask 255.255.255.0
gateway 192.168.18.1

 

修改好后可能需要执行:
#/etc/init.d/networking restart
甚至是重启。

5.如何操作linux系统服务

用/sbin/chkconfig命令 chkconfig --list 查看全部服务状态
例如:
运行chkconfig --list httpd
看自动启动状态
httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
0~6是指运行级别,一般服务器都运行在3这个级别上。

添加为自动启动
chkconfig --add httpd
或者指定运行级别
chkconfig --level 345 httpd on

停止自动启动
chkconfig --del httpd
或指定运行级别
chkconfig --level 345 httpd off

 

6.如何更改主机名

假设要将主机名修改为NEW_HOSTNAME
/etc/hosts
/etc/sysconfig/network
hostname NEW_HOSTNAME
/etc/init.d/network reload

7.linux的cp命令

 

cp命令
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

该命令的各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d 拷贝时保留链接。

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只是链接文件。

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

例子:
Cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认。)

cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.

cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.

cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名为file2

cp -r dir1 dir2 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2

 

你可能感兴趣的:(linux,Debian,ssh,F#,bash)