LINUX需要掌握的一些常用命令

一:

1.内部命令:echo
查看内部命令帮助:help echo 或者 man echo

2.外部命令:ls
查看外部命令帮助:ls --help 或者 man ls 或者 info ls

3.man文档的类型(1~9)
man 7 man
man 5 passwd

4.快捷键:
ctrl + c:停止进程

ctrl + l:清屏

ctrl + r:搜索历史命令

ctrl + q:退出

5.善于用tab键

二:常用命令

说明:安装linux时,创建一个itcast用户,然后使用root用户登陆系统

1.进入到用户根目录
cd ~ 或 cd

2.查看当前所在目录
pwd

3.进入到itcast用户根目录
cd ~itcast

4.返回到原来目录
cd -

5.返回到上一级目录
cd ..

6.查看itcast用户根目录下的所有文件
ls -la

7.在根目录下创建一个itcast的文件夹
mkdir /itcast

8.在/itcast目录下创建src和WebRoot两个文件夹
分别创建:mkdir /itcast/src
          mkdir /itcast/WebRoot
同时创建:mkdir /itcast/{src,WebRoot}

进入到/itcast目录,在该目录下创建.classpath和README文件
分别创建:touch .classpath
          touch README
同时创建:touch {.classpath,README}

查看/itcast目录下面的所有文件
ls -la

在/itcast目录下面创建一个test.txt文件,同时写入内容"this is test"
echo "this is test" > test.txt

查看一下test.txt的内容
cat test.txt
more test.txt
less test.txt

向README文件追加写入"please read me first"
echo "please read me first" >> README

将test.txt的内容追加到README文件中
cat test.txt >> README

拷贝/itcast目录下的所有文件到/itcast-bak
cp -r /itcast /itcast-bak

进入到/itcast-bak目录,将test.txt移动到src目录下,并修改文件名为Student.java
mv test.txt src/Student.java

在src目录下创建一个struts.xml
> struts.xml

删除所有的xml类型的文件
rm -rf *.xml

删除/itcast-bak目录和下面的所有文件
rm -rf /itcast-bak

返回到/itcast目录,查看一下README文件有多单词,多少个少行
wc -w README
wc -l README

返回到根目录,将/itcast目录先打包,再用gzip压缩
分步完成:tar -cvf itcast.tar itcast
          gzip itcast.tar
一步完成:tar -zcvf itcast.tar.gz itcast
          
将其解压缩,再取消打包
分步完成:gzip -d itcast.tar.gz 或 gunzip itcast.tar.gz
一步完成:tar -zxvf itcast.tar.gz

将/itcast目录先打包,同时用bzip2压缩,并保存到/tmp目录下
tar -jcvf /tmp/itcast.tar.bz2 itcast

将/tmp/itcast.tar.bz2解压到/usr目录下面
tar -jxvf itcast.tar.bz2 -C /usr/


三:文件相关命令

       

1.进入到用户根目录
cd ~ 或者 cd
cd ~hadoop
回到原来路径
cd -

2.查看文件详情
stat a.txt

3.移动
mv a.txt /ect/
改名
mv b.txt a.txt
移动并改名
mv a.txt ../b.txt

4拷贝并改名
cp a.txt /etc/b.txt

5.vi撤销修改
ctrl + u (undo)
恢复
ctrl + r (redo)

6.名令设置别名(重启后无效)
alias ll="ls -l"
取消
unalias ll

7.如果想让别名重启后仍然有效需要修改
vi ~/.bashrc

8.添加用户
useradd hadoop
passwd hadoop

9创建多个文件
touch a.txt b.txt
touch /home/{a.txt,b.txt}

10.将一个文件的内容复制到里另一个文件中
cat a.txt > b.txt
追加内容
cat a.txt >> b.txt 


11.将a.txt 与b.txt设为其拥有者和其所属同一个组者可写入,但其他以外的人则不可写入:
chmod ug+w,o-w a.txt b.txt

chmod a=wx c.txt

12.将当前目录下的所有文件与子目录皆设为任何人可读取:
chmod -R a+r *

13.将a.txt的用户拥有者设为users,组的拥有者设为jessie:
chown users:jessie a.txt

14.将当前目录下的所有文件与子目录的用户的使用者为lamport,组拥有者皆设为users,
chown -R lamport:users *

15.将所有的java语言程式拷贝至finished子目录中:
cp *.java finished

16.将目前目录及其子目录下所有扩展名是java的文件列出来。
find -name "*.java"
查找当前目录下扩展名是java 的文件
find -name *.java

17.删除当前目录下扩展名是java的文件
rm -f *.java

18.翻页查看文件内容
more file (下一页按 空格,上一页按 b,退出 q)
less file (拥有more的功能,同时可以 下一行(↑),上一行(↓),可以搜索关键字 )
tail -10 file (查看文件尾部10行)
tail -f file (跟踪文件内容)
tail -F file (按照文件名字跟踪内容)
head -10 file (查看文件的前10行)

四:文件夹属性

1.查看文件夹属性
ls -ld test

2.文件夹的rwx
--x:可以cd进去
r-x:可以cd进去并ls
-wx:可以cd进去并touch,rm自己的文件,并且可以vi其他用户的文件
-wt:可以cd进去并touch,rm自己的文件

ls -ld /tmp
drwxrwxrwt的权限值是1777(sticky)

五:系统命令

1.查看主机名

hostname

2.修改主机名(重启后无效)

hostname hadoop

3.修改主机名(重启后永久生效)

vi /ect/sysconfig/network

4.修改IP(重启后无效)

ifconfig eth0 192.168.12.22

5.修改IP(重启后永久生效)

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

6.查看系统信息

uname -a
uname -r

7.查看ID命令

id -u
id -g

8.日期
date

date +%Y-%m-%d

date +%T

date +%Y-%m-%d" "%T

9.日历

cal 2012

10.查看文件信息

file filename


11.查看文件大小

du -h

du -ah


du -sh

12.查看分区

df -h

13.ssh

ssh hadoop@192.168.1.1

15.关机

shutdown -h now 
/init 0

shutdown -r now 
/reboot

六:用户和组

添加一个tom用户,设置它属于users组,并添加注释信息
分步完成:useradd tom
          usermod -g users tom
          usermod -c "hr tom" tom
一步完成:useradd -g users -c "hr tom" tom

设置tom用户的密码
passwd tom

修改tom用户的登陆名为tomcat
usermod -l tomcat tom

将tomcat添加到sys和root组中
usermod -G sys,root tomcat

查看tomcat的组信息
groups tomcat

添加一个jerry用户并设置密码
useradd jerry
passwd jerry

添加一个交america的组
groupadd america

将jerry添加到america组中
usermod -g america jerry

将tomcat用户从root组和sys组删除
gpasswd -d tomcat root
gpasswd -d tomcat sys

将america组名修改为am
groupmod -n am america

七:vim.txt

i
a/A
o/O
r + ?替换

0:文件当前行的开头
$:文件当前行的末尾
G:文件的最后一行开头
1 + G到第一行 
9 + G到第九行 = :9

dd:删除一行
3dd:删除3行
yy:复制一行
3yy:复制3行
p:粘贴
u:undo
ctrl + r:redo

"a剪切板a
"b剪切板b

"ap粘贴剪切板a的内容

每次进入vi就有行号
vi ~/.vimrc
set nu

:w a.txt另存为
:w >> a.txt内容追加到a.txt

:e!恢复到最初状态

:1,$s/hadoop/root/g 将第一行到追后一行的hadoop替换为root
:1,$s/hadoop/root/c 将第一行到追后一行的hadoop替换为root(有提示)

    八:正则表达式

1.cut截取以:分割保留第七段
grep hadoop /etc/passwd | cut -d: -f7

2.排序
du | sort -n 

3.查询不包含hadoop的
grep -v hadoop /etc/passwd

4.正则表达包含hadoop
grep 'hadoop' /etc/passwd

5.正则表达(点代表任意一个字符)
grep 'h.*p' /etc/passwd

6.正则表达以hadoop开头
grep '^hadoop' /etc/passwd

7.正则表达以hadoop结尾
grep 'hadoop$' /etc/passwd

规则:
.  : 任意一个字符
a* : 任意多个a(零个或多个a)
a? : 零个或一个a
a+ : 一个或多个a
.* : 任意多个任意字符
\. : 转义.
\<h.*p\> :以h开头,p结尾的一个单词
o\{2\} : o重复两次

grep '^i.\{18\}n$' /usr/share/dict/words

查找不是以#开头的行
grep -v '^#' a.txt | grep -v '^$' 

以h或r开头的
grep '^[hr]' /etc/passwd

不是以h和r开头的
grep '^[^hr]' /etc/passwd

不是以h到r开头的
grep '^[^h-r]' /etc/passwd

九:权限

创建a.txt和b.txt文件,将他们设为其拥有者和所在组可写入,但其他以外的人则不可写入:
chmod ug+w,o-w a.txt b.txt

创建c.txt文件所有人都可以写和执行
chmod a=wx c.txt 或chmod 666 c.txt

将/itcast目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r /itcast

将/itcast目录下的所有文件与子目录的拥有者设为root,用户拥有组为users
chown -R root:users /itcast

将当前目录下的所有文件与子目录的用户皆设为itcast,组设为users
chown -R itcast:users *

十:进程控制

1.查看用户最近登录情况
last
lastlog

2.查看硬盘使用情况
df

3.查看文件大小
du

4.查看内存使用情况
free

5.查看文件系统
/proc

6.查看日志
ls /var/log/

7.查看系统报错日志
tail /var/log/messages

8.查看进程
top

9.结束进程
kill 1234
kill -9 4333

十一:挂载

挂在的意义:
    关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大。
    奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗。
    1.提一句Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。
    比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载unmount。

    2.Linux下,不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/。在装系统时,
    我们分配给linux的所有区都在/下的某个位置,比如/home等等。

    3.提问者插入了新硬盘,分了新磁盘区sdb1。它现在还不属于/。

    4.我们虽然可以在一些图形桌面系统里找到他的位置,浏览管理里面的文件,但在命令行却不知怎么访问它的目录,
    比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。

    5.这时提问者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,
    之后访问这个~/Share/文件夹就相当于访问这个硬盘2的sdb1分区了。对/Share/的任何操作,都相当于对sdb1里文件的操作。

    6.所以Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。
    访问这个目录就是访问该存储设备。

    7.linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。
    我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
    挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。

    8.我们不是有/dev/sdb1 吗,直接对它操作不就行了?这不是它的目录吗?

    9.这不是它的目录。虽然/dev是个目录,但/dev/sdb1不是目录。可以发现ls/dev/sdb1无法执行。
    /dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,
    如何对它们操作。

    10.插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中对CD中的内容进行管理。

1.挂载硬盘(这种方式的挂载重启后就没用了)
    mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom 
    
    umount /mnt/cdrom  卸载

2.永久有效挂载设置未启动项
    vim /etc/fstab
    #
    LABEL=/     /           ext4    defaults,noatime  1   1
    tmpfs       /dev/shm    tmpfs   defaults        0   0
    devpts      /dev/pts    devpts  gid=5,mode=620  0   0
    sysfs       /sys        sysfs   defaults        0   0
    proc        /proc       proc    defaults        0   0
    /dev/xvdf   /fqr        ext4    defaults        0   0
    /dev/xvdf 是我们新加的卷
    /fqr 是我们新的挂载点文件,最好在根目录下
    ext4 是一种格式,其余照写

加载windows共享
    mount -t cifs //192.168.1.100/tools /mnt

十二:输入以及输出重定向及其管道

1.新建一个文件
touch a.txt
> b.txt

2.错误重定向:2>
find /etc -name zhaoxing.txt 2> error.txt

3.将正确或错误的信息都输入到log.txt中
find /etc -name passwd > /tmp/log.txt 2>&1 
find /etc -name passwd &> /tmp/log.txt

4.追加>>

5.将小写转为大写(输入重定向)
tr "a-z" "A-Z" < /etc/passwd

6.自动创建文件
cat > log.txt << EXIT
> ccc
> ddd
> EXI

7.查看/etc下的文件有多少个?
ls -l /etc/ | grep '^d' | wc -l

8.查看/etc下的文件有多少个,并将文件详情输入到result.txt中
ls -l /etc/ | grep '^d' | tee result.txt | wc -l

十三:打包与压缩

1.gzip压缩
gzip a.txt

2.解压
gunzip a.txt.gz
gzip -d a.txt.gz

3.bzip2压缩
bzip2 a

4.解压
bunzip2 a.bz2
bzip2 -d a.bz2

5.将当前目录的文件打包
tar -cvf bak.tar .
将/etc/password追加文件到bak.tar中(r)
tar -rvf bak.tar /etc/password

6.解压
tar -xvf bak.tar

7.打包并压缩gzip
tar -zcvf a.tar.gz

8.解压缩
tar -zxvf a.tar.gz
解压到/usr/下
tar -zxvf a.tar.gz -C /usr

9.查看压缩包内容
tar -ztvf a.tar.gz

zip/unzip

10.打包并压缩成bz2
tar -jcvf a.tar.bz2

11.解压bz2
tar -jxvf a.tar.bz2

十四:安装软件

1.安装JDK
    *添加执行权限 
        chmod u+x jdk-6u45-linux-i586.bin
    *解压
        ./jdk-6u45-linux-i586.bin
    *在/usr目录下创建java目录
        mkdir /usr/java
    *将/soft目录下的解压的jdk1.6.0_45剪切到/usr/java目录下
        mv jdk1.6.0_45/ /usr/java/
    *添加环境变量
        vim /etc/profile
        *在/etc/profile文件最后添加
            export JAVA_HOME=/usr/java/jdk1.6.0_45
            export CLASSPATH=$JAVA_HOME/lib
            export PATH=$PATH:$JAVA_HOME/bin
    *更新配置
        source /etc/profile
        
2.安装tomcat
    tar -zxvf /soft/apache-tomcat-7.0.47.tar.gz -C /programs/
    cd /programs/apache-tomcat-7.0.47/bin/
    ./startup.sh
    
3.安装eclipse
    
  十五:免密登陆

1.生成密钥
ssh-keygen -t rsa
(默认生成的密钥的路径是 /root/.ssh.id_rsa,并且生成三个文件 id_rsa,id_rsa.pub,known_hosts )

2.我们需要把公钥(id_rsa.pub)传给要登陆的服务器
ssh-copy-id IP

3.试验ssh登录
ssh IP 

********************************************************************
4.文件copy到指定服务器&指定文件夹下
scp 文件 IP:/home/

十六:查找

1.查找可执行的命令:
which ls

2.查找可执行的命令和帮助的位置:
whereis ls

3.查找文件(需要更新库:updatedb)
locate hadoop.txt

4.从某个文件夹开始查找
find / -name "hadooop*"
find / -name "hadooop*" -ls

5.查找并删除
find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;

6.查找用户为hadoop的文件
find /usr -user hadoop -ls

7.查找用户为hadoop并且(-a)拥有组为root的文件
find /usr -user hadoop -a -group root -ls

8.查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d

9.查找权限为777的文件
find / -perm -777 -type d -ls

10.显示命令历史
history

11.grep
grep hadoop /etc/password

十七:clone虚拟机需要更改的事情

1.修改网络配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
删掉uuid
删掉HWADDR(物理地址)
修改IPADDR

2.看系统用的ip是eth几?如果是eth1 要改成eth0
vi /etc/udev/rules.d/70-persistent-net.rules
eth1 改成 eth0  把之前的eth0删掉
重启:reboot

十八:操作service服务

1.服务停止 启动 重启 状态 查看系统所有后台服务
service mysql stop
service mysql start
service mysql restart
service mysql status
service --starts-all

2.对其(service --status-all)结果进行关键字搜索并显示
service --status-all | grep 关键字

3.查看自动启动的配置(查看系统级别 )
chkconfig 
0 --> 表示关机(启动就关机)
1 --> 单用户
2 --> 多用户(不支持NFS,网络文件共享)
3 --> 全功能多用户模式
4 --> 不使用
5 --> 图形界面
6 --> 重启

4.查看某个服务是否自启动
chkconfig mysql --list

5.关闭指定服务的自启动
chkconfig mysql off


十九:防火墙

1.防火墙永久关闭
vim /etc/selinux/config
修改selinux=disable
重启reboot

二十:yum详解

1.默认会从本地库去找
yum install -y  gcc

2.清理之前的缓存
yum clean all

3.查看当前使用哪个 repo 仓库
yum repolist

4.yum的所有仓库
cd /etc/yum.repos.d/

5.repo内容详解
[c6-media]
name=名称
baseurl=包所在路径(可以是外网路径,也可以是挂载的光盘)
gpgcheck=0签名认证
enable=1启用

6.包自己下载的包放到私有yum下
createrepo .

7.指定一个repo,可以吧所有的repo后缀改为 repo.bak,把自己使用的后缀改成 repo

8.查看所有可yum文件
yum list

二十一:sort-cut-wc详解 

sort
sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。

sort语法

 
[root@www ~]# sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b  :忽略最前面的空格符部分;
-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r  :反向排序;
-u  :就是 uniq ,相同的数据中,仅出现一行代表;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思
 

对/etc/passwd 的账号进行排序
[root@www ~]# cat /etc/passwd | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序。

/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何

[root@www ~]# cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
默认是以字符串来排序的,如果想要使用数字排序:

cat /etc/passwd | sort -t ':' -k 3n
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
默认是升序排序,如果要倒序排序,如下

cat /etc/passwd | sort -t ':' -k 3nr
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
ntp:x:106:113::/home/ntp:/bin/false
messagebus:x:105:109::/var/run/dbus:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
 

如果要对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序。

cat /etc/passwd |  sort -t':' -k 6.2,6.4 -k 1r      
sync:x:4:65534:sync:/bin:/bin/sync
proxy:x:13:13:proxy:/bin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
 

查看/etc/passwd有多少个shell:对/etc/passwd的第七个域进行排序,然后去重:

cat /etc/passwd |  sort -t':' -k 7 -u
root:x:0:0:root:/root:/bin/bash
syslog:x:101:102::/home/syslog:/bin/false
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
 

uniq
 uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

uniq语法

[root@www ~]# uniq [-icu]
选项与参数:
-i   :忽略大小写字符的不同;
-c  :进行计数
-u  :只显示唯一的行
 

testfile的内容如下

 
cat testfile
hello
world
friend
hello
world
hello
 
 

直接删除未经排序的文件,将会发现没有任何行被删除

 
#uniq testfile  
hello
world
friend
hello
world
hello
 
 

排序文件,默认是去重

#cat testfile | sort |uniq
friend
hello
world
 

排序之后删除了重复行,同时在行首位置输出该行重复的次数

#sort testfile | uniq -c
1 friend
3 hello
2 world
 

仅显示存在重复的行,并在行首显示该行重复的次数

#sort testfile | uniq -dc
3 hello
2 world
 

仅显示不重复的行

sort testfile | uniq -u
friend  
 

cut
cut命令可以从一个文本文件或者文本流中提取文本列。

cut语法

[root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
[root@www ~]# cut -c 字符区间            <==用于排列整齐的信息
选项与参数:
-d  :后面接分隔字符。与 -f 一起使用;
-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c  :以字符 (characters) 的单位取出固定字符区间;
 

PATH 变量如下

[root@www ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# 1 | 2       | 3   | 4       | 5            | 6            | 7
 

将 PATH 变量取出,我要找出第五个路径。

#echo $PATH | cut -d ':' -f 5
/usr/local/bin
 

将 PATH 变量取出,我要找出第三和第五个路径。

#echo $PATH | cut -d ':' -f 3,5
/sbin:/usr/local/bin
 

将 PATH 变量取出,我要找出第三到最后一个路径。

echo $PATH | cut -d ':' -f 3-
/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
 

将 PATH 变量取出,我要找出第一到第三个路径。

#echo $PATH | cut -d ':' -f 1-3
/bin:/usr/bin:/sbin:
 
 

将 PATH 变量取出,我要找出第一到第三,还有第五个路径。

echo $PATH | cut -d ':' -f 1-3,5
/bin:/usr/bin:/sbin:/usr/local/bin
 

实用例子:只显示/etc/passwd的用户和shell

#cat /etc/passwd | cut -d ':' -f 1,7 
root:/bin/bash
daemon:/bin/sh
bin:/bin/sh
 

 wc
统计文件里面有多少单词,多少行,多少字符。

wc语法

[root@www ~]# wc [-lwm]
选项与参数:
-l  :仅列出行;
-w  :仅列出多少字(英文单字);
-m  :多少字符;
 

默认使用wc统计/etc/passwd

#wc /etc/passwd
40   45 1719 /etc/passwd
40是行数,45是单词数,1719是字节数

wc的命令比较简单使用,每个参数使用如下:

 
#wc -l /etc/passwd   #统计行数,在对记录数时,很常用
40 /etc/passwd       #表示系统有40个账户

#wc -w /etc/passwd  #统计单词出现次数
45 /etc/passwd

#wc -m /etc/passwd  #统计文件的字符数
1719
 
 

参考 http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php#pipe_2

      http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html

二十二:rsync 增量复制详情

linux rsync同步工具
    sync和ssh带的scp命令比较相似,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以进行增量拷贝。
    当然,rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优于cp命令,
    cp每次都是全量拷贝,而rsync可以增量拷贝.利用rsync还可以实现删除文件和目录功能,这又相当于rm命令。
    可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。
    如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行完整备份或增量备份。
    
-v    --verbose    详细模式输出,传输时的进度信息
-z    --compress    传输时进行压缩以提高传输效率, --compress-level=NUM可按级别压缩
-a    --archive    归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl
-r    --recursive    对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r
-t    --times    保持文件时间信息
-o    --owner    保持文件属主信息
-p    --perms    保持文件权限
-g    --group    保持文件属组信息
-P    --progress    显示同步的过程及传输时的进度等信息
-D    --devices    保持设备文件信息
-l    --links    保持软链接
-e    --rsh=COMMAND    使用的信道协议,指定替代rsh的shell程序,例如ssh
--exclude=PATTERN    指定排除不需要传输的文件模式
--exclude-from=FILE    从文件中读取指定排除不需要传输的文件模式
以上参数为在生产环境中的常用参数,基本使用已足够,相关的参数还有非常多,了解更多可以man rsync。
最常用的参数avz相当于vzrtopgDl,生产参数-avz或者用-vzrtopg
    
    
1.使用
    rsync -avP /data/ /a


 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉锵T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值