blog.zhuohua.store's Archiver

admin 发表于 2019-12-25 10:10

Linux常用命令(二)

笺注:这是在 [url=http://blog.zhuohua.store/viewthread.php?tid=79&extra=page%3D1]LNMP一键安装包(lnmp_CentOS6.9)[/url] 的基础上进行的。


查看操作系统的版本:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@localhost ~]#
[root@localhost ~]# cat /etc/issue | head -1
CentOS release 6.9 (Final)


查看操作系统是32位还是64位:
[root@localhost ~]# getconf LONG_BIT
64


查看CPU信息:(以下是有两个CPU)
[root@localhost ~]# cat /proc/cpuinfo | grep "model name"
model name      : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
model name      : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz


查看物理内存一共有多少:( m 是以MB为单位; g 是以GB为单位 )
[root@localhost ~]# free -m | grep "Mem:" | awk '{print $2}'
1861
[root@localhost ~]# free -g | grep "Mem:" | awk '{print $2}'
1


查看硬盘大小:
[root@localhost ~]#[color=Blue] fdisk -l[/color]

Disk [color=Purple]/dev/sda: 107.4 GB[/color], 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00060fd7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64       13055   104344576   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 102.6 GB, 102550732800 bytes
255 heads, 63 sectors/track, 12467 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/VolGroup-lv_swap: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


[color=Blue]lsblk[/color]
[attach]11556[/attach]








压缩(gz包)
tar -czf lnmp1.3-full.tar.gz lnmp1.3-full/
[attach]11557[/attach]
注释:可以一次性压缩多个目录、文件到一个压缩包的。



解压(gz包)

直接解压到当前目录:
tar -zxf lnmp1.3-full.tar.gz
[attach]11558[/attach]
注释:不加 [color=Blue]-C[/color] 就直接解压到当前目录


解压到指定目录:
tar -zxf lnmp1.3-full.tar.gz [color=Blue]-C[/color] /
[attach]11559[/attach]
注释:使用 [color=Blue]-C[/color] 就解压到指定目录




###
压缩(bz2包)
tar -cjf /dir1/test.tar.bz2 lnmp1.3-full/ install.log
[attach]11560[/attach]
注释:可以一次性压缩多个目录、文件到一个压缩包的。


解压(bz2包)
tar -jxf /dir1/test.tar.bz2 [color=Blue]-C[/color] /dir2/
[attach]11561[/attach]
注释:不加 [color=Blue]-C[/color] 就直接解压到当前目录




###
压缩(xz包)
tar -cJf /dir5/my.tar.xz lnmp1.3-full/
[attach]11562[/attach]
注释:也可以一次性压缩多个目录、文件到一个压缩包。


解压(xz包)
tar -xJf /dir5/my.tar.xz [color=Blue]-C[/color] /dir5/
[attach]11563[/attach]
注释:不加 [color=Blue]-C[/color] 就直接解压到当前目录




###
zip包
yum -y install zip
yum -y install unzip

压缩:
[root@localhost ~]# zip -r /dir1/test.zip lnmp1.3-full/ install.log
注释:可以一次性压缩多个目录、文件到一个压缩包的。

[root@localhost ~]# du -sh /dir1/test.zip
479M    /dir1/test.zip


解压:
[root@localhost ~]# mkdir -p /dir3
[root@localhost ~]# unzip /dir1/test.zip [color=Blue]-d[/color] /dir3/

注释:不加 [color=Blue]-d[/color] 就直接解压到当前目录

[root@localhost ~]# ls /dir3
install.log  lnmp1.3-full









cp命令——复制文件、目录

复制文件:
cp -rfp lnmp-install.log /dir1
[attach]11566[/attach]


复制的时候可以改名:
[attach]11567[/attach]

复制文件夹:
[attach]11568[/attach]









mv命令——移动文件、目录

移动文件:
mv -f install.log /dir1/
[attach]11569[/attach]


可以用于改文件名:
[attach]11570[/attach]


移动的时候也可以改名:
[attach]11571[/attach]



移动目录:
[attach]11572[/attach]









rm命令——删除文件、目录

删除文件:
rm -rf /dir1/test.zip
[attach]11573[/attach]


使用通配符 [color=Blue]*[/color]
rm -rf /dir1/[color=Blue]*[/color].log
[attach]11574[/attach]


删除目录:
[attach]11575[/attach]









stat 命令——查看文件信息
stat lnmp-install.log
[attach]11576[/attach]
注释:
Access: 文件最近被访问的时间;只要文件被读取过,都会更新。
Modify: 文件内容最近被修改的时间;只要文件内容被编辑过,都会更新。
Change: 文件属性最近被修改的时间;当文件的名称、大小、内容、权限、属主、属组等等被修改过,都会更新。








特殊符号 [color=Blue];[/color]
[attach]11577[/attach]

[attach]11578[/attach]

备注:不管第一条命令是否执行成功,都会执行第二条命令。



特殊符号 [color=Blue]&&[/color]
[attach]11579[/attach]

备注:当第一条命令执行成功后,才会执行第二条命令。



特殊符号 [color=Blue]||[/color]
[attach]11580[/attach]

[attach]11581[/attach]

备注:当第一条命令执行不成功后,才会执行第二条命令。




特殊符号 [color=Blue]&[/color]
[attach]11582[/attach]

注释:把命令放在后台执行。











xargs 命令——把管道前面的输出作为xargs后面命令的输入

例子一,把10天前创建的后缀为.tar.gz的文件删除:(会延伸到子目录的)
find /root/ -name "*.tar.gz" -a [color=Blue]-mtime +9[/color] | xargs rm -rf

[color=Blue]-mtime +9[/color] :表示文件的更改时间在10天以前;假设压缩包文件自创建以来都没有更改过,就可以认为文件是在10天以前创建的。
[attach]11583[/attach]



例子二,批量把后缀为.txt的文件进行改名:
ls *.txt |xargs -n1 -i{} mv {} /dir2/{}_bak
[attach]11584[/attach]
笺注:
1. 要先切换到源文件所在的目录,再使用命令ls
2. xargs -n1 -i{}类似于for循环,对前面输出的对象进行逐一处理
3. 第二个{}前面不能加路径,它代表前面输出的对象
4. 第三个{}前面可以加路径
5. 不会延伸到子目录的




例子三,一次性删除多个文件中包含某些内容的行:(以下是删除包含[color=Blue]8.8.8.8[/color]的行)
[attach]11585[/attach]

key='[color=Blue]8.8.8.8[/color]'
echo '
/dir1/11.txt
/dir1/22.txt
/dir1/33.txt
'  | xargs sed -i "/${key}/d" &> /dev/null

[attach]11586[/attach]

注释:/dir1/11.txt、/dir1/22.txt、/dir1/33.txt 都会应用到的。





例子四,一次性修改多个文件的某些内容:(以下是修改[color=Blue]6.6.6.6[/color]为8.8.8.8)
key='[color=Blue]6.6.6.6[/color]'
echo '
/dir1/11.txt
/dir1/22.txt
/dir1/33.txt
'  | xargs sed -i "s/${key}/8.8.8.8/g" &> /dev/null

[attach]11587[/attach]

注释:/dir1/11.txt、/dir1/22.txt、/dir1/33.txt 都会应用到的。





exec 命令——功能类似于命令xargs

例子一,把10天前创建的后缀为.gz的文件删除:(会延伸到子目录的)
find /root/ -name "*.gz" -a -mtime [color=Blue]+9[/color] -exec rm -rf {} \;



例子二,批量把后缀为.txt的文件进行改名:
find /dir1/ -name "*.txt" -exec mv {} {}_bak \;
[attach]11588[/attach]
笺注:
第一个{}前面不能加路径,它代表前面输出的对象(包括路径);
第二个{}前面也不能加路径,它代表前面输出的对象(包括路径);
会延伸到子目录的;



例子三,查找指定目录下大小为0字节的.txt文件并删除:(会延伸到子目录的)
find /dir1/ -type f -size 0 -a -name "*.txt" -exec rm -rf {} \;
[attach]11589[/attach]




例子四,查找当前目录下大于1M的.log文件并删除:(会延伸到子目录的)
find ./ -type f -size +1M -a -name "*.log" -exec rm -rf {} \;
[attach]11590[/attach]




例子五,查找指定目录下的所有空目录并删除:(会延伸到子目录的)
find /dir1/ -type d -empty -exec rm -rf {} \;
[attach]11591[/attach]
注释:虽然有报错,但命令的执行是没问题的。










split 命令——切割文档/文件
split [color=Blue]-b[/color] 500K lnmp-install.log /dir3/zhuohua_
备注:[color=Blue]-b[/color] 是指根据文件大小进行切割
[attach]11592[/attach]

注释:
除了最后一个文件,其他切割出来的文件的大小都是一致的;
切割出来的文件的后缀是自动生成的;
切割的命令执行后,不会影响被切割的原文件;



切割文件的大小单位有K、M、G
split -b [color=Blue]1M[/color] lnmp-install.log /dir3/zhuohua_
[attach]11593[/attach]
注释:切割的命令执行后,切割出来的文件会自动覆盖之前切割出来的文件!!


split -b [color=Blue]1G[/color] lnmp-install.log /dir3/zhuohua_
[attach]11594[/attach]
注释:切割的命令执行后,切割出来的文件会自动覆盖之前切割出来的文件!!




删除名称有序的文件:(有连续范围)
rm -rf /dir3/zhuohua_a[color=Blue][a-c][/color]
[attach]11595[/attach]


删除名称有序的文件:(没有连续范围)
rm -rf /dir3/zhuohua_a[edfg]
[attach]11596[/attach]




还可以依据文件行数来进行切割文件:
split [color=Blue]-l 2000[/color] lnmp-install.log /dir3/zhuohua_
[attach]11597[/attach]

注释:
除了最后一个文件,其他切割出来的文件的行数都是一致的;
切割出来的文件的后缀是自动生成的;
切割的命令执行后,不会影响被切割的原文件;













alias别名

查看别名列表:(默认是这样子的)
[root@localhost ~]#[color=Blue] alias[/color]
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'



删除指定的别名:
[root@localhost ~]# [color=Blue]unalias rm[/color]
[root@localhost ~]#
[root@localhost ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'



修改指定的别名:
[root@localhost ~]# [color=Blue]alias cp='cp -rfp'[/color]
[root@localhost ~]#
[root@localhost ~]# alias
[color=Purple]alias cp='cp -rfp'[/color]
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'


此后使用cp命令时,就算目标文件已经存在,也不会有提示,而是直接覆盖了,如下图:
[attach]11598[/attach]




创建自定义别名:
[attach]11599[/attach]

笺注:如果自定义的新别名,与已经存在的别名的名字是一样时,新的会直接覆盖旧的。



注意,服务器重启后,alias别名会自动还原为默认的!!!




相关文章:
[url=http://blog.zhuohua.store/viewthread.php?tid=246&extra=page%3D1]Linux常用命令(一)[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=254&extra=page%3D1]Shell基础[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=248&page=1&extra=#pid251]sed命令[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=168&page=1&extra=#pid169]CentOS6使用Python3脚本备份站点(Zabbix)+crontab计划任务[/url]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.