Linux常用命令

Linux常用命令包括:

查看硬件信息命令:ifconfig free fdisk ethtool mii-tool dmidecode dmesg lspci

系统性能监视命令:uptime top free vmstat mpstat iostat sar chkconfig

内存命令:top free vmstat mpstat iostat sar

CPU命令:top vmstat mpstat iostat sar

I/O命令:vmstat mpstat iostat sar

进程命令:ipcs ipcrm lsof strace lstrace

负载命令:uptime mount umount df du fsck dd dumpe2fs dump

关机和查看系统命令:shutdown halt init

常用指令

ls   显示文件或目录

-l 列出文件详细信息l(list)

-a 列出当前目录下所有文件及目录,包括隐藏的a(all)

mkdir 创建目录

-p 创建目录,若无父目录,则创建p(parent)

cd 切换目录

touch 创建空文件

echo 创建带有内容的文件。

cat 查看文件内容

cp 拷贝

mv 移动或重命名

rm 删除文件

-r 递归删除,可删除子目录及文件

-f 强制删除

find 在文件系统中搜索某文件

wc 统计文本中行数、字数、字符数

grep 在文本文件中查找某个字符串

rmdir 删除空目录

tree 树形结构显示目录,需要安装tree包

pwd 显示当前目录

ln 创建链接文件

more、less 分页显示文本文件内容

head、tail 显示文件头、尾内容

ctrl+alt+F1 命令行全屏模式

系统管理命令

stat 显示指定文件的详细信息,比ls更详细

who 显示在线登陆用户

whoami 显示当前操作用户

hostname 显示主机名

uname 显示系统信息

top 动态显示当前耗费资源最多进程信息

ps 显示瞬间进程状态 ps -aux

du 查看目录大小 du -h /home带有单位显示目录信息

df 查看磁盘大小 df -h 带有单位显示磁盘信息

ifconfig 查看网络情况

ping 测试网络连通

netstat 显示网络状态信息

man 命令不会用了,找男人 如:man ls

clear 清屏

alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit

kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

关机/重启机器

shutdown

-r 关机重启

-h 关机不重启

now 立刻关机

halt 关机

reboot 重启

文件和目录

cd /home 进入 '/ home' 目录'

cd .. 返回上一级目录

cd ../.. 返回上两级目录

cd 进入个人的主目录

cd ~user1 进入个人的主目录

cd - 返回上次所在的目录

pwd 显示工作路径

ls 查看目录中的文件

ls -F 查看目录中的文件

ls -l 显示文件和目录的详细资料

ls -a 显示隐藏文件

ls *[0-9]* 显示包含数字的文件名和目录名

tree 显示文件和目录由根目录开始的树形结构

lstree 显示文件和目录由根目录开始的树形结构

mkdir dir1 创建一个叫做 'dir1' 的目录'

mkdir dir1 dir2 同时创建两个目录

mkdir -p /tmp/dir1/dir2 创建一个目录树

rm -f file1 删除一个叫做 'file1' 的文件'

rmdir dir1 删除一个叫做 'dir1' 的目录'

rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容

rm -rf dir1 dir2 同时删除两个目录及它们的内容

mv dir1 new_dir 重命名/移动 一个目录

cp file1 file2 复制一个文件

cp dir/* . 复制一个目录下的所有文件到当前工作目录

cp -a /tmp/dir1 . 复制一个目录到当前工作目录

cp -a dir1 dir2 复制一个目录

cp -r dir1 dir2 复制一个目录及子目录

ln -s file1 lnk1 创建一个指向文件或目录的软链接

ln file1 lnk1 创建一个指向文件或目录的物理链接

touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)

file file1 outputs the mime type of the file as text

文件搜索

find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录

find / -user user1 搜索属于用户 'user1' 的文件和目录

find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件

find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件

find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件

find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限

find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备

locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令

whereis halt 显示一个二进制文件、源码或man的位置

which halt 显示一个二进制文件或可执行文件的完整路径

pwd命令

pwd命令用于显示用户当前所处的目录。如果用户不知道自己当前所处的目录,就必须使用它。例如:

[root@RHEL7-1 etc]# pwd
/etc

cd命令

cd命令用来在不同的目录中进行切换。用户在登录系统后,会处于用户的家目录($HOME)中,该目录一般以/home开始,后跟用户名,这个目录就是用户的初始登录目录(root用户的家目录为/root)。如果用户想切换到其他的目录中,就可以使用cd命令,后跟想要切换的目录名。例如:

[root@RHEL7-1 etc]# cd               #改变目录位置至用户登录时的工作目录
[root@RHEL7-1~]# cd dir1             #改变目录位置至当前目录下的dir1子目录下
[root@RHEL7-1dir1]# cd ~             #改变目录位置至用户登录时的工作目录(用户的家目录)
[root@RHEL7-1~]# cd ..               #改变目录位置至当前目录的父目录
[root@RHEL7-1/]# cd                  #改变目录位置至用户登录时的工作目录
[root@RHEL7-1~]# cd ../etc           #改变目录位置至当前目录的父目录下的etc 子目录下
[root@RHEL7-1 etc]# cd/dir1/subdir1  #利用绝对路径表示改变目录到 /dir1/subdir1目录下

ls命令

ls命令用来列出文件或目录信息。该命令的语法为
ls [参数] [目录或文件]

ls命令的常用参数选项如下。

-a:显示所有文件,包括以"."开头的隐藏文件。

-A:显示指定目录下所有的子目录及文件,包括隐藏文件。但不显示"."和"..."。-c:按文件的修改时间排序。

-C:分成多列显示各行。

-d:如果参数是目录,则只显示其名称而不显示其下的各个文件。往往与"-l"选项一起使用,以得到目录的详细信息。

-l:以长格形式显示文件的详细信息。

-i:在输出的第一列显示文件的i节点号。例如:

[root@RHEL7-1~]#ls        #列出当前目录下的文件及目录
[root@RHEL7-1~]#ls -a     #列出包括以"."开始的隐藏文件在内的所有文件
[root@RHEL7-1~]#ls -t     #依照文件最后修改时间的顺序列出文件
[root@RHEL7-1~]#ls -F     #列出当前目录下的文件名及其类型
[root@RHEL7-1~]#ls -l     #列出当前目录下所有文件的权限、所有者、文件大小、修改时间及名称
[root@RHEL7-1~]#ls -lg    #同上,并显示出文件的所有者工作组名
[root@RHEL7-1~]#ls -R     #显示出目录下以及其所有子目录的文件名

cat命令

cat命令主要用于滚屏显示文件内容或是将多个文件合并成一个文件。

该命令的语法为:
cat [参数] 文件名

cat命令的常用参数选项如下。

-b:对输出内容中的非空行标注行号。

-n:对输出内容中的所有行标注行号。

通常使用cat命令查看文件内容,但是cat命令的输出内容不能够分页显示,要查看超过一屏的文件内容,需要使用more或less等其他命令。如果在cat命令中没有指定参数,则cat会从标准输入(键盘)中获取内容。

例如,要查看/soft/file1文件内容的命令为:

[root@RHEL7-1~]#cat  /soft/file1

利用cat命令还可以合并多个文件。例如,要把file1和file2文件的内容合并为file3,且file2文件的内容在file1文件的内容前面,则命令为:

[root@RHEL7-1~]# cat file2 file1>file3

#如果file3文件存在,则此命令的执行结果会覆盖file3文件中原有内容

[root@RHEL7-1~]# cat file2 file1>file3

#如果file3文件存在,此命令的执行结果将把file2和file1文件的内容附加到file3文件中原有内容的后面。

more命令

在使用cat命令时,如果文件太长,用户只能看到文件的最后一部分。这时可以使用more命令,一页一页地分屏显示文件的内容。more命令通常用于分屏显示文件内容。大部分情况下,可以不加任何参数选项执行more命令查看文件内容。执行more命令后,进入more状态,按"Enter"键可以向下移动一行,按"Space"键可以向下移动一页;按"Q"键可以退出more命令。该命令的语法为:
more [参数] 文件名

more命令的常用参数选项如下。

-num:这里的num是一个数字,用来指定分页显示时每页的行数。

+num:指定从文件的第num行开始显示。

例如:
[root@RHEL7-1~]#more file1 #以分页方式查看file1文件的内容
[root@RHEL7-1~]#cat file1 | more #以分页方式查看file1文件的内容

less命令

head命令用于显示文件的开头部分,默认情况下只显示文件的前10行内容。

该命令的语法为:
head [参数] 文件名

head命令的常用参数选项如下。

-n num:显示指定文件的前num行。

-c num:显示指定文件的前num个字符。

例如:
[root@RHEL7-1~]#head -n 20 /etc/httpd/conf/httpd.conf#显示 httpd.conf文件的前20行

tail命令

tail命令用于显示文件的末尾部分,默认情况下,只显示文件的末尾10行内容。该命令的语法为:
tail [参数] 文件名

tail命令的常用参数选项如下。

-n num:显示指定文件的末尾num行。

-c num:显示指定文件的末尾num个字符。

+num:从第num行开始显示指定文件的内容。

例如:
[root@RHEL7-1~]#tail -n 20 /etc/httpd/conf/httpd.conf #显示 httpd.conf文件的末尾20行

head命令

head命令用于显示文件的开头部分,默认情况下只显示文件的前10行内容。

该命令的语法为:
head [参数] 文件名

head命令的常用参数选项如下。

-n num:显示指定文件的前num行。

-c num:显示指定文件的前num个字符。

例如:
[root@RHEL7-1~]#head -n 20 /etc/httpd/conf/httpd.conf#显示 httpd.conf文件的前20行。

mkdir命令

mkdir命令用于创建一个目录。该命令的语法为
mkdir [参数] 目录名

上述目录名可以为相对路径,也可以为绝对路径。mkdir命令的常用参数选项如下。

-p:在创建目录时,如果父目录不存在,则同时创建该目录及该目录的父目录。例如:
[root@RHEL7-1~]#mkdir dir1 #在当前目录下创建dir1子目录。
[root@RHEL7-1~]#mkdir --pdir2/subdir2#在当前目录的dir2目录中创建subdir2子目录,如果dir2目录不存在,则同时创建。

rmdir命令

rmdir命令用于删除空目录。该命令的语法为
rmdir [参数] 目录名

上述目录名可以为相对路径,也可以为绝对路径。但所删除的目录必须为空目录。rmdir命令的常用参数选项如下。

-p:在删除目录时,一同删除父目录,但父目录中必须没有其他目录及文件。

例如:
[root@RHEL7-1~]#rmdir dir1 #在当前目录下删除dir1空子目录
[root@RHEL7-1~]#rmdir -pdir2/subdir2 #/删除当前目录中dir2/subdir2子目录,//删除subdir2目录时,如果dir2目录中无其他目录,则一起删除。

熟悉使用cp命令

(1)cp命令的使用方法

cp命令主要用于文件或目录的复制。该命令的语法为
cp [参数] 源文件 目标文件

cp命令的常用参数选项如下。

-a:尽可能将文件状态、权限等属性照原状予以复制。

-f:如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户。

-i:如果目标文件或目录存在,提示是否覆盖已有的文件。

-R:递归复制目录,即包含目录下的各级子目录。

(2)使用cp命令的范例

复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是-a、-p选项,对于不同身份来说,差异非常大。下面的练习中,有的身份为root,有的身份为一般账号(在这里用bobby这个账号),练习时请特别注意身份的差别。

【例】用root身份,将家目录下的.bashrc复制到/tmp下,并更名为bashrc。
[root@RHEL7-1~]# cp ~/.bashrc /tmp/bashrc
[root@RHEL7-1~]# cp --i ~/.bashrc /tmp/bashrc

cp: overwrite /tmp/bashrc'? n 不覆盖,y为覆盖

#重复做两次,由于/tmp下已经存在bashrc了,加上-i选项后,

#则在覆盖前会询问使用者是否确定!可以按下n或者y来二次确认

【例】变换目录到/tmp,并将/var/log/wtmp复制到/tmp且观察属性。
[root@RHEL7-1 tmp]# cp -a /var/log/wtmp wtmp_2
[root@RHEL7-1 tmp]# ls -l /var/log/wtmp wtmp_2

cd 切换目录

cd (change directory:英文释义是改变目录)切换目录

复制代码
cd ../ ;跳到上级目录
cd /opt ;不管现在到那直接跳到指定的opt文件夹中
cd ~ ;切换当前用户的家目录。root用户的家目录就是root目录。

pwd 显示当前目录绝对路径

pwd (print working directory:显示当前工作目录的绝对路径)

复制代码
pwd
显示当前的绝对路劲

ls 查看当前目录下的所有文件夹

ls (ls:list的缩写,查看列表)查看当前目录下的所有文件夹(ls 只列出文件名或目录名)

复制代码
ls -a ;显示所有文件夹,隐藏文件也显示出来
ls -R ;连同子目录一起列出来

ll 查看当前目录下的所有详细信息和文件夹

ll (ll:list的缩写,查看列表详情)查看当前目录下的所有详细信息和文件夹(ll 结果是详细,有时间, 是否可读写等信息)

复制代码
ll -a ;显示所有文件,隐藏文件也显示出来
ll -R ;连同子目录内容一起列出来
ll -h ;友好展示详情信息,可以看大小
ll -al ;即能显示隐藏文件又能显示详细列表。

touch 创建文件

touch (touch:创建文件)创建文件

复制代码
touch test.txt ;创建test.txt文件
touch /opt/java/test.java ;在指定目录创建test.java文件

mkdir 创建目录

mkdir (mkdir:创建目录) 创建目录

复制代码
mkdir 文件夹名称 ;在此目录创建文件夹
mkdir /opt/java/jdk ;在指定目录创建文件夹

cat 查看文件

cat (concatenate:显示或把多个文本文件连接起来)查看文件命令(可以快捷查看当前文件的内 容)(不能快速定位到最后一页)

复制代码
cat lj.log ;快捷查看文件命令
Ctrl + c ;暂停显示文件
Ctrl + d ;退出查看文件命令

more 分页查看文件

more (more:更多的意思)分页查看文件命令(不能快速定位到最后一页)

复制代码
回车:向下n行,需要定义,默认为1行。
空格键:向下滚动一屏或Ctrl+F
B:返回上一层或Ctrl+B
q:退出more

less 分页查看文件

less (lese:较少的意思)分页查看文件命令(可以快速定位到最后一页)

复制代码
less -m 显示类似于more命令的百分比。
less -N 显示每行的行号。(大写的N)
两参数一起使用如:less -mN 文件名,如此可分页并显示行号。

空格键:前下一页或page down。
回车:向下一行。
b:后退一页 或 page up。
q:退出。
d:前进半页。
u:后退半页

tail 查看文件命令

tail(尾巴) 查看文件命令(看最后多少行)

复制代码
tail -10 ;文件名 看最后10行

cp 复制

cp(copy单词缩写,复制功能)

复制代码
cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下
cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 复制到/opt/logs/下并且改名为aaa.log
cp -r /opt/java /opt/logs ;把文件夹及内容复制到logs文件中

mv 移动

mv(move单词缩写,移动功能,该文件名称功能)

复制代码
mv /opt/java/java.log /opt/mysql/ ;移动文件到mysql目录下
mv java.log mysql.log ;把java.log改名为mysql.log

rm 删除

rm(remove:移除的意思)删除文件,或文件夹

复制代码
-f或--force 强制删除文件或目录。删除文件不包括文件夹的文件
-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。
-rf 强制删除文件夹及内容

rm 文件名 ;安全删除命令 (yes删除 no取消)
rm -rf 强制删除文件夹及内容
rm -rf * 删除当前目录下的所有内容。
rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。

find 查找指定文件或目录

find (find:找到的意思)查找指定文件或目录

复制代码
* 表示0~多个任意字符。

find -name 文件名;按照指定名称查找在当前目录下查找文件
find / -name 文件名按照指定名称全局查找文件
find -name '*文件名' ;任意前缀加上文件名在当前目录下查找文件
find / -name '*文件名*' ;全局进行模糊查询带文件名的文件

vi、vim 文本编辑

vi (VIsual:视觉)文本编辑器 类似win的记事本 (操作类似于地下的vim命令,看底下vim 的操 作)

vim (VI IMproved:改进版视觉)改进版文本编辑器 (不管是文件查看还是文件编辑 按 Shift + 上或 者下可以上下移动查看视角)

复制代码
输入”vim 文件名” 打开文件,刚刚时是”一般模式”。
一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退出)等。
插入模式:可以编辑文件内容。
底行模式:可以进行强制退出操作,不保存 :q!
        可以进行保存并退出操作 :wq
按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。
在编辑模式下按”Esc” 即可到一般模式
在一般模式下按”:”,冒号进入底行模式。

在一般模式下的快捷键
  dd ;删除一整行
  X ;向前删除 等同于windowns系统中的删除键
  x ;向后删除和大写x相反方向
  Ctrl + f ;向后看一页
  Ctrl + b ;向前看一页
  u ;撤销上一步操作
  /word ;向下查找word关键字 输入:n查找下一个,N查找上一个(不管是哪个查找都是全局查找 只不过n的方向相反)
  ?log ;向上查找log关键字 输入:n查找上一个,N查找下一个
  :1,90s/redis/Redis/g ;把1-90行的redis替换为Redis。语法n1,n2s/原关键字/新关键字/g,n1代表其实行,n2代表结尾行,g是必须要的
  :0 ;光标移动到第一行
  :$ ;光标移动到最后一行
  :300 ;光标移动到300行,输入多少数字移动到多少行
  :w ;保存
  :w! ;强制保存
  :q ;退出
  :q! ;强制退出
  5dd ;删除后面5行,打一个参数为自己填写
  5x ;删除此光标后面5个字符
  d1G ;删除此光标之前的所有
  d0 ;从光标当前位置删除到此行的第一个位置
  yy ;复制
  p ;在光标的下面进行粘贴
  P ;在光标的上门进行粘贴

管道命令(把多个命令组合起来使用)

复制代码
管道命令的语法:命令1 | 命令2 | 命令3。

grep 用于字符串的搜索

grep (grep :正则表达式)正则表达式,用于字符串的搜索工作(模糊查询)。

复制代码
单独使用:
grep String test.java ;在test.java文件中查找String的位置,返回整行
一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用)

ps aux|grep java ;查找带java关键字的进程
ll |grep java ;查找带java关键字的文件夹及文件

yum install -y lrzsz 命令(实现win到Linux文件互相简单上传文件)

复制代码
#(实际上就是在Linux系统中下载了一个插件)下了了此安装包后就可以实现win系统到linux之间拉文件拉文件
#等待下载完了就可以输入:
rz 从win系统中选择文件上传到Linux系统中
sz 文件名 选择Linux系统的文件复制到win系统中

tar(解压 压缩 命令)

复制代码
常用的组合命令:
-z 是否需要用gzip压缩。
-c 建立一个压缩文件的参数指令(create) –压缩
  -x 解开一个压缩文件的参数指令(extract) –解压
  -v 压缩的过程中显示文件(verbose)
   -f 使用档名,在f之后要立即接档中(file)
    常用解压参数组合:zxvf
    常用压缩参数组合:zcvf

解压命令:
tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹
tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录

压缩命令:(注意 语法有点反了,我反正每次都搞反)
tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的文件
tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录)

ps (process status:进程状态,类似于windows的任务管理器)

复制代码
常用组合:ps -ef 标准的格式查看系统进程
  ps -aux BSD格式查看系统进程
  ps -aux|grep redis BSD格式查看进程名称带有redis的系统进程(常用技巧)
//显示进程的一些属性,需要了解(ps aux)
USER //用户名
PID //进程ID号,用来杀死进程的
%CPU //进程占用的CPU的百分比
%MEM //占用内存的的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间

clear 清屏命令

复制代码
kill 命令用来中止一个进程。(要配合ps命令使用,配合pid关闭进程)
(ps类似于打开任务管理器,kill类似于关闭进程)
kill -5 进程的PID ;推荐,和平关闭进程
kill -9 PID ;不推荐,强制杀死进程

ifconfig命令

复制代码
用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。(一般是用来查看的,很少更改)
如果此命令输入无效,先输入yum -y install net-tools
ifconfig

ping (用于检测与目标的连通性)语法

复制代码
语法:ping ip地址

free 命令 (显示系统内存)

复制代码
#显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合

top 命令

复制代码
#显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数

netstat 命令

复制代码
#Linux netstat命令用于显示网络状态。
#利用netstat指令可让你得知整个Linux系统的网络情况。
#语法:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

file (可查看文件类型)

复制代码
file 文件名

重启linux

复制代码
Linux centos 重启命令:reboot

关机linux

复制代码
Linux centos 关机命令:halt

时间命令

复制代码
#同步时间命令
ntpdate ntp1.aliyun.com