Yulong Niu

个人博客

Linux常用命令集锦

Posted at — Nov 8, 2010

1. 压缩与解压缩

.tar.gz格式文件

# 解压 
$ tar -zxvf /filePath/filename.tar.gz

# 压缩 
$ tar -zcvf /filePath/filename.tar.gz /filePath/filename

# 解压到特定文件夹
$ tar -zxvf /filePath/filename.tar.gz -C /filePath/filename 

# 压缩到特定文件夹
$ tar -zcvf /filePath/filename.tar.gz -C /filePath/filename 

# 压缩所有txt类型文件 
$ gzip *.txt

.tar.bz2格式文件

# 解压 
$ tar -jxvf /filePath/filename.taz.bz2

# 压缩
$ tar -jcvf /filePath/filename.tar.bz2 /filePath/filename

.rar格式文件

需要安装rar工具, 下载对应的linux版本,解压,make即可。

# 解压
$ rar e /filePath/filename.rar /filePath/filename

# 压缩
$ rar a -m5 /filePath/filename.rar /filePath/filename

.zip格式文件

需要安装zip和unzip工具

$ sudo dnf install zip
$ sudo dnf install unzip
# 解压
$ unzip filename.zip

# 只打印最简短解压信息,并不解压
$ unzip -tq filename.zip

# 解压其中一个文件
$ unzip filename.zip onefile

# 解压到特定目录
$ unzip filename.zip -d /filePath/filename

# 压缩当前目录
$ zip filename *

# 压缩当前目录包括所有子目录
$ zip -r filename *

gzip使用方法:

# 保留源文件压缩
$ gzip -c filename > filename.gz

# 保留源文件解压
$ gunzip -c filename.gz > filename

2. 文件夹操作

# 创建 
$ mkdir

# 删除 
$ rm  

# 删除整个文件夹 
$ rm -rf

# 复制 
$ cp   

# 复制文件夹  
$ cp -r

3. 目录

# 显示 
$ ls

# 列表显示文件和相关权限 
$ ls -l

# 列表显示文件并按照文件名逆序排列
$ ls -rl

# 显示隐藏文件 
$ ls -a

# 可以配合使用
$ ls -al

# 查看文件夹大小 
$ ls -lhs

# 查看目录树 
$ tree

4. 运行 *.sh文件

# 将sh文件赋予可执行权限
$ chomd 777 filename.sh
$ sh /filePath/filename.sh

5. 更改文件名

$ mv oldfile newfile

6. md5报文摘要算法

md5(Message-Digest Algorithm 5)报文摘要,可以用来验证网络文件传输的完整性。

$ md5sum file

7. java类型文件

Java Control Panel位置/usr/java/jdk1.7.0_45/bin/ControlPanel

# 执行.jar格式文件
$ java -jar filename.jar

# 指定内存运行.jar格式文件
$ java -Xmx2000M -jar filename.jar

# 执行.jnlp格式文件
$ javaws filename.jnlp

8. 查看文件

# 将文件直接打印在屏幕上
$ cat filename

9. 查看系统

# 32位还是64位
$ uname -a

# 查询操作系统发行版本
$ sudo lsb_release -a

10. 查看当前路径

$ pwd

11. 查看某个程序/库的安装路径

# 比如查看R的安装位置
$ which R

# 查看某个文件的位置
$ whereis filename

12. 查看一个命令的文档帮助

# 比如man R
$ man commandname

13. 批量处理文件

# 删除满足条件的数据
$ find ./ -name '*' | xargs rm -rf 

# 移动大数据量的文件.
$ find ./ -name "*.gif" | xargs -i mv {} /filePath/ 

14. 修改PATH和LD_LIBRARY_PATH

假设我们程序的绝对路径是/opt/arbtest/arb 两种方法:

# export PATH=$PATH:/opt/arbtest

这种方法当前有效,重启之后就失效了。

# 查看修改该好的PATH
$ export
# 载入修改好的文件 

# 载入root权限profile
$ sudo source /etc/profile

# 载入当前用户.bashrc文件
$ source ~/.bashrc

# 查看修改好的路径
$ echo $PATH

15. 定向输入输出

禁止屏幕输出,即将屏幕输出导入Linux的无底洞 /dev/null,比如

$ cat myFile > /dev/null

此时,导入的是标准屏幕输出(标号为1)stdout。如果要导入标准错误输出(标号为2)stderr,执行

$ cat myFile 2 > /dev/null

如果将两种输出全部导入/dev/null,执行

# 最后的"2>$1"表示2的操作等同于1
$ cat myFile > /dev/null 2>$1

16. 更改文件权限和所有者

使用命令chmod更改文件权限。

# 比如rw-rw-r--对应664
$ chomd 664 filename

使用命令chown更改文件所有者:

$ sudo chown -R myOwner:myGroup fileName

17.更改文件时间戳

# 更新myfile的存取和修改时间;如果myfile不存在,则创建该文件
$ touch filename

18. 挂载NTFS分区

CentOS需要手动挂在NTFS分区,下载并安装NTFS-3G,安装方法:

$ cd ./configure 
$ make
$ sudo make install 

查找NTFS分区路径,此处假定为/dev/sta1

# 查看硬盘分区
$ sudo fdisk -l

# 挂载NTFS分区
$ sudo mkdir /mnt/NTFStest
$ sudo mount -t ntfs-3g /dev/sta1 /mnt/NTFStest

# 卸载分区
$ sudo umount /mnt/NTFStest

如果需要自动挂载ntfs分区,首先要查看分区信息,比如uuid

$ sudo blkid

之后修改/etc/fstab,添加需要挂载的分区

UUID=12D345251F34 /media/D ntfs defaults 0 0

19. dnf服务相关

以下命令都可以配合grep使用

# 安装最快源插件
$ sudo dnf install dnf-plugin-fastestmirror

# 安装并行下载工具
$ sudo dnf install dnf-axelget

# 终止dnf安装
$ sudo rm -f /var/run/yum.pid

# 查询包
$ sudo dnf search pkg

# 重新安装包
$ sudo dnf reinstall pkg

# 升级包
$ sudo dnf update pkg

# 卸载包
$ sudo dnf remove pkg

# 查询已安装包信息
$ sudo dnf info pkg

# 查看仓库包列表
$ sudo dnf list pkg*

# 查看已安装的包
$ sudo dnf list installed

# 搜索命令
$ sudo dnf whatprovides MyCommand

20. 修改配置文件

可以使用多种文本编辑器,最常用的是EmacsVim,使用方法直emacs或者vim和文件名即可。

# 修改Apache服务器配制文件
$ vim httpd.conf
$ emacs httpd.conf

21. 用户管理

# 查看用户 
$ w 
$ who
# 超过500为后建用户
$ cat /etc/passwd

# 新建用户 
$ useradd usrname

# 新建用户设置密码 
$ passwd usrname newpasswd

# 删除用户 
$ userdel -r usrname

# 查看用户登陆
$ last
$ last usrname

# 查看当前任务 
$ top

22. deb和rpm包互转

# deb转换为rpm
$ alien -r filename.deb

# rpm转换成deb
$ alien -d filename.rpm
$ sudo dnf install apt
$ sudo apt-get update
$ sudo apt-get pkg

23. 查看和终止进程

# 查看进程树
$ pstree -p

# 看全部进程
$ ps -A

# 强制终止进程
$ kill -9 7473

# 释放内存
$ free -m

24. 查看网络有监听的端口

$ netstat -lntp

25. SSH服务

$ nohup /filepath/testScript.py 
ServerAliveInterval 60

两步操作。首先,ssh-keygen -t rsa生成密钥和公钥。之后,ssh-copy-id usrname@remote-server上传公钥。

26. 查看某一个库文件的位置

$ locate libGLU.so

27. rpm包

# 安装rpm包 
$ sudo rpm -ivh pkg.rpm

# 更新rpm包
$ sudo rpm -Uvh pkg.rpm

# 查看已经安装的包 
$ sudo rpm -qa | grep pkg.rpm

# 卸载rpm包 
$ sudo rpm -e pkg

28. Centos 6 升级 python 2.7

参考网址 1, 2

29. CPU信息

# 查询CPU信息
$ lscpu

# 物理CPU个数
$ grep 'physical id' /proc/cpuinfo | sort -u | wc -l

# 核心个数
$ grep 'core id' /proc/cpuinfo | sort -u | wc -l

# 线程个数
$ grep 'processor' /proc/cpuinfo | sort -u | wc -l
$ nproc

查看CPU温度

# 安装lm_sensors工具
$ sudo dnf install lm_sensors
$ sensors

30. 查询文件和文件夹大小

$ du -h myfile
$ du -h filepath

31. 查看内存情况

# 查看内存使用情况
$ free

# 物理内存
# dmidecode -t memory | grep Size

32. 查看文件头部和尾部

# 头部
$ head -5 file

# 尾部
$ tail -7 file

33. 下载命令

$ wget -c -t 0 -w 30 httplink
$ axel -n 8 -a -S5 httplink -o folder

34. 开机启动

# 开机启动httpd
$ sudo chkconfig httpd on
# 关闭httpd
$ sudo chkconfig httpd off
# 开启启动列表
$ sudo chkconfig --list

35. 系统运行日志

# cat /var/log/messages

36. 获取系统时间

# 获取文件时间
$ stat filename | grep Modify | awk '{print $2, $3}

# 获取当前时间
$ date
$ date -d '-1 day'
$ date -d '+1 hour'
$ date -d yesterday '+%F %T'
$ date -d tomorrow +%s

# 获取本月日历
$ cal

37. 定时执行程序

使用cron,首先开启:

# 开启
$ sudo service crond start
# 重启
$ sudo service crond restart

建立描述文件,比如testCron

# 每半个小时执行command
0,30 * * * * commmand

提交

# 提交
$ crontab testCron
# 查看
$ crontab -l
# 删除
$ crontab -r
# 编辑
$ crontab -e

38. 添加大于2T的硬盘

# 确定添加硬盘,比如/dev/sda
$ sudo fdisk -l

使用parted分区

$ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be
lost. Do you want to continue?
Yes/No? yes
(parted)
Partition
File system type?  [ext2]?
Start?
End?
(parted)
Model: ATA WDC WD4005FZBX-0 (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  4001GB  4001GB  ext4

(parted)
Information: You may need to update /etc/fstab.

格式化硬盘

$ sudo mkfs.ext4 /dev/sda1

查看硬盘供应商信息

$ sudo lshw -C disk

39. 安装Perl模块

使用cpanm安装Perl模块。

$ sudo dnf install cpanm
$ sudo cpanm My::Module

40. rsync同步文件

$ rsync -rlptDP testFolder romateMachine:/home/test

## 保持文件group和owner
## -a相当于-rlptgoD
$ rsync -aP testFolder romateMachine:/home/test

参考资料

更新记录

2019年04月03日