Linux日知录(常用问题笔记)

http://blog.csdn.net/yizhu2000/article/details/70688420)序言

日有一知,当有一录,自09年来,工作所需,接触开源平台,对Linux常有涉猎,其间问题,记录在案,虽为敝帚,不敢自珍,所记条目,并未严格整理,但愿于后来者有所裨益.

1)常用

查看某个命令的路径

which:查看某个命令的路径,该命令在PATH变量配置的路径中寻找命令,并给出第一个查询结果返回

查看用户信息的几种方法

finger

id

groups

删除目录

目录为空,可以用 rmdir 删除 如果目录不为空,可以用rm -rf 删除

创建符号链接(快捷方式)

ln -s {target-filename} {symbolic-filename}

For example create softlink for /webroot/home/httpd/test.com/index.php as /home/vivek/index.php, enter the following command:
ln -s /webroot/home/httpd/test.com/index.php /home/vivek/index.php
ls -l

查看系统启动日志

dmesg | more

grep

忽略大小写

grep -i

随机产生网卡地址

#!/bin/sh
exec 2>/dev/null
dd if=/dev/urandom bs=1 count=6 | od -t x1 | sed ‘2d;s/^0\+ //;s/ /:/g‘

添加path变量的三种方法

1)修改/etc/profile文件,此修改对全局用户有效

2)修改.bashrc文件,可以精确到用户(只对当前用户有效)

3)直接在shell下加入变量,shell退出则失效

按照时间顺序列出文件

ls –t

按照时间逆序列出文件(新文件在后)

ls –rt (r 代表reverse意,可以逆转所有排序)

ls在当前目录下查找某个文件,但不列出子文件夹中的内容

ls –d "pattern"

拷贝一个目录下的所有文件

cp -R

修改fstab后如何不重启加载所有文件系统

mount –a

移动文件夹

mv src dest

查看linux版本

1. 查看内核版本命令: 
  1) [[email protected] ~]# cat /proc/version 
   Linux version 2.6.9-22.ELsmp ([email protected]) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 
  2) [[email protected] ~]# uname -a 
  Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux 
  3) [[email protected] ~]# uname -r 
  2.6.9-22.ELsmp 
  2. 查看linux版本: 
  1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如: 
  [[email protected] ~]# [[email protected] ~]# lsb_release -a 
  LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0- 
  ia32:graphics-3.0-noarch 
  Distributor ID: RedHatEnterpriseAS 
  Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 2) 
  Release: 4 
  Codename: NahantUpdate2 
  注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。 
  2) 登录到linux执行cat /etc/issue,例如如下: 
  [[email protected] ~]# cat /etc/issue 
  Red Hat Enterprise Linux AS release 4 (Nahant Update 2) 
  Kernel \r on an \m 
  3) 登录到linux执行cat /etc/redhat-release ,例如如下: 
  [[email protected] ~]# cat /etc/redhat-release 
  Red Hat Enterprise Linux AS release 4 (Nahant Update 2) 
  注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1 
  4)登录到linux执行rpm -q redhat-release ,例如如下: 
  [[email protected] ~]# rpm -q redhat-release 
  redhat-release-4AS-3 
  注:这种方式下可看到一个所谓的release号,比如上边的例子是3 
  这个release号和实际的版本之间存在一定的对应关系,如下: 
  redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3 
  redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4 
  redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4 
  redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1 
  redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2 
  redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3 
  redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4 
  另:第3)、4)两种方法只对Redhat Linux有效。

2)启动相关

如何自动mount

添加开机启动后自动mount的文件系统,可以通过在fstab中添加项完成,比如添加一个windows的共享连接

修改fstab后如何不重启加载所有文件系统

mount –a

添加一个需要在启动时运行的服务:

方法一:在rc3.d中创建一个link

方法二:在rc.local中加入启动项

init.d,rc[X].d 目录关系

在这个目录下的档案都是连结档,均指向到 /etc/rc.d/init.d 这个目录下,而这个 /etc/rc.d/init.d 目录则是以 Linux 的 rpm 安装方法时,设定一些服务的启动目录。举个例子来说,如果你要重新启动 sendmail 的话,而且你的 sendmail 是以 rpm 来安装的,那么下达 /etc/rc.d/init.d/sendmail restart 就可以直接启动 sendmail 啰!所以你即可知道 /etc/rc.d/init.d 里面档案的主要功能!因此,当你的 run-level 内的 scripts 要启动哪写服务呢,呵呵!就将档案连结到该 init.d 目录下的档案并加以启动即可啰!也就是说『当你以 文字模式 ( run-level=3 ) 启动 Linux 时,你的系统在经过 BIOS、 MBR、 Kernel、 init、/etc/rc.d/rc.sysinit 之后,就会进入 /etc/rc.d/rc3.d 来启动一些服务』啰!不过,需要注意的是,在 rc3.d (或其它目录下 rc0.d ~ rc6.d )目录中 S 开头的档案为执行该服务, K 为开头的档案则是杀掉该服务的意思。那么那些数字代表的意义为何?那就是启动的顺序啦!例如S12syslog 会比S90crond 更早被执行呢!那么为什么要有这些顺序呢?这是有原因的!例如您的主机有要启动 WWW 好了,那么您的网络设定应该要先启动才对吧!所以啰,如果 WWW 先启动,才驱动网络,那么 WWW 自然就一定起不来啦!所以各项服务的启动顺序也是相当重要的!目前 Mandrake 当中,可以使用 chkconfig 来设定开机要启动的服务选项呢!

3)性能相关

查看内存信息

cat /proc/meminfo 查看内存信息

查看系统磁盘的用量

df 命令可以

df –h ,使得展现结果易于人阅读带单位,比如将15176390,写为15G

4)目录权限

-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
当执行ls -l 或 ls -al 命令后显示的结果中,最前面的第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录:
    d:表示是个目录,事实上在ext2fs中,目录是个特别的文件。
    -:表示这是个普通的文件。
    l: 表示这是个符号链接文件,实际上他指向另一个文件。
    b、c:分别表示区块设备和其他的外围设备,是特别类型的文件。
    s、p:这些文件关系到系统的
数据结构
和管道,通常非常少见到。
下面周详介绍一下权限的种类和设置权限的方法。
二、一般权限
第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示和所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有
浏览
目 录的权限。
w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
-:表示不具有该项权限。

5)软件安装

tar.gz的通用安装步骤

tar –xzf:解压缩

./configuration:生成make文件,一般通过prefix参数来配置目标路径

make:编译

make install:安装

查找用rpm安装的***程序集路径

rpm –qa | grep ***

查看是否安装某软件包

rpm –q 包名称

查找用rpm安装的***程序集路径

rpm –qa | grep ***

使用apt安装

sudo apt install apache2 mysql5

相关介绍

The Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants.[2] APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from binary files or by compiling source code.[2]

6)网络相关

查看本机服务端口

netstat –tln

查看某端口对应的程序

lsof –i: 80,或者netstat –anp | grep 端口

关闭防火墙

/etc/rc.d/init.d/iptables stop

打开防火墙

/etc/rc.d/init.d/iptables start

查看当iptable前配置

:iptables –L

抓包与包分析

:tcpdump –i eth1 host XXX.XXX.XXX.XXX and port 80

其他命令如下

tcpdump 的抓包保存到文件的命令参数是-w xxx.cap
抓eth1的包 
tcpdump -i eth1 -w /tmp/xxx.cap 
抓 192.168.1.123的包 
tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 
抓192.168.1.123的80端口的包 
tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap 
抓192.168.1.123的icmp的包 
tcpdump -i eth1 host 192.168.1.123 and icmp -w /tmp/xxx.cap 
抓192.168.1.123的80端口和110和25以外的其他端口的包 
tcpdump -i eth1 host 192.168.1.123 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap 
抓vlan 1的包 
tcpdump -i eth1 port 80 and vlan 1 -w /tmp/xxx.cap 
抓pppoe的密码 
tcpdump -i eth1 pppoes -w /tmp/xxx.cap 
以100m大小分割保存文件, 超过100m另开一个文件 -C 100m 
抓10000个包后退出 -c 10000 
后台抓包, 控制台退出也不会影响: 
nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap & 
抓下来的文件可以直接用ethereal 或者wireshark打开。 wireshark就是新版的ethereal

在Linux的系统下如何才能修改IP信息

以前总是用ifconfig修改,重启后总是得重做。如果修改配置文件,就不用那么麻烦了~

A、修改ip地址

即时生效:

# ifconfig eth0 192.168.0.20 netmask 255.255.255.0

启动生效:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

B、修改default gateway

即时生效:

# route add default gw 192.168.0.254

启动生效:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

C、修改dns

修改/etc/resolv.conf

修改后可即时生效,启动同样有效

D、修改host name

即时生效:

# hostname fc2

启动生效:

修改/etc/sysconfig/network

新启动网络配置

/etc/init.d/network restart

注意:修改机器名后,一般需要修改hosts(/etc/hosts)文件,添加机器名对应的ip

前提: Redhat 系统

ip, 掩码:

编辑 /etc/sysconfig/network-script/ifcfg-eth0 
IPADDR=192.168.0.1 
NETMASK=255.255.255.0

网关:

编辑 /etc/sysconfig/network 
NETWORKING=yes 
HOSTNAME=xx 
GATEWAY=192.168.0.100 
DNS:

编辑 /etc/resolv.conf 
NAMESERVER=202.96.209.5 
注意:上述IP地址都要改成与你的网络配置相对应的IP地址。

7)VI

vim:undo和redo

:u(撤销操作数)

Ctrl+R

vi查找:

命令状态输入/pattern2search,继续查找直接按n

vi粘贴:p

vi剪切:[number]dd或者d[number]d,,number表示要剪切几行

vi拷贝:[number]yy,number是行数

移动到段尾首尾{}

Shift+g移动到文档末尾

d l 删除当前字符(与x命令功能相同) 
d 0 删除到某一行的开始位置 
d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符) 
d w 删除到某个单词的结尾位置 
d 3 w 删除到第三个单词的结尾位置 
d b 删除到某个单词的开始位置 
d W 删除到某个以空格作为分隔符的单词的结尾位置 
d B 删除到某个以空格作为分隔符的单词的开始位置

8)常用目录作用

/bin 存放使用者最长用的命令,如:cp、ls、cat,等等。 
/boot 启动linux时使用的一些核心文件。 
/dev 是device(设备)的缩写,这个目录下是所有linux的外围设备。 D:\document\Chat\MyIM\MyIM\bin\Release
/etc 这个目录用来存放系统管理所需要的配置文件和子目录。 
/home 用户的主目录,比如说有个用户叫wang,那他的目录就是/home/wang也可以用~wang来表示。 
/lib 这个目录是存放着系统最基本的动态连接库,几乎所有的应用程序都须用这些共享库。 
/lost+found 这个目录平时是空的,当系统不正常关机后,这里就是一些无家可归文件的避难所。 
/mnt 这个目录是空的,系统提供这个目录是让用户临时挂接别的文件系统。 
/proc 这个目录是一个虚拟目录,它是系统内存映射,我们可以直接通过访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存中。 
/root 系统管理员(root)的主目录,作为系统的拥有者的特权。 
/sbin s就是super user的意义,也就是说这里存放的是系统管理员使用的管理程序。 
/tmp 这个目录是存放一些临时文件的地方。 
/usr 我们用到的应用程序的文件几乎都存放这个目录下:/usr/X11R6存放X_Window的目录;/usr/bin存放着许多应用程序;/usr /sbin给超级用户使用的一些管理程序就放在这个里面;/usr/include开发和编译应用程序所需的头文件;/usr/lib存放一些常用的动态连接共享库和静态归档案库;/usr/local这是提供给一般用户的/usr目录,在这里安装软件最合适。/usr/man存放帮助文档。/usr /src开放的源代码就存在这个目录下。 
/var 这个目录存放那些不断扩充的东西,为了保持usr的相对稳定,那些才、经常被修改的目录可以放在这个目录下,如/var/log日志文件。

9)其他

关于输入输出"<" ">"的意义

cat x y 1> hold 2>&1

结果就是将标准+错误输出到hold;

cat x y 2>&1 1> hold 则是将错误输出重定向到标准输出,而将标准定向到hold。所以错误输出不会进入hold,因为被定向到标准输出。

赋值关系

(1) 1 = hold , 2 += 1;

(2) 2 += 1 , 1 = hold。

Shell脚本相关

shift:将命令行变量列表的第一个变量删除,第二个变量变为第一位,可理解为变量列表头指针移动一位

daemon 语句 和& 符号可以将程序变为后台输出

10)虚拟机安装Linux的一些问题

虚拟机安装花屏调整分辨率

VitualPC有时安装Linux后,进入图形界面会产生花屏,此时需要跳转到命令行模式,调整Xwin的参数,方法如下

启动时,Linux会在加载各启动项前,提示通过键入‘I‘是否进入交互加载模式(interactive)模式,此时键入I,进入交互模式,逐一手动允许系统项,禁止系统启动xwin

进入命令行模式后,进入/etc/X11/目录,修改X11配置文件中的分辨率,色深等,修改完成后重新启动即可

Linux新版本??内核在装入VirtualPC虚拟机时会出现鼠标不能捕获的问题,可以通过修改grub.conf中内核参数来修正

定位到kernel

在其行末尾添加 i8042.noloop

kernel /vmiluz******* ro root=LABEL=/ *** i8042.noloop

Windows 2008远程桌面,消除只允许一个用户登录限制

http://vanderbiest.org/blog/2010/08/16/multiple-rdp-sessions-in-windows-2008-r2/

12)CollnetSVN 1.1.0 x86 Linux 安装

下载CollnetSVN文件

cp 到安装目录

切换用户到一个普通用户su somebody(一定不能是root,如果实在没有用户,可以用adduser 添加一个,再用passwd username 去修改这个用户的密码)

tar –zxf 解压缩

用刚才这个普通用户的身份运行csvn/bin/csvn start 以及 csvn/bin/csvn-httpd start(一定不能用root)

可以将csvn-httpd添加到启动项,方法是ln –s /csvn/bin/csvn-httpd S99csvn_httpd,重启系统就能看到启动时加载此服务

11)httpd

apache配置转发

<VirtualHost *:80>
    ProxyPreserveHost On
    ServerAdmin [email protected]
    ServerName search.cd-host.net
    DefaultLanguage zh-CN
    AddDefaultCharset utf-8
    ProxyPass /  http://www.missworld.cn:8888/
    ProxyPassReverse /  http://www.missworld.cn:8888/
</VirtualHost>

启动light httpd自带的fastcgi:spawn

/usr/local/webserver/php/bin/spawn-fcgi -a 127.0.0.1 -p 10080 -C 64 -u www -f /usr/local/webserver/php/bin/php-cgi

时间: 2024-10-16 07:04:56

Linux日知录(常用问题笔记)的相关文章

大数据日知录:架构与算法 笔记

大数据日知录:架构与算法 跳转至: 导航. 搜索 目录 1 当谈论大数据时我们在谈论什么 2 数据分片与路由 3 数据复制与一致性 4 大数据常用算法与数据结构 5 集群资源管理与调度 6 分布式协调系统 7 分布式通信 8 数据通道 9 分布式文件系统 10 内存KV 11 列式数据库 12 大规模批处理 13 流式计算 14 交互式数据分析 15 图数据库 16 机器学习:范型与架构 17 机器学习:分布式算法* 18 增量计算 19 附录A 硬件体系结构及常用性能指标 20 附录B 大数据

大数据日知录:架构与算法

大数据丛书 大数据日知录:架构与算法(大数据领域专家力作,专注大数据架构和算法,全面梳理大数据相关技术) 张俊林 著   ISBN 978-7-121-24153-6 2014年9月出版 定价:69.00元 404页 16开 编辑推荐 这是一本心血之作,历时3年,质量上乘. 从架构与算法的角度,比较全面地分门别类梳理了大数据相关技术. 本书内容紧跟技术前沿,讲解深入浅出,适合大数据领域所有技术人员. 书中还列有作者优选的高质量文献,能为读者节省选择的时间,绝对值得一读. 内容提要 大数据是当前最

读&lt;大数据日知录:架构与算法&gt;有感

前一段时间, 一个老师建议我可以学学 '大数据' 和 '机器学习', 他说这必然是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有很深的认识, 总觉得它们是那么的缥缈, 高不可攀, 也没想着深入学习.之后, 一次偶然的机会, 在csdn官方博客上看到了这样的一个活动 [置顶] 话题讨论&征文--谈论大数据时我们在谈什么 于是, 从下载试读样章, 到正式读书, 开始了学习大数据的过程... 到今天, 差不多两周过去了, 马马虎虎过了一遍, 感触颇多. 下面简单评价下我

《大数据日知录:架构与算法》试读

时代背景 记得CSDN之前有篇文章描写叙述了大数据成功预測了美国大选,"大数据"并不真正关心谁来当选下一届美国总统.只是全部的数据都显示:政治科学家和其它人相关人士都觉得奥巴马获得连任可能性比較大.本次的成功预言,展示了大数据强大的能量. 众所周知.企业数据本身就蕴藏着价值.可是将实用的数据与没有价值的数据进行区分看起来可能是一个棘手的问题. 显然,您所掌握的人员情况.工资表和客户记录对于企业的运转至关重要.可是其它数据也拥有转化为价值的力量.一段记录人们怎样在您的商店浏览购物的视频.

[转载] leveldb日知录

原文: http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html 对leveldb非常好的一篇学习总结文章 郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的话可以一起讨论 Level

《大数据日知录:架构与算法》前言

   <大数据日知录:架构与算法>前言 像移动互联网.O2O.可穿戴设备等概念一样,"大数据"从甫一提出到飓风般席卷并风靡全球,从最初的技术名词到形成渗透各行各业的社会现象,所耗时间仅几年而已,其兴也勃焉. 那么,大数据是否会像很多曾经火热现在已难觅踪迹的流行概念一样,将来某日,人们静心抬眼,发现风已去而水波不兴,徒留夕阳下波光粼粼的涟漪,让人不禁哀叹其亡也忽焉? 本书的背景 目前看仿佛有此迹象,当一个概念火爆到从街头随便抓一个路人,他都能跟你滔滔不绝地侃侃而谈:当一个新名

LevelDb日知录之五:MemTable详解

[LevelDb日知录之五:MemTable详解] LevelDb日知录前述小节大致讲述了磁盘文件相关的重要静态结构,本小节讲述内存中的数据结构Memtable,Memtable在整个体系中的重要地位也不言而喻.总体而言,所有KV数据都是存储在Memtable,Immutable Memtable和SSTable中的,Immutable Memtable从结构上讲和Memtable是完全一样的,区别仅仅在于其是只读的,不允许写入操作,而Memtable则是允许写入和读取的.当Memtable写入

大数据日知录 - 算法与数据结构 - 1

Bloom Filter BF高教的表征数据集合,时间和空间效率极高.使用长度为m的位数组A来存储集合信息,使用k个相互独立的哈希函数将数据映射到为数组空间.对于集合中的成员a,将其进行k次哈希,哈希结果为x,则将位数组的第x位设置为1,最多有w<=k位会被设置为1. 如果需要判断某个成员是否在S中出现,只需要看hash国有w位中有没有出现0即可. BF会发生误判,不在集合中的数据被判定成了在集合中,因为a1和a2设置的位可能刚好覆盖了a3的所有哈希位.但不会发生错判. 最优的哈希函数个数为m/

【大数据日知录】集群资源管理与调度笔记

面对各种各样的服务需要的计算系统和框架,对于资源而言,常见的资源调度方法时静态划分方法,框架之间各行其是,但是利用效率低. 调度设计的基本问题: 资源具有异质性(有的机器配置高,有的低)所以要分成一个个小粒度的资源 数据局部性(移动计算而不是移动数据) 支持抢占资源 or not 分配资源粒度:全分or不分(MPI)  或者 增量满足式分配策略(MapReduce) 目前的发展将资源看成一个整体,上方抽象出一个资源调度系统. 常用的资源调度系统模型: 负责执行job的机器有一个节点管理器且可划分