首页 > 系统服务 > 详细

Linux学习笔记 by 小陌_09.29

时间:2015-09-29 14:57:08      阅读:164      评论:0      收藏:0      [点我收藏+]

一、linux目录管理和文件管理


1.创建目录

mkdir /home/test1

mkdir /root/test2


2.切换目录

cd /home/test1

cd /root/test2


3.查看路径

pwd


4.创建文件

touch /home/test1/file1

touch /root/test2/file2


5.显示文件列表

ls 

ls -a


6.复制文件和目录

cp /home/test1/file1 /root/test2


7.删除文件

rm /home/test1/file1


8.删除目录

rmdir /home/test1 (-r 删除非空目录)


9.移动和重命名

mv file1 file2


10.查找文件

find /home/test1 -name file1

find /home/test1 -name fil*

find /home/test1 -mtime 3


11.使用vi编辑器创建文件、编辑和查看

vi test.txt 

cat test.txt 

more/less test.txt

head/tail -3 test.txt

more test.txt | grep 9 (关键字查找)

head -5 test.txt >> /dev/tty3 (输出重定向)

:n1,n2s /word1/word2/g 在第n1与n2行之间寻找word1,并将它替换为word2

:1,$s/word1/word2/g 从第 一行开始到最后一行查找word1并替换为word2



12.查看系统信息

uname -r / uname -a

cal 2015

date


13.磁盘分区/格式化/检验/挂载

分区

df  / fdisk -l  找出磁盘名

fdisk /dev/sda   n  +2048M   w

格式化

mkfs -t ext3 /dev/sda3

检验

fsck -C -f -t ext3 /dev/sda2 

挂载

mkdir /mnt/usb

mount /dev/sdb1 /mnt/usb

umount /dev/sdb1 


大于2T硬盘挂载


parted /dev/sdb  (假设sdb 是新增大于2T硬盘)


print (查看一下)


(parted) mklabel gpt

(parted) unit TB

(parted) mkpart primary 0 3

print (查看一下)

quit


mkfs.ext4 /dev/sdb1(格式化硬盘分区1)


mount /dev/sdb1 /data (挂载,之后即可使用了)



自动挂载


blkid /dev/sdb 


找出UUID


vi /etc/fstab


UUID=8e4619b8-2778-467d-88e3-4fcdc5f0239a /boot    ext4    defaults        0 0





14.修改权限和所有权

chown root file1

chmod 755 file1



15.增加用户组/添加用户

groupadd project

useradd -G project user1


16.目录权限和属性修改

chgrp project /目录

chmod 770 /目录


17.加入SGID 权限

chomod 2770 /目录



18.查看是否安装  

rpm -q 包名称

rpm -qa |grep ftp

rpm -ivh 软件包名称

rpm -e 软件名称 (卸载软件)


19.查看/更改服务状态

chkconfig --list | grep vsftpd

chkconfig --level 235 vsftpd on


20.延迟性调度命令at

eg:

一分钟后在tty1中,提示“hello!!”

at now +1 minutes

  at> echo "hello !!" >/dev/tty1

  at> ctrl+D 

eg:

系统两天后的17:30执行文件data制定作业 。

at-f data 17:30+2 days


21.周期性调度命令crontab

crontab

minute  hour day  mouth  dayofweek  command

  30     8    *     *        4       echo“meeting at 10:00 AM”> /dev/tty1

ctrl +D

修改周期性任务

crontab -e


22.查看/终止进程

ps aux |less

ps aux |grep cy  (查看用户cy所有进程信息)

终止进程

ps -A |grep sshd 

kill 2749


23.tar包管理

创建包

tar -cvf test.tar test


创建压缩包

tar -zcvf test.tar.gz test

tar -jcvf test.tar.bz2 test


查看包文件列表

tar -tvf test.tar

tar -ztvf test.tar.bz2


释放包/释放压缩包到指定目录

tar -xvf test.tar -C /tmp

tar -zxvf test.tar.bz2 -C /tmp


tar包追加文件

tar -rvf test.tar exam.c


更新包中文件

tar -uvf test.tar exam.c


gzip -v man.config  压缩

gzip -d man.config.gz 解压

zcat man.config.gz 查看/读取


bzip2 -v man.config 压缩

bzip2 -d man.config.bz2  解压

bzcat man.config.bz2  查看/读取





24.网络环境配置


主机名配置

vi /etc/sysconfig/network


网卡配置

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


DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.0.103

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=192.168.1.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

HWADDR=0:0C:29:C7:58:6D

ONBOOT=yes


DNS配置

vi /etc/resolv.conf 

nameserver 61.139.2.69



25.Linux挂载Winodws共享文件夹


假定win机 d:/folder/share 的共享名为 share , 有用户administrator ,密码123

在linux机上,把share挂到/mnt目录:

mount -t cifs -o username=administrator,password=123 //192.168.0.11/share /mnt


其中-t表示要挂载的类型,cifs是微软提供远程访问的一个协议。


26.netstat 详解


 netstat -a 列出所有当前的连接


只列出 TCP 或 UDP 协议的连接



 netstat -at  /  netstat -au


IP禁用域名解析功能


 netstat -ant


只列出监听中的连接


 netstat -tnl


获取进程名、进程号以及用户 ID(需要root权限)


 netstat -nlpt  /  netstat -ltpe


显示内核路由


 netstat -rn


查看http的并发请求数及其TCP连接状态


netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘


返回结果示例:

  LAST_ACK 5

  SYN_RECV 30

  ESTABLISHED 1597

  FIN_WAIT1 51

  FIN_WAIT2 504

  TIME_WAIT 1057

  其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。


查看linux环境中的routing cache

netstat -rn --cache


27.mySQL 常用命令


mysql -uroot -p #登陆数据库


mysql> SHOW DATABASES;#查看数据库


mysql> CREATE DATABASE MYSQLDATA; #创建一个数据库MYSQLDATA


mysql> USE MYSQLDATA; #按回车键出现Database changed 时说明操作成功


mysql> SHOW TABLES;#查看现在的数据库中存在什么表


mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));#创建一个数据库表


mysql> DESCRIBE MYTABLE;#显示表的结构


mysql> insert into MYTABLE values (”cy”,”M”);#向表中添加数据


mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;#用文本方式将数据装入数据库表中(例如D:/mysql.txt)


mysql>use database;

mysql>source d:/mysql.sql; #导入.sql文件命令(例如D:/mysql.sql)


mysql>drop TABLE MYTABLE;#删除表


mysql>delete from MYTABLE;#清空表


mysql>update MYTABLE set sex=”f” where name=’hyq’;#更新表中某一项数据




28.文件系统完整备份/恢复:dump/restore


备份:


dump -S /dev/sdb  测试备份文件系统需要的容量


完整备份文件系统


dump -0u -f /root/boot.dump /boot


仅备份差异文件部分


dump -1u -f /root/boot.dump.1 /boot


非单一文件系统,即单一目录dump备份


dump -0j -f /root/etc.dump.bz2 


恢复:


restore -t -f /root/boot.dump 查看备份数据内容


新建一个文件系统再还原


fdisk /dev/sdc 


n


+105M


p


w


partprobe


mkfs -t ext3 /dev/sdc


mount /dev/sdc  /mnt


cd /mnt


restore -r -f /root/boot.dump 



29.lsof 命令详解


COMMAND     PID        USER        FD       TYPE             DEVICE SIZE/OFF    NODE    NAME

进程名称 进程标识符  进程所有者 文件描述符  文件类型         指定磁盘的名称   索引节点  确切名称


lsof [options] filename

lsof abc.txt 显示开启文件abc.txt的进程

lsof -c abc 显示abc进程现在打开的文件

lsof -c -p 1234 列出进程号为1234的进程所打开的文件

lsof -g gid 显示归属gid的进程情况

lsof +d /usr/local/ 显示目录下被进程开启的文件

lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

lsof -d 4 显示使用fd为4的进程

lsof -i 用以显示符合条件的进程情况


lsof|grep del

恢复删除的文件

当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。

当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。



假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:


首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

# lsof |grep /var/log/messages 

syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)


从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

# head -n 10 /proc/1283/fd/2 

Aug 4 13:50:15 holmes86 syslogd 1.4.1: restart. 

Aug 4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started. 

Aug 4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007 Aug 4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map: Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000000000 - 000000000009f000 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)


从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。

如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages

对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。


lsof实用命令


lsof `which httpd` //那个进程在使用apache的可执行文件

lsof /etc/passwd //那个进程在占用/etc/passwd

lsof /dev/hda6 //那个进程在占用hda6

lsof /dev/cdrom //那个进程在占用光驱

lsof -c sendmail //查看sendmail进程的文件使用情况

lsof -c courier -u ^zahn //显示出那些文件被以courier打头的进程打开,但是并不属于用户zahn

lsof -p 30297 //显示那些文件被pid为30297的进程打开

lsof -D /tmp 显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列

lsof -u1000 //查看uid是100的用户的进程的文件使用情况

lsof -utony //查看用户tony的进程的文件使用情况

lsof -u^tony //查看不是用户tony的进程的文件使用情况(^是取反的意思)

lsof -i //显示所有打开的端口

lsof -i:80 //显示所有打开80端口的进程

lsof -i -U //显示所有打开的端口和UNIX domain文件

lsof -i UDP@[url]www.akadia.com:123 //显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接

lsof -i tcp@ohaha.ks.edu.tw:ftp -r //不断查看目前ftp连接的情况(-r,lsof会永远不断的执行,直到收到中断信号,+r,lsof会一直执行,直到没有档案被显示,缺省是15s刷新)

lsof -i tcp@ohaha.ks.edu.tw:ftp -n //lsof -n 不将IP转换为hostname,缺省是不加上-n参数


30.linux单用户模式修改密码


进入单用户模式: 

1. grub 进入启动画面之后,敲入“e”

把光标移动到kernel ...那一行,再敲入“e”

在kernel 一行的结尾加上空格single,回车 敲入“b”

启动系统,即进入单用户模式, 这个时刻就能够用passwd命令改密码了。

passwd root 改完以后reboot重启。

2. lilo 进入lilo命令行模式,敲入linux single,即进入单用户模式。

passwd ... 假如grub/lilo设了密码,必须要记得才行。



31.nginx yum 安装


添加源

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm


yum install nginx -y






本文出自 “小陌成长之路” 博客,谢绝转载!

Linux学习笔记 by 小陌_09.29

原文:http://309173854.blog.51cto.com/7370240/1699077

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!