Linux学习日志记录002

继续补充:

1,

--远程拷贝,从本地拷往异地

 scp -P 60 /tmp/backup/sysbench-0.4.8.tar.gz [email protected]:/tmp/test/

 回车,权限确认,输入密码

 自动开始拷贝

 

--远程拷贝,从异地拷往本地(-P 60 为异地ssh端口)

scp -P 60 [email protected]:/tmp/test/sysbench.tar.gz /tmp/backup/sysbench.tar.gz  目的地文件名可输入可不输入

回车,输入密码

自动开始拷贝

 

2,

linux几种快速清空文件内容的方法

# : > a.txt #其中的 : 是一个占位符, 不产生任何输出.  0

# > a.txt   0

# echo "" > a.txt  1

# echo > a.txt     1

# cat /dev/null > a.txt  0

 

3,

linux获取一个文件大小

ll filename | awk '{print $5}'  (eg: ll sms.log2 | awk '{print $5}' )

stat filename -c '%s'   (eg: stat sms.log -c '%s')


 

4,

计算一个文件中的字符组合的个数:

#查找文件下面某一(多)个字符组合的格式(URL, /bin/bash) grep 方式;

cat passwd | grep "/bin/bash" | wc -l

 

#查找文件下面某一(多)个字符组合的格式(URL, /bin/bash) awk 方式, 匹配最后一个;
awk -F: '{if ($NF=="/bin/bash") print $0}' passwd | wc -l

 

#查找文件下面某一(多)个字符组合的格式(URL, /bin/bash) awk 方式, 匹配其中的任意位置;

awk -F: '{if ($0 ~ "/bin/bash") print $0}' passwd | wc -l

 

5,

awk的环境变量(常用):

$0 完整的一行记录

$n 当前记录的第n个字段

ARGV 命令行参数数组

FS 字段分隔符,默认是空格或tab,可以自己指定

NR 当前记录数

NF 当前记录的字段数

RS 一行记录的分隔符,默认是换行符

 

6,

linux下修改.bash_profile立即生效的三种方法

. .bash_profile
source .bash_profile
exec bash --login
 
7,提供免密码远程拷贝文件
在两台机器的两个用户之间建立安全的信任关系后,可实现执行scp命令时不需要输入用户密码。
1. 在机器Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书。
[root@Client root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <– 直接输入回车
Enter passphrase (empty for no passphrase): <– 直接输入回车
Enter same passphrase again: <– 直接输入回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is: ……
注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。
上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户目录的.ssh子目录中。
2. 将公钥证书id_rsa.pub复制到机器Server的root目录的.ssh子目录中,同时将文件名更换为authorized_keys。
[root@Client root]# scp -p .ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
[email protected]’s password: <– 输入机器Server的root用户密码
在执行上述命令时,两台机器的root用户之间还未建立安全信任关系,所以还需要输入机器Server的root用户密码。
经过以上2步,就在机器Client的root和机器Server的root之间建立安全信任关系。下面我们看看效果:
[root@Client root]# scp -p text [email protected]:/root
成功了!真的不再需要输入密码了。
 
8, 远程执行其他机器命令
假设我们有两台主机。主机名分别为linuxa(192.168.100.11)和linuxb(192.168.100.68)。首先在linuxa上以当前用户运行如下命令生成
本主机的公钥和私钥文件:
ssh-keygen -t rsa
     上述命令执行后,隐藏目录~/.ssh下会出现两个文件:id_rsa和id_rsa.pub(若已经存在,重新命名:id_rsa2会自动对应生成id_rsa2.pub文件)。
其中,id_rsa2.pub为公钥文件。将该文件的内容追加到对端主机linuxb上~/.ssh目录下的authorizedkeys文件中,记得是追加。
若该文件不存在,可自行创建之。
执行测试命令
ssh -t -p 60 [email protected]  '/tmp/sh/touch.sh'
ssh -t -p 1122 [email protected] '/data/src/xxx/shell/restart.sh'
 

猜你喜欢

转载自xiaobo.iteye.com/blog/2116905