grep 要搜索的字符串 * -nr : 在当前目录所有文件内容中,搜索字符串
find -name "init.rc"
而find "init.rc"则找不到
- 查看系统信息
uname -r 看你当前版本 如 : linux-2.6.32-source.
一个cpu可以双核的,或者四核的, 并不是双核的有两个cpu. 一个系统里,只有一个cpu, 看cpu几核的,cat /proc/cpuinfo, cores的值,或看有几个processor
w 查看所有登录用户, -bash 表示在空闲
du --max-depth=1 -h 看文件夹大小
df -h 看文件系统大小
samb 端口为445 从 netstat -an | grep "
lsof 显示所有文件信息
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof 访问核心内存及各种文件 可看到大量的信息。需root用户, 非root用户, 什么也看不到, 不给任何 提示。
$nautilus . 打开当前文件夹
- 拷贝
1. scp
例:scp gitserver@192.168.1.43:/homg/gitserver/gaotong .
2. sync (remote sync 缩写)
例:
本地拷到远程:
rsync -v -u -a --delete --exclude .git --exclude .repo --rsh=ssh --stats giserver@192.168.1.43:/home/gitserver/gaotong .
远程拷到本地:
rsync -v -u -a --delete --rsh=ssh --stats username@192.168.0.1:/home/username/remotefile.txt .
-v, –verbose 详细模式输出
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-u, –update 仅更新,即跳过所有已经存在于DST,而文件时间晚于要备份的文件。(不覆盖更新的文件)
–exclude=PATTERN 指定排除不需要传输的文件模式
-stats 给出某些文件的传输状态
–delete 删除DST中SRC没有的文件
rsync是, 可以镜像整个目录。 用rsync拷到远程时,不会影响电脑速度。好用。
rsync,remote synchronize的简写,就是远程同步的意
思。就是可以用这个命令对两台机器上的目录和文件进行
同步,一般作单向同步,主机到从机的同步。即主机内容
改变,从机也跟着改变。(双向同步也可以,但是会存在
修改冲突问题)
rsync有六种不同的工作模式:
1. 拷贝本地文件;当SRC和DES路径信息都不包含有
单个冒号":"分隔符时就启动这种工作模式。
2.使用一个远程shell程序(如rsh、ssh)来实现将
本地机器的内容拷贝到远程机器。当DST
路径地址包含单个冒号":"分隔符时启动该
模式。
3.使用一个远程shell程序(如rsh、ssh)来实现将
远程机器的内容拷贝到本地机器。当SRC
地址路径包含单个冒号":"分隔符时启动该
模式。
4. 从远程rsync服务器中拷贝文件到本地机。当SRC
路径信息包含"::"分隔符时启动该模式。
5. 从本地机器拷贝文件到远程rsync服务器中。当
DST路径信息包含"::"分隔符时启动该模式。
6. 列远程机的文件列表。这类似于rsync传输,不过
只要在命令中省略掉本地机信息即可。
1,2,3,6三种模式只需要本机装有rsync客户端即可,其中
网络传输协议可以用ssh等其他协议。4,5模式就是C/S模
式,需要远程机器上启动
rsync服务。客户端与服务器端用rsync自己的网络协议进
行数据传输。
因为配置简单,主要用的两种方式是2和3,也可以用1来进
行本地备份。
举两个我机器上用的例子:
1, rsync -avzc -e /usr/local/bin/ssh2
/data/backup/zs/backup/zs
root@172.16.196.65#36000:/data/backup/zs/backup/
其中 -e /usr/local/bin/ssh2 表示rsync用
ssh2协议进行数据传输,因此需要输入相应密码,此例用户
名为 root
2, rsync -avz --progress -e "ssh -p 34002"
/home/bluesky/projects/DataSpider/data/original_da
ta root@localhost:/data/projects/DataSpider/data
其中 -e "ssh -p 34002" 表示ssh走的是自己配
置的34002端口。
我通过34002端口经过一个跳转机连到和本机不
在同一个网内(不能互相访问)的另一台机器上。这个建
立tunnel进行跳转的功能下次讲
大量文件在机器之间拷bei, 全用rsync, 不用scp, 也不
用tar打包再拷。后两者速度远不如rsync快。
history 10
初始版本不要在虚拟机上编,虚拟机上编译有不可知的错
误。很多时间浪费在了虚拟机上
rsync -a -u -v xx gitserver@192.168.1.43:~/
远程用户名 远程地址 远程目录
rsync 比scp要快
用rsync和scp传输大量文件,发现rsync至少比scp快20倍
以上
3. find -exec cp 用法
将a2中除.git文件拷到a2中,但不保持目录结构
find ./a1 -type f -name ".git" --exec cp {} ./a2 \;
4.cp
cp -p 创建多级目录。
- 搜索
find -name "*.xml" | xargs grep keystring 在查找的文件中,搜索指定的字符串
xargs是exec的一种改进
使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
- 打包
tar –jvxf 文件名 : 解压tar.bz2文件用
tar zcvf m.tar.gz hello.cpp :压缩文件
tar zxvf a.tar.gz -C /home/ligang/vajra: 指定解压到哪个目录下,这里把a.tar.gz解压到/home/ligang/vajra
- 快捷键
快捷键统一: history man 与vi 快捷键相同
hitory 10 最近10个
- 防火墙
ufw enable
ufw default deny
ufw allow from 192.168.1.32
ufw allow 22 (ssh 端口)
ufw status
ufw 能使指定ip的samba用户才能
- 添加用户
切换到root用户下用adduser 可以添加home目录, useradd 不能添加home目录
- 建立分区, 挂载分区, 查看分区挂载点
虚拟机先建立一块硬盘,然后在linux 命令行用root用户用fdisk在硬盘上建立一个分区, 一般将整个硬盘建立一个分区。
分区知识:
硬盘的容量=主分区的容量+扩展分区的容量
扩展分区的容量=各个逻辑分区的容量之和
一块物理硬盘只能有: 一到四个主分区(但其中只能有一个是活动的主分区),或一
到三个主分区,和一个扩展分区。分别对应sda1,sda2,sda3,sda4.
常见的是扩展分区被分成几个逻辑分区,用5,6,7,8等号码标识。
切换到root用户
1. 建立分区
查看硬盘fdisk -l
fdisk /dev/sdb 进入fdisk 模式
n 增加分区
p 主分区
2 第二个主分区
w 分区写到硬盘
到此将分区建好
3. 格式化分区:
mkfs.ext3 /dev/sdb
4. 挂载分区:
vi /etc/fstab
/dev/sdb /home/ligang ext3 defaults 0 0
使/etc/fstab生效:
mount -a 可使/etc/fstab 生效
5.查看分区是否挂载上:
df /home/ligang/ 可查看该目录大小
关于df du 区别:
df(disk filesystem)
df 命令:面向文件系统, 参数为文件系统的挂载点:
如
df -h /home/ligang 查看指定挂载点的总空间, 已用空间
df -h 查看所有文件系统总空间,已用空间
du 命令: 面向文件,如du -h --max-depth=1
- samba服务器
1.添加samba用户
$ru root
#adduser ligang
#smbpasswd -a ligang
输入用户登录密码:
2. 改samba配置
#vi /etc/samba/smb.conf
[share1]
path=/tmp/tmp
public=yes
browseable=yes
writable=yes
valid users=ligang
force user = nobody
force group = group
create mask=0700
directory mask=0700
重启samba
# /etc/init.d/smbd restart
windows系统访问:
\\192.168.202.103\share1
不能把samba共享目录建在/tmp, 重启消失
linux的ufw激活时, 其samba服务器, 不能被windows访问, 可加ufs allow windows的IP
- 远程登录
虚拟机一关闭,ssh报broken pipe错误
- 查看文件内容
vimdiff 可视化强
- 定时操作
root 用户 at 定时关机
1) at 23:30
shutdown -h now
2) crontab
语法: 00 * * * *<tab>脚本文件全路径名:
06 * * * * /home/gitserver/tmp.sh
脚本必须有对环境变量的设置,如tmp.sh
#! /bin/bash ################################# . /etc/profile . ~/.bashrc ################################# echo "ok" > crontab_test
解决crontab -e所打开的文件若不能执行shell脚本:
在vi编辑器下,用:set fileformat查看文件格式,发现文件格式为dos, 用:set fileformat=unix将文件格式设置为unix, 就可执行脚本了
例:
每小时的第31分钟关机:
$su root
#crontab -e
输入如下:
31 * * * * /sbin/shutdown -P 1
目录有可执行权限, 才能进入。
上网:
若不能上网,改一下网关
可以将windows映射为目录,在linux可以将文件拷到这个目录下,从而实现自动从linux拷到windows
crontab 可以git 下载代码,git 提交代码。
用export PATH=make所需要的命令的路径
之后,就可用make 编译代码了
可以用make | tee 文件名,将make产生的编译信息输入到指定的文件中,这在crontab定时make任务时有用。分析make失败的原因
crontab 运行环境与用户环境不同
所以crontab 中的env与 用户的env不同
系统
资源
磁盘和分区
网络
进程
用户
服务
程序
其他常用命令整理如下: 查看主板的序列号:dmidecode | grep -i 'serial number'
查看当前处理器的类型和速度(主频):psrinfo -v
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
备注: proc – process information pseudo-filesystem 进程信息伪装文件系统 |
打patch:
patch -p1 < patch路径文件, 如:
patch -p1 < ~/patch/0003-radio-tavarua-Configure-channel-spacing-for-enhanced.patch
tree 命令可看到目录树,默认没有安装这个命令。 在看私有目录时,比较方便。
------------------
有些屏幕太大, 而分辨率却很低, 体验不好.
man 1 表示查命令
man 2 查系统调用
man 3 查库函数, 如man 3 fopen. c 语言库函数
用词, 满屏