Linux常用命令11Linux文本处理示例

0.AWK常变量含义

常变量名 含义
ARGC 命令行变元个数
ARGV 命令行变元数组
FILENAME 当前输入文件名
FNR 当前文件中的记录号
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符
NF 当前记录里域个数
NR 到目前为止记录数
OFS 输出域分隔符
ORS 输出记录分隔符

1、统计文本中单词数量,并进行排序

grep -Eo "[a-z|A-Z]+" words.txt|awk '{word_cound[$1]++}END {for(aword in word_cound){print aword,word_cound[aword]|"sort -rn -k2"}}'

2、电话号码验证
规则:
A、(xxx) xxx-xxxx
B、xxx-xxx-xxxx

grep -Eo '^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$' phonelist.txt

3、行列转换

awk '{for(i=0;++i<=NF;)t[i]=t[i]?t[i] FS $i:$i}END {for(i=0;i++<NF;)print t[i]}'  transport.txt

4、输出第10行

awk 'NR==10{print}' tenth.txt

Linux常用命令09tar压缩解压文件

1、压缩文件

#只归档不压缩
tar –cf OUT_FILE_NAME.tar PATH_TO_FOLDER
#归档后用gzip压缩
tar –czf OUT_FILE_NAME.tar.gz PATH_TO_FOLDER
#归档后用bzip2压缩
tar –cjf OUT_FILE_NAME.tar.bz2 PATH_TO_FOLDER
#归档后用compress压缩
tar –cZf OUT_FILE_NAME.tar.Z PATH_TO_FOLDER

2、解压文件

#解压tar
tar –xvf IN_FILE_NAME.tar
#解压tar.gz
tar -xzvf IN_FILE_NAME.tar.gz
#解压tar.bz2
tar -xjvf IN_FILE_NAME.tar.bz2
#解压tar.Z
tar -xZvf IN_FILE_NAME.tar.Z

Linux常用命令08cp命令强制覆盖文件

最近,用cp命令拷贝文件夹时,发现即使用了-f选项,覆盖文件夹时,仍然要一个文件一个文件的确认,吐血啊。

后来发现,我调用的cp命令其实是一个别名,用alias命令就可以看到了。

alias cp=’cp -i’

额,系统为了安全,默认强制大家在覆盖前,逐个进行确认。知道了原因,那解决问题就简单了。

方法一、用管道,对每个提醒直接进行确认

yes|cp -fr src dest

方法二、取消别名

unaslias cp 

方法三、强制使用cp命令,而不是使用别名

\cp -fr src dest 

Linux常用命令06设置环境变量

设置环境变量,主要看你用的shell是哪一种:

echo $SHELL

比如我们要把/usr/xbin路径,添加到当前用户的PATH中去:
sh:
~/.shrc

PATH=${PATH}:/usr/xbin
export PATH

bash:
~/.bashrc

export PATH=${PATH}:/usr/xbin

csh,tcsh:
~/.cshrc,~/.tcshrc

set path=($path /usr/xbin)

Linux常用命令05scp上传及下载文件

1、从服务器上下载文件

scp username@servername:/remote_path/remote_filename /local_path

2、上传本地文件到服务器

scp /local_path/local_filename username@servername:/remote_path   

3、从服务器下载整个目录

scp -r username@servername:/remote_path/remote_foldername /local_path

4、上传目录到服务器

scp -r /local_path/local_foldername username@servername:/remote_path

Linux常用命令04网络基本操作

1、Debian安装及卸载软件

sudo apt-get install ssh
sudo apt-get remove ssh

2、重启网络(方法一)

ifconfig eth0 down
ifconfig eth0 up

3、重启网络(方法二)

/etc/init.d/networking restart

4、刷新机器名

/etc/init.d/hostname.sh start

5、刷新环境变量

source /etc/profile

Linux常用命令03挂载及硬件信息

1、挂载NTFS文件系统:

mount -t ntfs-3g /dev/sdb1 /mnt/winc -o force   

2、挂载VirtualBox共享目录:

mount -t vboxsf 共享名称 /mnt/vbshare/

3、改变目录及文件所属

chown -R usergroup:user path_to_folder

4、查找

find path -name filename
find path -type f -exec grep -l - l stringtofind {} \;

5、枚举文件夹下文件大小

du -h

6、查看文件夹大小

du -sh

7、查看硬盘使用情况

df -lh

8、查看内存使用情况

vmstat
free -m

Linux常用命令02压缩及解压

#.tar
tar xvf FileName.tar
tar cvf FileName.tar FolderName

#.gz
gzip -d FileName.gz
gzip FileName

#.tar.gz
tar zxvf FileName.tar.gz
tar zcvf FileName.tar.gz FolderName

#.bz2
bzip2 -d FileName.bz2
bzip2 -z FileName

#.tar.bz2
tar jxvf FileName.tar.bz2
tar jcvf FileName.tar.bz2 FolderName

#.Z
uncompress FileName.Z
compress FileName

#.tar.Z
tar Zxvf FileName.tar.Z
tar Zcvf FileName.tar.Z FolderName

#.zip
unzip FileName.zip
zip -r FileName.zip FolderName

Linux常用命令01

如果您是刚入门的人,建议先搞清楚下面几件事情:
1、BIOS、GRUB、Linux内核的启动顺序
2、Linux内核、Linux包管理、Linux发行版是什么,选一个你喜欢的主流版本(用的人多,帮你填坑的人才多哦)
3、你的世界从此没有了C、D、E盘,只有根目录
4、读写设备,就是在读写文件
5、扔到你的鼠标,干掉图形界面,一旦习惯后,你会发现世界会更美好
6、选定一个你喜欢的编辑器,坚持下去

这个系列,其实是陆续记录下来,但还没有进行很好的整理,所以后面的章节顺序,和这里的顺序,是不一致的。
如果不全,请使用man,或者google。

开始正文:
01、第一个命令
man

02、目录及文件操作
pwd
ls
cd
mkdir
rmdir
touch
rm
mv
cat
head
tail
chown
chmod
find
ln

03、压缩及解压操作
tar
gzip
bzip2
compress
uncompress
zip
unzip

04.用户操作
who
whoami
finger
useradd
userdel
groupadd
groupdel
password

05、进程管理
ps
pstree
top
kill
cron

06、关机与重启
reboot
shutdown

07、服务管理
/etc/init.d/xxx stop/start/restart
service xxx stop/start/restart

08、网络基本操作
ifconfig
ifup
ifdown
route
netstat
nslookup
host
ping
telnet
ftp
ssh
scp

09.挂载操作
mount
umount
fdisk

10、硬件
du
df
dd
iostat
free
vmstat

11、编辑器
vi
grep
awk

12、包管理
apt

13、图形界面
startx