Skip to content Skip to main navigation Skip to footer

CentOS

How to Install VLC Media Player on CentOS 7 Linux

This post will show you how to install VLC Media Player on your CentOS 7 Linux. How do I install the latest VLC Player version through command line on the latest CentOS 7 operating system? This guide will show step by step instruction to install VLC Media Player in CentOS 7 Linux.

What is VLC Media Player?


VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs and various streaming protocols. It supports most of the common video formats, so it is very popular in the Linux world.

VLC Media Player is also available for Desktop operating systems and mobile platforms, such as: Window phone, Android, IOS and Tizen.

Before installing VLC Media Player on your CentOS 7 Linux system, and you need to make sure that you are logged in as a user with sudo privilege so that to be able to install packages.

Before launch VLC Player, you need to make sure that a graphical environment is installed on your CentOS 7 system, so that you can be able to use VLC media player.

install vlc player ubuntu 20.04_13

Install VLC Media Player on CentOS 7


To install VLC Media Player on your CentOS 7 Linux system, and just do the following steps:

Step1: install EPEL Repository

Since VLC packages are available in the RPM Fusion repository. And the RPM Fusion repository depends on the EPEL repository. To install EPEL repository, just do the following steps:

$ sudo yum install epel-release -y

Once epel package is installed, it will create epel repository files under /etc/yum.repos.d/ directory.

[devops@localhost ~]$ cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

Step2: install RPM Fusion Repository

You need to install RPM Fusion repository package on your CentOS 7 Linux for installing VLC media player, type:

$ sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm

Outputs:

[devops@localhost ~]$ sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
rpmfusion-free-release-7.noarch.rpm | 6.3 kB 00:00:00
Examining /var/tmp/yum-root-qXxyZY/rpmfusion-free-release-7.noarch.rpm: rpmfusion-free-release-7-4.noarch
Marking /var/tmp/yum-root-qXxyZY/rpmfusion-free-release-7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rpmfusion-free-release.noarch 0:7-4 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================
Installing:
rpmfusion-free-release noarch 7-4 /rpmfusion-free-release-7.noarch 3.6 k

Transaction Summary
============================================================================================================================================================================================
Install 1 Package

Total size: 3.6 k
Installed size: 3.6 k
Is this ok [y/d/N]:

Installed:
rpmfusion-free-release.noarch 0:7-4
Complete!

Once it is installed successfully. One RPM Fusion repo file should be created under the /etc/yum.repos.d/ directory.
You can verify all repo list by run the below command:

$ yum repolist

Outputs:

[devops@localhost ~]$ yum repolist
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Determining fastest mirrors
* base: mirrors.aliyun.com
* centos-sclo-rh: mirrors.163.com
* centos-sclo-sclo: mirrors.cn99.com
* elrepo: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* rpmfusion-free-updates: mirrors.piconets.webwerks.in
* updates: mirrors.aliyun.com
rpmfusion-free-updates | 3.7 kB 00:00:00
(1/2): rpmfusion-free-updates/x86_64/group_gz | 1.4 kB 00:00:00
(2/2): rpmfusion-free-updates/x86_64/primary_db | 253 kB 00:00:01
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,070
centos-sclo-rh/x86_64 CentOS-7 - SCLo rh 6,943
centos-sclo-sclo/x86_64 CentOS-7 - SCLo sclo 802
elrepo ELRepo.org Community Enterprise Linux Repository - el7 122
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,446
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 413
mysql-connectors-community/x86_64 MySQL Connectors Community 165
mysql-tools-community/x86_64 MySQL Tools Community 115
mysql57-community/x86_64 MySQL 5.7 Community Server 444
rpmfusion-free-updates/x86_64 RPM Fusion for EL 7 - Free - Updates 247
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 1,134
repolist: 33,901

From the above outputs, you can see that rpmfusion-free-updates repo has been enabled.

Step3: install VLC Media Player on CentOS 7

Now you can install VLC Media player package using yum command on your CentOS 7 Linux system, type the following command:

$ sudo yum install vlc

Outputs:

[devops@localhost ~]$ sudo yum install vlc
[sudo] password for devops:
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* centos-sclo-rh: mirrors.aliyun.com
* centos-sclo-sclo: mirror.bit.edu.cn
* elrepo: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* rpmfusion-free-updates: mirrors.ustc.edu.cn
* updates: mirrors.aliyun.com
rpmfusion-free-updates | 3.7 kB 00:00:00
(1/2): rpmfusion-free-updates/x86_64/group_gz | 1.4 kB 00:00:01
(2/2): rpmfusion-free-updates/x86_64/primary_db | 253 kB 00:00:02
Resolving Dependencies
--> Running transaction check
---> Package vlc.x86_64 1:3.0.11.1-3.el7 will be installed
Total download size: 34 M
Installed size: 137 M
Is this ok [y/d/N]:
Complete!

Once VLC is installed successfully on your system, and you can use the following rpm command with -q option to verify it.

$ rpm -q vlc

Outputs:

[devops@localhost ~]$ rpm -q vlc
vlc-3.0.11.1-3.el7.x86_64

Step4: launch the VLC Media Player on CentOS 7

You can now launch the VLC player either from the command line interface by running the following vlc command or by clicking on Applications menu, then click on “Sound & video” menu, click on “VLC media player” icon to start VLC.
$ vlc

install vlc centos7-1

install vlc centos7-2

Updating VLC Media Player on CentOS 7


If you would like to update VLC Media Player to the latest version or a new version is released from its official side, and you can update it through your desktop software update tool or just run the following command in your terminal interface:

$ sudo yum udpate vlc

Outputs:

[devops@localhost ~]$ sudo yum update vlc
[sudo] password for devops: 
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* centos-sclo-rh: mirrors.aliyun.com
* centos-sclo-sclo: mirror.bit.edu.cn
* elrepo: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* rpmfusion-free-updates: mirrors.ustc.edu.cn
* updates: mirrors.aliyun.com
No packages marked for update

Now the latest stable version is 3.0.11. so no packages need to be updated.

Conclusion


You should know that how to install VLC Media Player on CentOS 7 Linux system. and if you want to get more details about VLC, and you can visit its official page.

 

How to Install VLC Media Player on CentOS 8 Linux

This post will show you how to install VLC Media Player on your CentOS 8 Linux. How do I install the latest VLC Player version through command line on the latest CentOS 8 operating system? This guide will show step by step instruction to install VLC Media Player in CentOS 8 Linux.

What is VLC Media Player?


VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs and various streaming protocols. It supports most of the common video formats, so it is very popular in the Linux world.

VLC Media Player is also available for Desktop operating systems and mobile platforms, such as: Window phone, Android, IOS and Tizen.

Before launch VLC Player, you need to make sure that a graphical environment is installed on your CentOS 8 system, so that you can be able to use VLC media player.

install vlc player ubuntu 20.04_13

Install VLC Media Player on CentOS 8


To install VLC Media Player on your CentOS 8 Linux system, and just do the following steps:

Step1: install EPEL Repository

Since VLC packages are available in the RPM Fusion repository. And the RPM Fusion repository depends on the EPEL repository. To install EPEL repository, just do the following steps:

$ dnf install epel-release -y

Once epel package is installed, it will create epel repository files under /etc/yum.repos.d/ directory.

[root@mydevops ~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

[epel-debuginfo]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Source
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
gpgcheck=1

[root@mydevops ~]#

Step2: install RPM Fusion Repository

You need to install RPM Fusion repository package on your CentOS 8 Linux for installing VLC media player, type:

$ dnf -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm

Outputs:

root@mydevops ~]# dnf -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
Last metadata expiration check: 1:23:35 ago on Sun 13 Sep 2020 07:02:03 AM EDT. rpmfusion-free-release-8.noarch.rpm                                                                                                                                                                              8.1 kB/s |  11 kB     00:01    Dependencies resolved.
Install  1 Package Total size: 11 k Installed size: 3.7 k 
Downloading Packages: 
Running transaction check Transaction check succeeded. 
Running transaction test Transaction test succeeded. 
Running transaction   
Preparing        :                                                                                                                                                                                                                         
/1   Installing       : rpmfusion-free-release-8-0.1.noarch                                                                                                                                               1/1   Verifying        : rpmfusion-free-release-8-0.1.noarch         
1/1 Installed products updated. Installed:   rpmfusion-free-release-8-0.1.noarch                                                                                                                                                     Complete!

Once it is installed successfully. One RPM Fusion repo file should be created under the /etc/yum.repos.d/ directory.

You can verify all repo list by run the below command:

$ dnf repolist

Outputs:

[root@mydevops ~]# dnf repolist
repo id                                                                                                  repo name
AppStream                                                                                                CentOS-8 - AppStream
BaseOS                                                                                                   CentOS-8 - Base
epel                                                                                                     Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                                                                             Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                                                                                   CentOS-8 - Extras
google-chrome                                                                                            google-chrome-x86_64
rpmfusion-free-updates                                                                                   RPM Fusion for EL 8 - Free – Updates

From the above outputs, you can see that rpmfusion-free-updates repo has been enabled.

Step3: install VLC Media Player on CentOS 8

Now you can install VLC Media player package using dnf command on your CentOS 8 Linux system, type the following command:

$ sudo dnf install vlc

Outputs:

[root@mydevops ~]# dnf install vlc
RPM Fusion for EL 8 - Free - Updates                                                                                                                                                                             135 kB/s | 262 kB     00:01   
Dependencies resolved.
=================================================================================================================================================================================================================================================
 Package                                                       Architecture                               Version                                                               Repository                                                  Size
=================================================================================================================================================================================================================================================
Installing:
 vlc                                                           x86_64                                     1:3.0.11.1-3.el8                                                      rpmfusion-free-updates                                     1.5 M
Installing dependencies:
 aalib-libs                                                    x86_64                                     1.4.0-0.37.rc5.el8                                                    epel                                                        72 k
Total download size: 47 M
Installed size: 176 M
Is this ok [y/N]: y
Downloading Packages:

Once VLC is installed successfully on your system, and you can use the following rpm command with -q option to verify it.

$ rpm -q vlc

Step4: launch the VLC Media Player on CentOS 8

You can now launch the VLC player either from the command line interface by running the following vlc command or by clicking on Applications menu, then click on “Sound & video” menu, click on “VLC media player” icon to start VLC.

$ vlc

install vlc centos8_1

Set VLC Media Player as the Default Media Player


If you want to set VLC Media Player as the default media player on your current CentOS 8 system, and just do the following steps:

Step1: click Activities menu to open “Activities” window.

install vlc centos8_2

Step2: type “default applications” keyword in searching box and then click on it. The “Default Applications” window will appear.

install vlc centos8_3

Step3: select “VLC Media Player” option from drop down menu list of both Music and Video.

install vlc centos8_4

 

Conclusion


You should know that how to install VLC Media Player on CentOS 8 Linux system. and if you want to get more details about VLC, and you can visit its official page. https://wiki.videolan.org/Documentation:Documentation

 

 

How to Install GNOME And KDE GUI on CentOS 8

This post will guide you how to install Gnome GUI on CentOS 8 Linux operating system. How do I install KDE GUI program on your CentOS 8 system via command line interface. How to enable GUI mode from your CentOS 8 system.

When you installing CentOS8 or RHEL 8 Linux system on your machine, and if you choose the installation type as minimal server, and only command line mode will be installed. If you want to reinstall or enable graphical mode in your current CentOS 8 system, and you need to install GNOME desktop packages or KED desktop packages on your CentOS 8 system.

The below steps will show you how to install GNOME GUI and KED GUI on CentOS 8 or RHEL 8 Linux system on the minimal server installation.

Install GNOME GUI on CentOS 8 or RHEL 8


Step1: you need to check package group list for GNOME GUI Packages by running the following command, type:

$ dnf grouplist

Outputs:

[root@mydevops ~]# dnf grouplist
Last metadata expiration check: 0:00:33 ago on Sun 13 Sep 2020 06:35:52 AM EDT.
Available Environment Groups:
   Server with GUI
   Server
   Workstation
   KDE Plasma Workspaces
   Virtualization Host
   Custom Operating System
Installed Environment Groups:
   Minimal Install
Installed Groups:
   Container Management
   Headless Management
Available Groups:
   .NET Core Development
   RPM Development Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Network Servers
   Scientific Support
   Security Tools
   Smart Card Support
   System Tools
   Fedora Packager
   Xfce

From the above outputs, you can see all the available groups for installation, and you can use the below two group to install GNOME Desktop Environments:

  • Server with GUI
  • Workstation

To install KED Desktop Environment, and you can use the below one package group:

  • KDE Plasma Workspaces

Step2: install GNOME GUI by installing “Server with GUI” or “workstation” package group with the following command:

$ dnf groupinstall “Server with GUI” -y

Or

$ dnf groupinstall “Workstation” -y

Step3: check the default Target. Since “Minimal Install” was installed on your CentOS 8 system, GUI mode was disabled. And you can type the following command to check default target.

$ systemctl get-default

Outputs:

[root@mydevops ~]# systemctl get-default
multi-user.target

Step4: after the installation of GUI group packages were installed successfully. And you still need to change the default target from “multi-user.target” to “graphical.target”. just type the following command to change the default target on your CentOS 8 Linux system.

$ systemctl set-default graphical.target

Outputs:

[root@mydevops ~]# systemctl set-default graphical.targe
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target.

Or you can use another command to enable GUI mode on CentOS 8, type:

$ systemctl isolate graphical.target

Then you can check the current default target status with the following two commands:

$ systemctl list-units --type target --all | egrep graphical.target
$  systemctl status graphical.target

outputs:

[root@mydevops ~]# systemctl list-units --type target --all | egrep graphical.target
  graphical.target           loaded    active   active Graphical Interface      

[root@mydevops ~]# systemctl status graphical.target
graphical.target - Graphical Interface
   Loaded: loaded (/usr/lib/systemd/system/graphical.target; indirect; vendor preset: disabled)
   Active: active since Sun 2020-09-13 05:01:28 EDT; 1h 52min ago
     Docs: man:systemd.special(7)
Sep 13 05:01:28 mydevops.com systemd[1]: Reached target Graphical Interface.

 Step5: reboot your system to start the server with the graphical mode(GNOME GUI).

$ reboot

Step6: once your system starts up, and the login window will appear as below:

install gnome kde centos 8_1

Install KDE GUI on CentOS 8 or RHEL 8


KDE GUI is the desktop environment for Linux offered by the KDE development team. And it is also a popular and beautiful graphical GUI program. To install KDE group package, and you need to add EPEL repo firstly and then get a KDE Plasma desktop. Do the following steps:

Step1: Add EPEL repository

You need to add EPEL repository to install some packages that not available on the official repo of the CentOS 8 Linux system.

Type the following command:

$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Step2: after enable EPEL repo, and you need to update the repo cache and update all available packages on your CentOS 8 system.

$ dnf update

Step3: install KDE Plasma Desktop on your CentOS 8 system with the following command:

$ dnf --enablerepo=epel,PowerTools group -y install "KDE Plasma Workspaces" "base-x"

Conclusion


You should know that how to install GNOME or KDE GUI on your CentOS 8 Linux. If you want to see more detailed information about postman, you can directly go to its official web site.

 

 

Linux 删除文件

本文将会讲述如何在Linux系统下删除文件的方法,以及如何在命令行下删除某个文件中特定的内容行, 或者删除特定日期创建的文件或者目录。
目录如下:

Linux 删除文件命令

在CentOS,Redhat,或者Ubuntu等类Unix系统下,我们主要用来删除文件或文件夹目录的方法是通过执行rm 命令或者 unlink命令。 下面我们来看删除文件命令rm的用法介绍:
rm 命令是Unix或者Linux系统下的主要用来文件系统中删除文件的命令。 当然,在大多数的系统里, 当我们想删除一个文件的时候,需要当前用对对该文件或者目录有写或者可执行的权限。
rm 命令格式:

rm {文件名}
rm [参数] {文件名}
unlink {文件名}
rm –f –r  {文件名}

 
rm 命令参数:
-f, –force 强制删除文件, 不做任何删除操作的提示
-I, –interactive  进行交互式的删除操作
-r, -R, –recursive 将对指定目录中的所有目录或子目录进行递归性的删除
-v, –verbose 显示删除操作的详细信息
–help 显示命令的使用帮助信息
通常情况下,我们会将-r 和-f来同时使用,这样就可以删除所有指定的文件或者目录,并且没有任何的操作提示信息输出。

Linux 删除单个文件夹或目录

让我们来看一个使用rm命令删除指定文件或者目录的例子, 假如你想删除当前目录下的一个文件名为fio.txt 的文件, 执行下面的命令:

# rm fio.txt

Linux 删除多个文件

如果想通过rm命令同时删除多个文件,可以将多个文件的文件名作为rm命令的参数, 执行下面的命令来删除当前目录下的fio1.txt, fio2.txt, fio3.txt 文件:

# rm fio1.txt  fio2.txt fio3.txt

命令输出如下:

root@devops:~/osetc# ls
fio1.txt  fio2.txt  fio3.txt
root@devops:~/osetc# rm fio1.txt fio2.txt fio3.txt
root@devops:~/osetc# ls
root@devops:~/osetc#

Linux 递归删除特定目录下的所有文件

如果要删除的目录里还包含了多层的子目录或者子目录依旧还有目录,那么如果想删除目录里的所有子目录和文件,这个时候我们需要使用rm命令的-rf参数,比如,如果你想删除当前目录下的fio目录,执行下面的命令:

# rm –rf fio

命令输出如下:

root@devops:~/osetc# ls fio
fio1.txt  fio2.txt  fio3.txt  subfio
root@devops:~/osetc# rm -rf fio
root@devops:~/osetc# ls fio
ls: 无法访问'fio': 没有那个文件或目录
root@devops:~/osetc#

Linux 删除文件并做删除前交互确认

如果你想在删除每个文件的时候,让系统都做出确认删除提示,那么这样可以让你不会错误的删除文件,比如要删除当前目录下的fio1.txt, 执行下面的命令:

# rm –I fio1.txt

命令输出如下:

root@devops:~/osetc# ls
fio1.txt
root@devops:~/osetc# rm -i fio1.txt
rm:是否删除普通文件 'fio1.txt'? y
root@devops:~/osetc# ls
root@devops:~/osetc#

Linux 显示删除文件时的信息

如果你想看到linux系统在删除你指定的文件或目录的时候,显示详细的处理信息,那么可以使用rm命令的-v选项,执行命令如下:

$ rm –v fio1.txt

命令输出如下:

root@devops:~/osetc# ls
fio1.txt
root@devops:~/osetc# rm -v fio1.txt
已删除'fio1.txt'
root@devops:~/osetc# ls
root@devops:~/osetc#

Linux系统下删除空目录文件

如果想删除特定目录下的,那么可以使用linux下的另一个命令rmdir, 执行下面命令:

# rmdir fio
# rmdir fio1

Linux下删除文件里的文件列表中的文件

如果某个文件里包含了很多需要删除的特定的文件路径, 那么我们可以使用rm命令并结合下xargs 命令来进行文件删除操作。
例如要删除当前目录下的fio.txt 文件中的列出的所有文件, 那么可以执行下面的命令:

# xargs rm -v < fio.txt

命令输出如下:

root@devops:~/osetc# cat fio.txt
/root/osetc/fio1/file1.txt
/root/osetc/fio1/file2.txt
/root/osetc/fio1/file3.txt
root@devops:~/osetc# xargs rm -v <fio.txt
已删除'/root/osetc/fio1/file1.txt'
已删除'/root/osetc/fio1/file2.txt'
已删除'/root/osetc/fio1/file3.txt'

注意:当你使用rm命令来删除文件的时候,千万不要运行”rm –rf / “ 命令, 因为这个命令会将linux系统的根目录下的所有文件都删除掉,这样的话,就会导致你的系统挂掉。

Linux删除文件名中以连字符或者减号开头的文件名

如果你想删除某个文件名中包含特殊字符的文件,无法直接使用rm 命令进行文件删除。 这个时候我们需要在rm命令后的加上双连字符,再跟文件名即可。 比如要删除-fio.txt文件,就可以执行下面的命令:

# rm -- -fio.txt

 Linux 通过文件的inode号删除文件

当我们在系统里看到文件名里包含乱码或者特殊字符的文件时候,如果简单的通过rm命令来删除文件的话,会失败的。 这个时候该怎么办? 我们可以通过文件唯一的inode号来进行删除操作。
我们需要结合find命令来根据文件的inode号来进行删除文件操作。
查看文件的inode
在linux系统里可以通过命令ll –i 来查看当前目录下的文件的详细信息,输出信息的第一列就是文件的inode号。 执行下面的命令:

#ll –I

命令输出如下:

root@devops:~/osetc# ll -i
总用量 16
131103 drwxr-xr-x 3 root root 4096 3月  14 22:56 ./
131073 drwx------ 6 root root 4096 3月  14 22:56 ../
262172 drwxr-xr-x 2 root root 4096 3月  14 22:57 fio1/
131106 -rw-r--r-- 1 root root   82 3月  14 22:56 fio.txt
131104 -rw-r--r-- 1 root root    5 3月  15 21:23 fio2.txt
131105 -rw-r--r-- 1 root root    5 3月  15 21:23 fio3.txt
131106 -rw-r--r-- 1 root root    5 3月  15 21:23 fio4.txt
131108 -rw-r--r-- 1 root root    5 3月  15 21:24 fio5.txt

通过find命令的delete参数进行文件删除
从上面的输出中,我们可以看到fio.txt 文件的inode号为131106, 通过执行下面的find命令并结合其-inum 参数来删除文件,执行下面的命令:

#find ./* -inum 131106 –delete

命令输出如下:

root@devops:~/osetc# find ./ -inum 131106 -delete
root@devops:~/osetc# ll -i
总用量 12
131103 drwxr-xr-x 3 root root 4096 3月  15 21:17 ./
131073 drwx------ 6 root root 4096 3月  14 22:56 ../
262172 drwxr-xr-x 2 root root 4096 3月  14 22:57 fio1/
131104 -rw-r--r-- 1 root root    5 3月  15 21:23 fio2.txt
131105 -rw-r--r-- 1 root root    5 3月  15 21:23 fio3.txt
131106 -rw-r--r-- 1 root root    5 3月  15 21:23 fio4.txt
131108 -rw-r--r-- 1 root root    5 3月  15 21:24 fio5.txt

通过find命令的exec参数并结合rm命令进行文件删除操作
我们也可以通过find命令的exec参数并结合rm删除命令来根据文件的inode号做文件的删除,执行下面的命令:

#find ./ -inum 131104 –exec rm –i {} \;

命令输出如下:

root@devops:~/osetc# find ./ -inum 131104
./fio2.txt
root@devops:~/osetc# find ./ -inum 131104 -exec rm -i {} \;
rm:是否删除普通文件 './fio2.txt'? y
root@devops:~/osetc# ll -i
总用量 24
131103 drwxr-xr-x 3 root root 4096 3月  15 21:29 ./
131073 drwx------ 6 root root 4096 3月  14 22:56 ../
262172 drwxr-xr-x 2 root root 4096 3月  14 22:57 fio1/
131105 -rw-r--r-- 1 root root    5 3月  15 21:23 fio3.txt
131106 -rw-r--r-- 1 root root    5 3月  15 21:23 fio4.txt
131108 -rw-r--r-- 1 root root    5 3月  15 21:24 fio5.txt

通过find命令并结合xargs来删除文件
当我们使用find命令查看到指定inode号的文件后,还可以结合xargs命令来进行文件的删除,执行命令如下:

# find ./ -inum 131105 |xargs rm -v

命令输出如下:

root@devops:~/osetc# find ./ -inum 131105
./fio3.txt
root@devops:~/osetc# find ./ -inum 131105 |xargs rm -v
已删除'./fio3.txt'

Linux 删除指定日期之前的文件

如果你想删除指定日期之前的所有的文件,这个时候我们需要通过linux下find命令并结合其-mtime参数进行文件的查找,在通过rm命令对查找到的文件进行删除。
执行下面的命令来查找root目录下十天之前创建或更改过的文件:

root@devops:~/osetc# find /root -mtime +10 -name "mysql-server*"
/root/mysql-server_5.7.20-1ubuntu16.04_amd64.deb-bundle.tar
/root/mysql-server_5.7.20-1ubuntu16.04_amd64.deb

下一步就可以使用rm命令对查找到的文件进行删除,执行下面的命令:

# find /root -mtime +10 -name "mysql-server*"  -exec rm -rf {} \;

当然也可以使用find命令的ctime参数。

Linux 通过rm()函数进行文件的删除

在linux系统里可以通过unlink和rmdir函数来进行文件的删除,但是rmdir函数只能删除空目录文件,所有我们需要新写一个函数来先删除目录文件下的所有文件,使其成为一个空目录,进而调用rmdir函数删除空目录。如果是普通文件的话,就可以通过unlink函数进行删除。 通过新函数rm来判断文件类型,目录文件通过rm_dir函数删除,普通文件通过unlink函数删除。
rm_dir函数如下:
//递归删除目录下的所有文件

int rm_dir(std::string dir_full_path)
{
DIR* dirp = opendir(dir_full_path.c_str());
if(!dirp)
{
return -1;
}
struct dirent *dir;
struct stat st;
while((dir = readdir(dirp)) != NULL)
{
if(strcmp(dir->d_name,".") == 0
|| strcmp(dir->d_name,"..") == 0)
{
continue;
}
std::string sub_path = dir_full_path + '/' + dir->d_name;
if(lstat(sub_path.c_str(),&st) == -1)
{
Log("rm_dir:lstat ",sub_path," error");
continue;
}
if(S_ISDIR(st.st_mode))
{
if(rm_dir(sub_path) == -1) // 如果是目录文件,递归删除
{
closedir(dirp);
return -1;
}
rmdir(sub_path.c_str());
}
else if(S_ISREG(st.st_mode))
{
unlink(sub_path.c_str());     // 如果是普通文件,则unlink
}
else
{
Log("rm_dir:st_mode ",sub_path," error");
continue;
}
}
if(rmdir(dir_full_path.c_str()) == -1)//delete dir itself.
{
closedir(dirp);
return -1;
}
closedir(dirp);
return 0;
}

Rm函数如下:

int rm(std::string file_name)
{
std::string file_path = file_name;
struct stat st;
if(lstat(file_path.c_str(),&st) == -1)
{
return -1;
}
if(S_ISREG(st.st_mode))
{
if(unlink(file_path.c_str()) == -1)
{
return -1;
}
}
else if(S_ISDIR(st.st_mode))
{
if(file_name == "." || file_name == "..")
{
return -1;
}
if(rm_dir(file_path) == -1)//删除目录下的所有文件.
{
return -1;
}
}
return 0;
}

Linux 删除文件后 空间没有释放

当Linux系统下的磁盘的使用空间达到100%后,我们肯定会对文件系统里的某些不用的文件或者比较大的日志文件进行清理,比如我们会删除apache服务的日志文件, 但是当我们通过rm命令删除掉日志文件后, 我们通过df命令查看当前磁盘的可用空间依旧没有变化,这是怎么回事呢? 为什么文件删除后,磁盘空间没有被释放?
磁盘空间没有被释放的原因如下
在Linux文件系统里,当我们通过rm命令将文件删除后,系统只会将文件的链接或者指针删除掉,但是数据并没有被从所占用的磁盘空间清除,而如果之前调用这个文件的进程依旧在运行的话,那么指针也不会被删除,因为该进行依然会写数据到该文件里,所以内核依然会认为该文件没有被删除。 所以当我们再次使用df命令查看磁盘空间的时候,空间使用率依旧没有变化。
磁盘空间没有被释放的解决方法:
其实解决办法很简单,那就是找到调用这个文件的进程,将该进程重新启动或者关闭,比如重新启动HTTP服务。当然还有万能的方法,那就是重启Linux系统。
对于不能重启系统或者进程的情况,我们可以通过对日志文件的写操作,对该文件进行重新覆盖,这样就会清空该文件所占用的存储空间。比如要清空HTTP的日志文件,我们可以执行下面的命令:

#echo “”> /tmp/access.log

Linux 删除文件恢复

通过上面的介绍,我们知道文件通过rm命令删除后,系统只是删除了执行该文件inode链接,但并没有删除文件的数据块。 我们可以通过proc文件系统来恢复删除的文件,因为每一个进程在proc文件系统里都会有一个目录和进程名字,里面会包含一个文件描述符子目录,该进程需要打开的所有文件链接都会在这个目录里。 所以当从文件系统里删除文件后,proc文件系统里依然还有一个inode的引用。
下面我们来演示将恢复删除后的/var/log/syslog 日志文件:
1# 删除日志文件/var/log/syslog, 执行下面的命令:

#rm /var/log/syslog

2# 通过lsof命令来查看进程的文件描述符和相关文件名信息,执行下面的命令:

# lsof | grep /var/log/syslog

命令输出如下:

root@devops:~/osetc# lsof | grep /var/log/syslog
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
rsyslogd    972                syslog    5w      REG                8,1    24202    1311921 /var/log/syslog (deleted)

从上面的输出中可以看到进程的pid号为972
3# 进入proc文件系统查看进程号为972的文件描述信息,执行命令:

# ll /proc/972/fd/

命令输出如下:

root@devops:~/osetc# ll /proc/972/fd/
总用量 0
dr-x------ 2 root   root    0 3月  15 21:14 ./
dr-xr-xr-x 9 syslog syslog  0 3月  14 22:22 ../
lr-x------ 1 root   root   64 3月  15 21:14 0 -> /dev/null
l-wx------ 1 root   root   64 3月  15 21:14 1 -> /dev/null
l-wx------ 1 root   root   64 3月  15 21:14 2 -> /dev/null
lrwx------ 1 root   root   64 3月  15 21:14 3 -> socket:[13886]
lr-x------ 1 root   root   64 3月  15 21:14 4 -> /proc/kmsg
l-wx------ 1 root   root   64 3月  15 21:14  5 -> /var/log/syslog (deleted)
l-wx------ 1 root   root   64 3月  15 21:14 6 -> /var/log/auth.log
l-wx------ 1 root   root   64 3月  15 21:14 7 -> /var/log/kern.log

从输出里我们可以看到syslog文件的链接信息,可以通过head -5 命令来查看文件内容。

#head -5  /proc/972/fd/5

命令输出如下:

root@devops:~/osetc# head -5 /proc/972/fd/5
Mar 14 22:23:06 devops anacron[998]: Job `cron.daily' terminated
Mar 14 22:23:13 devops gnome-session[1826]: Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Mar 14 22:27:15 devops anacron[998]: Job `cron.weekly' started
Mar 14 22:27:15 devops anacron[2837]: Updated timestamp for job `cron.weekly' to 2018-03-14
Mar 14 22:27:20 devops anacron[998]: Job `cron.weekly' terminated

4# 执行下面的命令,恢复syslog文件

#cat  /proc/972/fd/5 >/var/log/syslog

命令输出如下:

root@devops:~/osetc# cat /proc/972/fd/5 >/var/log/syslog
root@devops:~/osetc# ls /var/log/syslog
/var/log/syslog

我们可以看到被删除后的syslog文件已经被恢复了。
也可以参考本站的另一篇文章,实现linux系统下的回收站功能,进而更方便的实现删除文件的恢复。


99%的人还阅读了:

Linux下文本文件中^M 符号问题的解决

在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件。我们会发现文件的每行结尾都会有一个^M符号,这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致,
对于回车符的定义:
windows:0D0A
unixlinux: 0A
MAC: 0D
比较快捷的去除这些符号的方法有这么几种:
(1)是用VI的命令:
使用vi打开文本文件
vi dos.txt
命令模式下输入

    :set fileformat=unix
    :w
 

(2) VI下使用正则表达式替换

   g/^M/s/^M//
 

或者

   %s/^M//g
 

(3)使用sed 工具

    sed ’s/^M//’ filename > tmp_filename
 

(4)既然window下的回车符多了‘ ’,那么当然通过删除‘ ’ ,也可以实现:
tr -d ” ”
(5)最后一个方法是本人最常用的方法,个人觉得最方便
在终端下敲命令:

   $ dos2unix filename
 

直接转换成unix格式,就OK了!~

vim /vi :如何在vim 编辑器里画图

如果你想在vim编辑器里也可以实现画简单的线性图,那么可以使用vim 里的一个叫 VIM Drawit!的插件。
下面来看看如何来安装vim drawit! 插件:
首先下载vim drawit! 安装包,输入下面的命令:

wget -O DrawIt.vba.gz http://www.vim.org/scripts/download_script.php?src_id=8798
 

安装vim drawit!插件
使用vim 命令编辑下载的vim drawit! 文件,在末行模式下输入下面的命令:

:so %
:q
 

vim 编辑器里 Drawit! 插件使用
\di 命令将会开启drawit! 插件
\ds 命令将会关闭drawit! 插件
举个例子:
使用vim drawit!插件画个导航图
使用上下左右键你可以用来画出方框或者方向线。
如下图:
如何在vim 编辑器里画图1

vi /vim:如何将光标跳转到文件末尾

当你用 vi /vim 编辑一个大文件的时候,如何能从当期行快速跳转到最后一行呢?
你可以使用下面的 vi / vim 的快捷键命令:

G
 

该命令会直接跳转到末尾行。
如果想在回到开始行的话,可以输入下面的命令:

1G
 

gg
 

 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

Linux: vi / vim 字符串搜索和替换

在linux或者unix系统下,我们常常会用vi/vim命令打开一个文件,并在文件里查找特定的字符串,也有可能会将找到的字符串替换成另一个字符串。
vi/vim
 
vi /vim 命令字符串搜索并替换的命令格式如下:

%s/old/new/
 

 
vi /vim 命令字符串搜索并替换例子
查找字符串“oldtest”并将其替换成”newtest”,在vim 末行模式下输入命令:

:$s/oldtest/newtest/
 

 
上面的命令只会替换所有行里发现的第一个匹配的字符串。
如果你想替换文本所有匹配的字符串,可以使用下面的命令:

:%s/oldtest/newtest/g
 

 
vi/vim命令限定范围查找并替换字符串
如果你只想将从第10行到第20行的文本行中的查找并替换字符串,那么可以输入下面的命令:

:10,20s/oldtest/newtest/
 

 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

vi / vim: 如何在打开文件的时候直接跳转到指定的函数或行

当使用linux 下vi /vim命令打开文件后,你肯定想直接跳转到某个特定的函数或者字符串或者某行。如何来做?
你可以使用下面的命令来实现:
vi +<函数名> <要打开的文件名>

vi +<行号> <要打开的文件名>
例子:打开文件后直接跳转到第五行,输入下面的命令:

vim +5 foo.txt
 

输出如下:
vim 如何在打开文件的时候直接跳转到指定的函数或行1
打开文件后直接跳转当特定的函数,输入下面的命令:

vim +/pathmunge /etc/profile
 

命令输出:
vim 如何在打开文件的时候直接跳转到指定的函数或行1
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

常用 vi / vim 快捷键命令总结

当你在使用vim命令编辑一个文件的时候,会用到很多的快捷键操作,比如拷贝一整行,拷贝多行文本等。。
vi/vim
#1 拷贝整行文本

yy
 

shift y
 

:ny
 

#2 拷贝从光标位置开始到行尾的字符串

y$
 

#3 拷贝当前行之后的三行内容

3yy
 

#4 拷贝一个范围的文本行

:1,5y
 

1y5
 

#5 删除一整行

dd
 

:nd
 

#6 删除从光标处到行末的所有字符串

d$
 

shift d
 

#7 删除多行文本

:1,5d
 

1d 5
 

#8 将vim切换到替换模式

shift r
 

#9 撤销操作

u
 

#10 重做操作

ctrl r
 

解决ubuntu下vim “E319:命令不可用”问题

在ubuntu linux 系统下,但使用vim 命令打开一个文件后,如果你输入 vim 命令:syntax on 来开启代码高亮显示的时候,会遇到下面的E319问题。
E319: Sorry, the command is not available in this version: syntax on
如何来解决这个问题呢?
你需要重新安装完整版的vim版本,输入下面的命令:

sudo apt-get install vim
 

vim / vi命令在没有root权限的情况下如何保存文件

当你在linux系统下以一个普通用户登录系统后,使用vi/vim命令编辑一个文件,当你想保存文件的时候,系统会提示说你么有root权限,无法保存。这个时候该怎么办?
 
你可以使用 linux tee 命令结合 linux sudo 命令来实现没有root权限的情况下不用创建临时文件就可以保存更改的文件。
 
首先使用普通用户登录当前系统,输入下面的vi 命令,打开一个文件:
 

vi /etc/apache2/conf.d/mediawiki.conf
 

 
打开文件后,做一些更改,输入wq保存,你会看到下面的错误。

E166: Can't open file for writing
 

 
看下图:
 
vim vi 没有root权限保存文件1
这个时候如果想保存文件,可以在末行模式下输入下面的命令:

:w !sudo tee %
 

 
vim vi 没有root权限保存文件2
 
其中,
:w 是写一个文件
!sudo 是调用shell sudo 命令
tee 是将输出的内容重定向
 
vim vi 没有root权限保存文件3
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

启用或关闭vim编辑器中的代码高亮显示

当你使用vim编辑器编写代码的时候,vim编辑器具有识别不同语言代码的高亮显示功能,如何来开启vim代码高亮显示功能呢? 如何来关闭vim 代码高亮显示呢?
大家都知道vim是一个非常强大的代码编写工具,可以用来编写各种不同的语言。
 
启用vim代码高亮显示
首先使用vim命令打开一个文件,输入命令:

vim filename
 

 
然后输入“:”进入末行模式,输入下面的vim命令:

:syntax on
 

 
默认情况下,vim编辑器的代码高亮功能是启用的。
 
下面是用vim打开的高亮显示的bash shell 代码:
 
启用或关闭vim编辑器中的代码高亮显示
启用或关闭vim编辑器中的代码高亮显示
 
关闭vim代码高亮显示
进入末行模式,输入下面的命令:

:syntax off
 

 
看下图:
启用或关闭vim编辑器中的代码高亮显示
 
让代码高亮显示设置永久生效
你可以通过编辑~./vimrc 配置文件,加入下面的内容到文件里,保存并退出后,就会永久生效

vim .vimrc
 

加入行:

syntax on
 

 
保存退出。
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

vi /vim:如何退出 vi /vim 文本编辑器

在linux 系统下如何退出当前的vi/vim编辑器。
vi /vim 是linux系统下用的最多的一个文本编辑器,可以用这个编辑器来编辑所有的二进制文本,特别是用来编辑不同的程序文件,可以高亮显示代码行。
输入下面的vim/vi 命令打开文件:
vim filename
vi filename
退出vim编辑器
首先你需要从输入模式退出到命令模式,可以输入ESC键。然后,输入下面的命令,并回车就可以退出vim编辑器。

:q
 

:q!
 

:x
 

如图:
如何退出 vi vim 文本编辑器
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

Vi / Vim:如何保存并退出编辑器

当使用vi /vim 命令编辑一个文件后,如何才能保存并退出当前的vi /vim 编辑器呢?
vi/vim
为了保存并退出vi /vim,可以参照下面的步骤:
1# 首先从输入模式返回到命令模式,输入:ESC 键
2# 输入”:”,进入末行模式
3# 再输入下面的命令

x
 

x!
 

wq!
 

如下图:
Vi Vim 如何保存并退出编辑器
之后输入回车,就能保存并退出 vi /vim 了。
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

Vim如何同时编辑多个文件

在linux系统下,如何使用vim 命令同时打开并编辑多个文件呢?文本将会讲述如何使用vim 命令在编辑器里同时显示多个文件的窗口,并对其进行编辑。
vi/vim
 
在命令行窗口下输入下面的vim 命令同时打开两个编辑窗口(水平显示):

vim -o /etc/passwd /etc/hosts
 

 
输出入下图:
Vim如何同时编辑多个文件1
 
如果想垂直显示编辑窗口,可以使用大O选项,输入下面的命令:

vim -O /etc/passwd /etc/hosts
 

 
输出如下图:
Vim如何同时编辑多个文件1
 
在不同的窗口之间切换
当你在不同的窗口打开多个文件的时候,你需要在不同的窗口之间切换,参照下面的vim 快捷键命令:
1.输入 CTRL + W + <左箭头> 将光标定位到左边的窗口
2.输入 CTRL + W + <右箭头> 将光标定位到右边的窗口
3.输入 CTRL + W + <向上箭头> 将光标定位到上面的窗口
4.输入 CTRL + W + <向下箭头> 将光标定位到下面的窗口
5. 输入两次CTRL+W将会快速的在不同的窗口之间切换
 
当你切换到你想编辑的窗口后,就可以和正常使用 vim 编辑器一样对文件进行编辑了。
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

vi / vim 如何同时打开多个文件

对于刚使用 linux vi /vim 文本编辑器的人来说,可能想知道,如何才能使用 vi /vim 同时打开多个文件,并在不同的打开的文件之间进行切换。本文将会讲述通过 vi /vim 命令同时打开两个文件,并在这两个文件之间进行切换。
vi/vim
 
输入下面的 vi /vim 命令,打开两个文件:

vi foo.txt test.txt
 

 
如果想同时打开当前目录下所有的”.txt”的文件,可以输入:

vi *.txt
 

 
当打开多个文件后,我们来看些如何在不同的文件之间进行切换。
1# 列出当前 vi /vim 命令打开的所有文件
输入命令:

:ls
 

 
命令输出:

:ls
  1 %a   "foo.txt"                         line 1
  2      "test.txt"                     line 0
 

 
2# 从当前打开文件切换到另一个文件
输入vi /vim 命令:

:n
 

:bn
 

 
3# 切换到当前打开文件的前一个打开的文件
输入 vi /vim 命令:

:p
 

:bp
 

 
vi /vim 可视化编辑
将当前的编辑屏幕垂直切分
输入:

CTRL+W v
 

 
将当前的编辑屏幕水平切分

CTRL+W s
 

 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

VI / VIM: 在文本里插入当前的日期和时间

当使用vi /vim 文本编辑器编辑文件的时候,如何在当前行插入并显示当前系统的日期和时间呢。
你可以使用下面的两个 vi / vim 命令来插入当前的日期和时间到文件中光标所在的行。
输入下面的命令:

:r !date
 

或从输入模式返回到命令模式后,直接输入下面的命令:

!!date
 

如下图所示:
vi 命令
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

vim: 移动光标的快捷键

当使用 vi /vim 文本编辑器编辑文件的时候,我们会用到很多的 vi / vim 快捷键命令,那么在vi /vim 里都有那些快捷键呢。
 
首先使用vi /vim 打开一个文件,尝试下面的快捷键:
#1移动光标到文本第一行
输入:

gg
 

或者

1 shift g
 

:0
 

回车后你会看到光标已经定位到第一行了
 
#2将光标移动到最后一行
输入下面的快捷命令:

shift g
 

:$
 

 
#3 将光标移动到第8行
输入:

8 shift g
 

或者

:8
 

 
#4 将光标向下移动一屏
输入:

ctrl+f
 

 
#5 将光标想上移动一屏
输入:

ctrl + b
 

 
#6 将当前行光标移动第一个字符位置
输入:

 

 
#7 将当前行光标移动到最后一个字符位置
输入:

$
 

 
#8 将光标想上下左右移动一个字符位置

l,h,k,j
 

或者使用上下左右键
 
#9 查看你现在所在的位置已经百分比
输入:

ctrl +g
 

vim
 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. 29个最基本的 vim /vi 命令
3. vim 命令大全 / vi 命令大全

vi/vim 命令:如何向前或向后跳转到最后一次光标的位置

当你使用vim 文本编辑器去写bash shell脚本或者编辑一个配置文件的时候,我们经常会会需要去搜索之前写的bash shell 函数或者某一个字符串,那么光标就会移动到函数名或字符串所在的行。当查看完这个函数或字符串后,如何才能再回档原来写代码的位置或者搜索字符串之前的光标所在的位置呢?我们如何使用linux vi /vim 命令 向前或向后跳转到最后一次光标所在的位置呢?
vi/vim
本文将会讲述如何在vim /vi 文本编辑器中使用 vi /vim 命令自动跳转到最后一次光标所在的位置。
我们可以使用下面的两个 vi /vim 命令来做光标的跳转:
1)CTRL – O : 将光标向文本上方跳转到最后一次光标的位置
2)CTRL-i : 将光标想文本下方跳转到最后一次光标的位置
这里需要注意的是,每次的跳转都会被记录的一个跳转列表里,这样的话,你就可以使用CTRL-o 和CTRL -i 这两个命令,来回的做跳转,可以让你很方便的跳转到之前的光标所在的位置。对用vim 编辑器写代码的人来说,用处很大。
举个例子:
用vim 命令打开一个bash shell 脚本文件text.sh, 输入命令:

vim test.sh
 

将光标定位在第20 行,输入命令:

:20
 

查找脚本里的一个函数start,输入命令:

/sart
 

这个时候光标就会定位在start函数所在位置
现在我们想在回到上一次光标所在的位置,那么就可以输入vim 命令: ctrl -o 或 ctrl -i, 让光标回到第20行。
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. linux vi/vim man 帮助文档

vi/vim 命令:如何消除并撤销所有对文件的更改

对于一个刚开始使用linux vi /vim 文本编辑器的新手来说,你可能已经知道如何不保存退出vi编辑器。但是如何不退出vi /vim 编辑器并撤销所有的对文本的更改,是文本能够恢复到原来的状态呢? 如何对当前使用 vi /vim 编辑器打开的文件撤销所有的更改呢?
vi/vim
为了对通过vim /vi编辑器打开的文件撤销所有的更改,你需要按照下面的步骤:
1)退出当前的输入模式,回到命令模式,输入“ESC”键
2)输入”:”
3) 紧接着输入下面的命令:

e!
 

或者

edit!
 

上面的命令会将你的文本回退到最后一次保存的版本。
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. vim 命令大全 / vi 命令大全

vim 命令大全 / vi 命令大全

vim 命令作为linux系统下使用最多的文本编辑器,功能十分强大,里面包含了操作文本的各种命令。本文收集了在linux系统下的 最常用的vim 命令大全 /vi 命令大全。
vi/vim
vim 命令大全
光标控制命令:
命令 光标移动
h 向左移一个字符
j 向下移一行
k 向上移一行
l 向右移一个字符
G 移到文件的最后一行
w 移到下一个字的开头
W 移到下一个字的开头,忽略标点符号
b 移到前一个字的开头
B 移到前一个字的开头,忽略标点符号
L 移到屏幕的最后一行
M 移到屏幕的中间一行
H 移到屏幕的第一行
e 移到下一个字的结尾
E 移到下一个字的结尾,忽略标点符号
( 移到句子的开头
) 移到句子的结尾
{ 移到段落的开头
} 移到下一个段落的开头
0(数字), | 移到当前行的第一列
^ 移到当前行的第一个非空字符
$ 移到当前行的最后一个字符
+, Enter 移到下一行的第一个字符
– 移到前一行的第一个非空字符
 
在 vi 中添加文本:
命令 插入动作
a 在光标后插入文本
A 在当前行插入文本
i 在光标前插入文本
I 在当前行前插入文本
o 在当前行的下边插入新行
O 在当前行的上边插入新行
s 删除光标所在处字符,并进入插入模式
S 删除光标所在的行,并进入插入模式
:r file 读入文件 file 内容,并插在当前行后
:nr file 读入文件 file 内容,并插在第 n 行后
Esc 回到命令模式
^v char 插入时忽略 char 的指定意义,这是为了插入特殊字符
 
在 vi 中删除文本:
命令 删除操作
x 删除光标处的字符
dw 删至下一个字的开头
dG 删除行,直到文件结束
dd 删除整行
db 删除光标前面的字
:n,md 从第 m 行开始往前删除 n 行
d, d$ 从光标处删除到行尾
^h, backspace 插入时,删除前面的字符
^w 插入时,删除前面的字
 
修改 vi 文本:
每个命令前面的数字表示该命令重复的次数
命令 替换操作
rchar 用 char 替换当前字符
R text escape 用 text 替换当前字符直到按下 Esc 键
stext escape 用 text 代替当前字符
S 或 cctext escape 用 text 代替整行
cwtext escape 将当前字改为 text
Ctext escape 将当前行余下的改为 text
cG escape 修改至文件的末尾
ccursor_cmd text escape 从当前位置处到光标命令位置处都改为 text
 
在 vi 中查找与替换:
命令 查找与替换操作
/text 在文件中向前查找 text
?text 在文件中向后查找 text
n 在同一方向重复查找
N 在相反方向重复查找
ftext 在当前行向前查找 text
Ftext 在当前行向后查找 text
ttext 在当前行向前查找 text,并将光标定位在 text 的第一个字符
Ttext 在当前行向后查找 text,并将光标定位在 text 的第一个字符
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
:ranges/pat1/pat2/g 用 newtext 替换 oldtext
:m,ns/oldtext/newtext 在 m 行通过 n,用 newtext 替换 oldtext
& 重复最后的 :s 命令
:g/text1/s/text2/text3 查找包含 text1 的行,用 text3 替换 text2
:g/text/command 在所有包含 text 的行运行 command 所表示的命令
:v/text/command 在所有不包含 text 的行运行 command 所表示的命令
 
在 vi 中复制文本:
命令 复制操作
yy 将当前行的内容放入临时缓冲区
nyy 将 n 行的内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
P 将临时缓冲区中的文本放入光标前
“(a-z)nyy 复制 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行
“(a-z)ndd 删除 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行
“(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后
“(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前
 
在 vi 中撤消与重复:
命令 撤消操作
u 撤消最后一次修改
U 撤消当前行的所有修改
. 重复最后一次修改
, 以相反的方向重复前面的 f、F、t 或 T 查找命令
; 重复前面的 f、F、t 或 T 查找命令
“np 取回最后第 n 次的删除(缓冲区中存有一定次数的删除内容,一般为 9)
n 重复前面的 / 或 ? 查找命令
N 以相反方向重复前面的 / 或 ? 命令
 
保存文本和退出 vi:
命令 保存和/或退出操作
:w 保存文件但不退出 vi
:w file 将修改保存在 file 中但不退出 vi
:wq 或 ZZ 或 😡 保存文件并退出 vi
:q! 不保存文件,退出 vi
:e! 放弃所有修改,从上次保存文件开始再编辑
 
vi 中的选项:
选项 作用
:set all 打印所有选项
:set nooption 关闭 option 选项
:set nu 每行前打印行号
:set showmode 显示是输入模式还是替换模式
:set autoindent 继承前一行的缩进方式,特别适用于多行注释
:set smartindent 为C程序提供自动缩进
:set list 显示制表符(^I)和行尾符号
:set ts=8 为文本输入设置 tab stops
:set window=n 设置文本窗口显示 n 行
:set number 显示行数
:set nonumber 取消显示行数
 
vi 的状态:
选项 作用
:.= 打印当前行的行号
:= 打印文件中的行数
ctrl+g 显示文件名、当前的行号、文件的总行数和文件位置的百分比
:l 使用字母 “l” 来显示许多的特殊字符,如制表符和换行符
 
在文本中定位段落和放置标记:
选项 作用
{ 在第一列插入 { 来定义一个段落
[[ 回到段落的开头处
]] 向前移到下一个段落的开头处
m(a-z) 用一个字母来标记当前位置,如用 mz 表示标记 z
‘(a-z) 将光标移动到指定的标记,如用 ‘z 表示移动到 z
 
在 vi 中连接行:
选项 作用
J 将下一行连接到当前行的末尾
nJ 连接后面 n 行
 
光标放置与屏幕调整:
选项 作用
H 将光标移动到屏幕的顶行
nH 将光标移动到屏幕顶行下的第 n 行
M 将光标移动到屏幕的中间
L 将光标移动到屏幕的底行
nL 将光标移动到屏幕底行上的第 n 行
^e(ctrl+e) 将屏幕上滚一行
ctrl+y 将屏幕下滚一行
ctrl+u 将屏幕上滚半页
ctrl+d 将屏幕下滚半页
ctrl+b 将屏幕上滚一页
ctrl+f 将屏幕下滚一页
ctrl+l 重绘屏幕
z-return 将当前行置为屏幕的顶行
nz-return 将当前行下的第 n 行置为屏幕的顶行
z. 将当前行置为屏幕的中央
nz. 将当前行上的第 n 行置为屏幕的中央
z- 将当前行置为屏幕的底行
nz- 将当前行上的第 n 行置为屏幕的底行
 
vi 中的 shell 转义命令:
选项 作用
:!command 执行 shell 的 command 命令,如 :!ls
:!! 执行前一个 shell 命令
:r!command 读取 command 命令的输入并插入,如 :r!ls 会先执行 ls,然后读入内容
:w!command 将当前已编辑文件作为 command 命令的标准输入并执行 command 命令,如 :w!grep all
:cd directory 将当前工作目录更改为 directory 所表示的目录
:sh 将启动一个子 shell,使用 ^d(ctrl+d) 返回 vi
:so file 在 shell 程序 file 中读入和执行命令
 
vi 中的宏与缩写:
(避免使用控制键和符号,不要使用字符 K、V、g、q、v、*、= 和功能键)
选项 作用
:map key command_seq 定义一个键来运行 command_seq,如 :map e ea,无论什么时候都可以 e 移到一个字的末尾来追加文本
:map 在状态行显示所有已定义的宏
:umap key 删除该键的宏
:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2
:ab 显示所有缩写
:una string 取消 string 的缩写
 
在 vi 中缩进文本:
选项 作用
ctrl+i或 tab 插入文本时,插入移动的宽度,移动宽度是事先定义好的
:set ai 打开自动缩进
:set sw=n 将移动宽度设置为 n 个字符
n> 使 n 行都向右移动一个宽度,例如 3>> 就将接下来的三行每行都向右移动一个移动宽度
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. linux vi/vim man 帮助文档

29个最基本的 vim /vi 命令

本文收集了29个在日常工作中最常使用的29个基本 vim 命令 / vi 命令,对于linux初学者来说,这些命令是必须要掌握的。
vi/vim
1.vim
#在命令行中输入vim,进入vim编辑器
2.i
#按一下i键,下端显示 –INSERT–
#插入命令,在vim中可能任意字符都有作用
3.Esc
#退出i(插入)命令进行其它命令使用
4.:r filename
#读入一个文件内容,并写入到当前编辑器中
5.:w newfilename
#将该编辑器中的内容写入到一个新文件中
6.:w
#在编辑的过程中保存文件,相当于word中的ctrl+s
7.:! command
暂时离开 vi 到指令列模式下执行 command 的显示结果!例如
:!ls
#在编辑过程中执行shell命令ls
8.:sh
#进入shell命令行,执行完命令后ctrl+d退出重新进入vim编辑继续编辑
在shell命令下,执行ctral+l完成清屏
9.:wq
#保存文件并退出
10.ZZ
#保存文件并退出,同上一个命令,注意大写
11.:q!
#强制退出,不保存
12.:set number或者:set nu
#使编辑中的文件显示行号
13.:set nonumber或者:set nonu
#与上一条命令相反,不显示行号
14.:help i
#查看插入命令帮助
15.u
#撤消上一步操作
16./Fedora
#查找Fedora字符
17.:s /Fedora/Redhat
#将Fedora字符替换为Redhat(只替换在光标所在的行)
18.dw
#删除单词
dd
#删除行
19.o
#打开空白一行
20.vim + filename
#进行文件最后一行进行编辑
21.vim +n filename
#进入文件第n行进行编辑
22.:1,.s/redhat/fedora
#.号表示当前行,即光标所在行
#将第1行到当前行(.)第一次出现的redhat字符代替为fedora
23.:1,.s/redhat/fedora/g
#将第1行到当前行(.)所有出现的redhat字符代替为fedora,g
全局标志
24.:1,$s/redhat/fedora/g
#$表示最后一行
#将第1行到最后一行所有出现的redhat字符代替为fedora
25.:%s/redhat/fedora/g
#同上一个命令
26.:%s/\/fedora/g
#将第1行到最后一行所有出现的redhat字代替为fedora
#字,而不是字符
27.:f
#显示文件内容,状态等等
#同ctrl+g命令
28.:e!
#当前文件,返回到上次保存
:e file
#切换编辑文件
29.:n
#当编辑时有多个文件(比如vim file1 file2)时切换到下一个文件,与:e file
结合使用
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. linux vi/vim man 帮助文档

Linux下如何使用vi /vim 文本编辑器做批量字符串替换

在linux下我们最常使用的文本编辑器就是是vi 编辑器了,那么如何使用linux vi 文本编辑器来做批量的字符串替换呢? 本文将会讲述如何使用linux vi /vim 文本编辑器来做字符串的批量替换。
vi/vim 
#1 使用linux vi /vim 编辑器做文件内全部替换
输入下面的命令:

%s#old#new#g
 

上面的命令会将文本内的所有的old字符串替换成“new”.这里使用了 ”#“ 分隔符,当然你也可以使用其它的,比如”/”.
 
#2 使用linux vi /vim 编辑器做文件内局部替换
输入下面的命令:

:10,20s/old/new/g
 

上面的vi /vim 命令会将文件内的第10行到20行直接的所有的old字符串替换成new。
对于上的命令如果在命令后面再加上”c”选项,这样在vi 替换字符串之前会出现提示符确认,是否要执行字符串替换。
输入下面的命令:

:10,20s/old/new/gc
 

 
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. linux vi/vim man 帮助文档

linux下如何退出vi/vim 文本编辑器

当你用vi/vim 文本编辑器打开一个文件的时候,并且对文件做了更改,之后如何来退出vi编辑器呢? 退出vi/vim 编辑器又分为以下几种:不保存退出vi/vim 编辑器,保存退出vi/vim 编辑器,只保存不退出vi/vim编辑器,没有更改直接退出vi/vim编辑器。下面我们分别来说以下这四种退出vi/vim的方法:
vi/vim 
#1不保存退出vi/vim 编辑器
这个我们在之前的文章中讲过如何不保存退出vi/vim编辑器,简单的说就是从输入模式返回到命令模式,然后输入“”,在输入”q!“,回车后,就可以不保存退出vi/vim编辑器
 
#2保存退出vi/vim 编辑器
在linux vi/vim 文本编辑器里,保存并退出vi/vim编辑器的方法有多种:
1)在末行模式下,输入”:“后,再输入”wq“,回车就可以保存退出vi/vim文本编辑器。
2)在命令模式下,输入两次大写字母”z“,如果当前编辑的文件被更改过,那么会保存文件并退出vi/vim 编辑器,如果没有编辑修改过,那么会直接退出vi/vim编辑器。
3)在末行模式下,输入”“后,再输入”x“,回车后即可保存并退出vi/vim编辑器。
 
#3只保存不退出vi/vim编辑器
如果想对当前编辑的文件,只做保存操作,但并不退出vi/vim编辑器(在编辑文档的时候要记得保存,否则可能会因为系统宕机引起文件更改丢失或不保存),进入末行模式,输入”:”后,再输入“w”,回车,就可以随时保存当前文件更改。
 
#4 没有更改直接退出vi/vim编辑器
如果使用vi/vim 文本编辑器打开了文件,但并没有对文件做任何的更改,可以直接退出,进入末行模式,输入”:”,再输入”q”,回车后就可以退出vi/vim编辑器,返回shell。
 
以上是总结的关于linux下退出 vi/vim 编辑器的几种情况和退出方法。
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. linux vi/vim man 帮助文档

Linux 下 vi/vim 文本编辑器超详细使用指南

Linux下的编辑器最常用的就是vim或者vi文本编辑。vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了很多实用的功能。 大多数的linux/unix 发行版本中都使用 vim 代替了原来的 vi 文本编辑器。 如果是centos或者redhat系统,当系统安装完毕后,vi/vim 文本编辑器默认情况下就已经被安装了。如果是debian/ubuntu系统下,默认情况下,vim编辑器是不会被安装的。你需要在ubuntu系统下手动安装vim编辑
vi/vim文本编辑器是我们在linux系统下工作可以说是必须会使用的一个工具,因为linux系统的设计理念是一切皆文件,也就是说,你在linux里的任何操作都是对文件的操作,所以会经常去操作文件,更改文件,保存文件,退出并保存文件。那么在linux下,如何使用vim/vi 文本编辑器来新建文件,编辑文件,保存文件呢? 如何使用vim/vi文本编辑器的查找命令来查找特定的文本呢? 如何使用vim/vi 文本编辑器中的查找并替换命令来对文本做批量更改呢?
本文将会给大家详细讲述如何在linux操作系统下使用vi/vim 文本编辑器。
 
vi/vim模式介绍
在linux vi/vim 文本编辑器里有三种模式:命令模式输入模式末行模式。这三者模式的区别是什么呢?
命令模式是vi/vim 编辑器进入后的默认模式,从命令模式可以切换到输入模式和末行模式,如果当你进入另外的两种模式后,可以使用“ESC”键退回到命令模式。在命令模式下,可以输入一些文本编辑器特有的命令,比如说你想编辑文件,那么就需要输入“i”,让当前模式变为插入模式或者输入模式,这样你就可以编辑这个文本了。
输入模式顾名思义就是要对本文做输入的操作,也就是说可以对文件做出更改操作。否则,你在命令模式下,vi/vim 文本编辑器是只读模式,你无法对文本做出更改。
末行模式是是命令模式下输入”:”,当你在输入模式下,对文件做了更改,那么需要先退回到命令命令,再进入末行模式,并输入”wq”后,即可保存并退出 vi/vim 文本编辑器。如果想不保存退出 vi/vim 文本编辑器,那么直接输入”q!”,即可。
 
在linux系统下运行 vi/vim 文本编辑器
在linux命令行下,输入 vi 或者vim 命令:

vi
 

或者

vim
 

linux vi vim 文本编辑器
 
linux 下 vim/vi 文本编辑器常用命令
#1 进入vi/vim文本编辑器的命令
vi filename:打开或新建文件,并将光标置于第一行行首的位置
vi +n filename: 打开文件,并将光标置于第n行的位置
vi + filename: 打开文件,并将光标置于最后一行的位置
vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的行首
vi -r filename: 在上次征用vim 文本编辑器的时候发生系统奔溃后,恢复filename 文件
vi filename1…filenamen: linux vi/vim 文本编辑器可以通过打开多个文件,依次进行编辑
#2 linux vi/vim 文本编辑器下移动光标的命令
H: 光标移到屏幕顶行
M: 光标移到屏幕中间行
L: 光标移到屏幕最后行
0: 光标移到当前行首
$: 光标移到当前行尾
#3 linux vi/vim 文本编辑器下屏幕翻滚类命令
Ctrl+F:向前翻整页
Ctrl+U:向前翻半页
Ctrl+B:向后翻整页
Ctrl+D:向后翻半页
#4 Linux vi/vim 文本编辑器插入文本类命令
i: 在光标前
I:在当前行行首
a: 在光标后
A: 在当前行尾
o: 在当前行之下新开一行
O: 在当前行之前新开一行
#5 Linux vi/vim 文本编辑器删除命令
do:删至行首
d$: 删至行尾
dd: 删除光标所在行
ndd: 删除当前航及其后n-1行
D: 删除当前光标到行尾的内容
Ctrl+u: 删除输入方式下输入的所有文本
#6 Linux vi/vim 文本编辑器搜索及替换命令
/pattern: 从光标开始处向文件尾搜索pattern模式
?pattern: 从光标开始处向文件首搜索pattern 模式
:s/p1/p2/g : 将当前行中所有p1替换成p2
:n1,n2s/p1/p2/g:将第n1行到n2行中所有的p1替换成p2
:g/p1/s//p2/g:将文件中所有的p1替换成p2
#7 Linux vi/vim 文本编辑器拷贝和粘贴命令
在vi/vim文本编辑器中”y”表示拷贝,”d”表示删除, “p”表示粘贴,通常与光标移动命令结合使用
y$: 表示拷贝从当前光标处到行尾的内容
d$: 表示删除从当前光标到行尾的内容
yy: 表示拷贝光标所在行
#8 Linux vi/vim 文本编辑器撤销操作命令
u:取消最近一次的操作
U:取消所有的操作
#9 vi/vim 编辑器末行模式下的命令
n1,n2 d: 将n1行到n2行之间的内容删除
:w 保存当前文件
:e filename 打开文件filename进行编辑
:x 保存当前文件并推出
:q 退出 vi/vim 编辑器
:q! 不保存并退出vi/vim编辑器
以上是linux 下vi/vim 文本编辑器里最常用的命令集合。更多关于vi/vim编辑器的使用,可以参考官方帮助文档。
更多参考:
1.linux vi/vim man 帮助文档
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. vi/vim里如何退出不保存?

SCP 命令参数使用详解(最详细使用指南)

在linux 下scp 命令主要用来在不同主机之间做数据的安全拷贝的。scp 命令可以将文件从本地的计算机中拷贝到远程的主机中,或者从远程计算机中拷贝文件到本地主机,scp命令使用的安全加密的协议,所以在远程拷贝数据的时候会比较安全,不会被黑客截取。
这个命令在日常的工作中经常会被用到,尤其是在多主机的集群环境中或者在cloud 环境里,比如当你想配置hadoop大数据环境或者配置openstack 多节点环境的时候,都会用用到scp命令,用来配置节点间无密码登陆。
本文将会讲述在linux系统中如何来使用linux 的scp命令,并演示如何在主机之间安全的拷贝数据文件。
linux scp 命令的使用格式如下:

scp [选项] <源文件路径>  <目标文件路径>
 

或者:

scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
 

 
 
scp 使用实例
在使用scp命令的时候需要注意,本地主机和远程主机必须能够相互访问,你需要知道远程主机的访问用户名和密码。
 
1#从远程服务器中下载数据文件到本地主机
如果你想从远程主机host1中的/tmp/目录下拷贝test1 文件到本地主机的/tmp目录,那么可以在本地主机的命令行下面
输入命令:

scp root@host1:/tmp/test1 /tmp
 

 
#2 从远程服务器中拷贝目录文件到本地主机下面
当你从远程主机中拷贝一个目录的时候,你需要给scp命令传入一个“-r“ 选项,这样scp命令就会将远程主机下面的整个目录的文件都拷贝的本地主机下。
输入下面的命令:

scp -r root@hots1:/tmp  /tmp
 

这个命令就会把host1主机下的tmp目录拷贝到本地主机的/tmp目录下
 
#3 将本地主机的文件拷贝到远程服务器上
如果要将本地主机的 /tmp目录下的test1文件拷贝到远程主机的/tmp目录下,可以在本地主机输入下面的命令:

scp /tmp/test1 root@host1:/tmp
 

这样test1文件就会被拷贝到远程服务器上了。
 
#4将本地主机下的目录上传到远程服务器
这个和刚才第二步的命令类似,就是需要传”-r” 参数给linux scp 命令,输入下面的 scp 命令:

scp -r /tmp root@hots1:/tmp
 

上面的命令会把本地主机的/tmp目录上传到远程主机host1的/tmp目录下。
上面的四个例子是 scp 命令最常用的四种用法,当然还有其他的选项。 大家可以参考 linux scp 命令的帮助页面。
输入:

man scp
 

更多参考:scp 命令帮助文档

CentOS/Linux:如何编译最新版的linux 内核

当linux内核社区有新的版本发布的时候,如果你也想升级你的centos或者centos系统的内核版本,那么如何通过源码升级linux的内核吗。本文将会讲述如何从linux 内核官方下载最新的内核版本,并升级安装。
1、查看系统内核版本

#uname -r
2.6.18-92.el5
 

2、下载最新版本linux内核
输入下面的命令:

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.gz  .
 

3、清除环境变量,即清除配置文件

$ make mrproper
 

4、 在菜单模式下选择需要编译的内核模块

$make menuconfig
 

#需要 gcc 和 ncurses-devel 的支持,如果没有安装,yum 安装
5、编译内核

#make && make modules_install && make install
 

或者逐步执行:
#make clean确保所有东西均保持最新状态.
#make bzImage 生成内核文件
#make modules 编译模块
#make modules_install 安装模块
#make install 安装
#mkinitrd /boot/initrd_2.6.18.img 根据内核版本和指定参数生成映像文件
#cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.18
#cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18
6、重新配置grub引导程序

#vi /boot/grub/grub.conf  #以新内核启动系统,重启系统;