Linux常用命令

输入进入linux终端,或secureCRT,可以操作linux了。输入help ,可以看到所有命令!

常用指令

cd     切换目录

ls     显示文件或目录

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

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

mkdir  创建目录

  -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

  -p, --parents  可以是一个路径名称。若无父目录,则创建, 即一次可以建立多个目录;

  mkdir test1 : 创建一个空目录

  mkdir -p test2/test22 :递归创建多个目录

  mkdir -m 777 test3 :创建权限为777的目录

touch  创建空文件

echo   创建带有内容的文件。

cat    查看文件内容

cp     拷贝

  cp -a file1 file2 :连同文件的所有特性把文件file1复制成文件file2  

  cp file1 file2 file3 dir :把文件file1、file2、file3复制到目录dir中  

scp    从一台服务器拷贝到另一台服务器

  -v  详细显示输出的具体情况 

  -r  递归复制整个目录

   (1) 复制文件:  

   命令格式:  scp local_file remote_username@remote_ip:remote_folder  

   或者  scp local_file remote_username@remote_ip:remote_file  

  或者  scp local_file remote_ip:remote_folder  

   或者  scp local_file remote_ip:remote_file  

   第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名  

   第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名   

   (2) 复制目录:  

   命令格式:  scp -r local_folder remote_username@remote_ip:remote_folder  

  或者  scp -r local_folder remote_ip:remote_folder  

   第1个指定了用户名,命令执行后需要输入用户密码;  

   第2个没有指定用户名,命令执行后需要输入用户名和密码;

   eg:

   从 本地 复制到远程

   scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 

  从 远程 复制到本地

   scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

mv     移动或重命名

   mv file1 file2 file3 dir : 把文件file1、file2、file3移动到目录dir中  

   mv file1 file2 : 把文件file1重命名为file2

rm     删除文件

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

   -f  强制删除

   -i :互动模式,在删除前会询问用户是否操作

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

   find /etc -name goods.log 在etc目录下搜索goods.log文件

   find /etc -name '*goods*'  在etc目录下搜索文件名包含goods的文件

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

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

   语法:grep 参数 查找条件 文件名(注:是文件名,目录名下查找不行)

   主要参数:

   -i:不区分大小写(只适用于字母字符。)

   -l:查询多文件时只输出包含匹配字符的 文件名。

   -n:显示匹配行内容及行号。

   比如我的/opt目录下有文件test1.txt

   grep -i "teacher" test1.txt : 查询包含teacher

   grep -l "teacher" test1.txt test2.txt : 在文件test1/test2中查找是否有“teacher”

   grep teacher  *.txt : 显示当前目录下包含“teacher”且以.txt 结尾的文件(grep命令支持正则表达式,如grep '[a-z]\{7\}' *.txt)

   ps -ef|grep java:查找指定进程(这里指定java进程)

   ls -l|grep -i test:把ls -l的输出中包含字母test(不区分大小写)的内容输出 (如果查询的是目录可以使用正则表达式,但是文件不行)

rmdir  删除空目录

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

pwd    显示当前目录

ln     创建链接文件

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

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

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

 

系统管理命令

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

who      显示在线登陆用户

whoami   显示当前操作用户

hostname 显示主机名

uname    显示系统信息

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

   top 持续运行,直到您按 "q" 退出 top 为止。

free   显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

   -b:以Byte为单位显示内存使用情况

   -k:以KB为单位显示内存使用情况 

   -m:以MB为单位显示内存使用情况

   -t:显示内存总和列

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命令杀死进程。

   kill -9 强制终止进程

   kill -15 正常终止进程

pkill     杀死进程,通过进程名杀死进程, 注意:杀所有 *进程名* 的进程

iptables -L    查看防火墙状态

service firewalld stop 关闭防火墙

service firewalld start 打开防火墙

 

打包压缩相关命令

gzip

bzip2

tar:     打包压缩

   -c    归档文件

   -x    解压文件

   -z    gzip压缩文件

   -j    bzip2压缩文件

   -v    显示压缩或解压缩过程 v(view)

   -f    使用档名

例:

  1. tar -cvf /home/abc.tar /home/abc        只打包,不压缩
  2. tar -zcvf /home/abc.tar.gz /home/abc    打包,并用gzip压缩
  3. tar -jcvf /home/abc.tar.bz2 /home/abc   打包,并用bzip2压缩

当然,如果想解压缩,就直接替换上面的命令tar  -cvf  /   tar  -zcvf  /  tar  -jcvf 中的“c” 换成“x” 就可以了。

 

关机/重启机器

shutdown      关机

    -r      关机重启

    -h      关机不重启

    now     立刻关机

halt        关机

reboot      重启

 

Linux管道

将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。

例:grep -r “close” /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。

 

Linux软件包管理

dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。

比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。

  1. sudo dpkg -i tree_1.5.3-1_i386.deb  安装软件
  2. sudo dpkg -r tree             卸载软件

注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;

APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。

依然以tree为例

  1. sudo apt-get install tree     安装tree
  2. sudo apt-get remove tree      卸载tree
  3. sudo apt-get update           更新软件
  4. sudo apt-get upgrade

 

将.rpm文件转为.deb文件

.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。

  1. sudo alien abc.rpm

 

vim使用

vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。

命令模式下:

:q            退出

:q!           强制退出

:wq           保存并退出

:set number   显示行号

:set nonumber 隐藏行号

/apache       在文档中查找apache 按n跳到下一个,shift+n上一个

yyp           复制光标所在行,并粘贴

h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

 

用户及用户组管理

  1. /etc/passwd    存储用户账号
  2. /etc/group     存储组账号
  3. /etc/shadow    存储用户账号的密码
  4. /etc/gshadow   存储用户组账号的密码
  5. useradd        添加用户名
  6. userdel        删除用户名
  7. adduser        添加用户名
  8. groupadd       添加组名
  9. groupdel       删除组名
  10. passwd root    给root设置密码
  11. su root     切换用户(仅仅使用这个用户的权限,而不使用其他)
  12. su – root   切换用户(不仅切换到其他用户,而且环境变量这些什么的都切换成其他用户的)
  13. /etc/profile   系统环境变量
  14. bash_profile   用户环境变量
  15. .bashrc        用户环境变量
  16. su user        切换用户,加载配置文件.bashrc
  17. su – user      切换用户,加载配置文件/etc/profile ,加载bash_profile

 

更改文件的用户及用户组

sudo chown [-R] owner[:group] {File|Directory}

例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop。

要想切换此文件所属的用户及组,可以使用命令:

sudo chown root:root jdk-7u21-linux-i586.tar.gz

 

文件权限管理

三种基本权限

R   读  数值表示为4

W   写  数值表示为2

X   可执行 数值表示为1

 

如图所示,jdk-7u21-linux-i586.tar.gz文件的权限为-rw-rw-r–

-rw-rw-r––一共十个字符,分成四段。

第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录

第二三四个字符“rw-”表示当前所属用户的权限。     所以用数值表示为4+2=6

第五六七个字符“rw-”表示当前所属组的权限。        所以用数值表示为4+2=6

第八九十个字符“r––”表示其他用户权限。                 所以用数值表示为4

所以操作此文件的权限用数值表示为664

 

更改权限

sudo chmod [u所属用户  g所属组  o其他用户   a所有用户]    [+增加权限   -减少权限]   [r   w   x]   目录名 

例如:有一个文件filename,权限为“-rw-r—-x” ,将权限值改为”-rwxrw-r-x”,用数值表示为765

sudo chmod u+x g+w o+r filename

上面的例子可以用数值表示

sudo chmod 765 filename

 

上传和下载

rz:  上传

sz:   下载

如果没安装,则使用命令会报错,此时进行安装即可:yum -y install lrzsz

rz:  从本地上传文件到服务器

输入rz并回车后,Xshell会自动弹出文件选择框,选择确定后就会上传到使用命令时所在的目录了。

此外,Xshell还支持直接拖到文件到Xshell窗口,也可以直接上传。

sz:   从服务器下载文件到本地:

### 下载一个文件: 
# sz filename 
### 下载多个文件: 
# sz filename1 filename2
### 下载dir目录下的所有文件,不包含dir下的文件夹: 
# sz dir/*

输入命令回车后会弹出文件夹选择框供你选择存储位置。

此外,Xshell是可以设置默认下载位置的。在文件-->属性中可以设置:

 

如何记忆命令:这两个命令其实是站在服务器的视角上来说的。所以sz就是send,从服务器发送文件到客户端,也就是我们常说的下载文件到本地;rz就是received,服务器接受来自客户端的文件,也就是我们常说的上传文件到服务器。这样记就好记了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值