Java 杂谈我用 Linuxlinux tools

Linux基础-进阶指令

2019-01-31  本文已影响130人  5fafe9a996b9
  1. ssh

    • 功能:登录另一台远程计算机
    • 语法:ssh [-l login_name] [-p port] [user@]hostname
    • 用法1:#ssh 192.168.0.11 ,不指定用户,默认使用root账户登录
    • 用法2:#ssh root@192.168.0.11或者ssh -l root 192.168.0.11,指定用户
    • 用法3:#ssh -p 1233 admn@192.168.0.11,修改过ssh登录端口(默认为22)需要指定端口
  2. scp

    • 功能:用于服务器之间复制文件和目录
    • 语法:scp [选项] file_source file_target,本质上与cp是一致的,区别在于远程的地址要加 用户名:远程ip:的前缀
      比如从本地复制到远程:file_target应该是remote_username@remote_ip:remote_folder/file
      比如从远程复制到本地:file_source应该是remote_username@remote_ip:remote_folder/file
    • 常用选项:
      -r: 递归复制整个目录
    • 从本地复制到远程的用法:
      #scp /home/space/music1/1.mp3 root@172.16.50.15:/home/root/music,
      从本地复制1.mp3到远程music目录下
      #scp /home/space/music/1.mp3 root@172.16.50.15:/home/root/music/001.mp3,
      从本地复制1.mp3到远程music目录下重命名为001.mp3(如果存在001.mp3则覆盖)
      #scp -r /home/space/music/ root@172.16.50.15:/home/root/music1/
      从本地复制music目录到远程:
      • 如果远程music1目录不存在,则效果是复制music目录到远程root下重命名为music1,
      • 如果远程music1目录存在,则是把music复制到远程music1目录下,即远程music1目录下多一个music子目录(或者覆盖);
        可以总结下,源目录复制到目标目录时,如果目标目录不存在,则是重命名的效果,如果目标目录存在,则是目标目录下新建(或覆盖)子目录的效果
    • 从远程复制到本的用法:
      #scp root@172.16.50:/home/root/others/music /home/space/music1/1.mp3
      #scp -r root@172.16.50:/home/root/others/music /home/space/music1/
  3. less

    • 常用语法:less [选项] 文件
    • 常用选项:
      -N 显示每行的行号
      -i 忽略搜索时的大小写
    • 常用操作:
      /字符串:向下搜索"字符串"的功能
      ?字符串:向上搜索"字符串"的功能
      n:重复前一个搜索(与 / 或 ? 有关)
      N:反向重复前一个搜索(与 / 或 ? 有关
      Q/q/ZZ:退出less 命令
      y:向上滚动一行
      空格键:滚动一页
      回车键:滚动一行
      [pagedown]: 向下翻动一页
      [pageup]: 向上翻动一页
      b:向后翻一页(没有pageup按键时可以用)
      f:向前翻一页
      G:移动到最后一行
      g:移动到第一行
      v:使用配置的编辑器编辑当前文件
      F:不断的刷新信息(同tail -f 的效果, ctrl+c 结束刷新)
  4. wc

    • 常用语法:wc [选项] 文件
    • 选项:
      -l或--lines 只显示行数(包括空行)。
      -w或--words 只显示字数(依照空格来判断单词数量)。
      -c或--bytes或--chars 只显示Bytes数。
    • 注意:#wc file(不给选项)
      输出的值顺序是:行数、字数、字节数
  5. df

    • 功能:显示目前磁盘使用情况统计
    • 语法:df [选项]... [FILE]...
    • 常用用法:# df -h 可读性较高(显示单位)


      image
  6. free

    • 功能:查看内存使用情况
    • 语法:free [选项]
    • 常用用法:# free -m ,以MB为单位


      image
  7. chmod

    • 功能:改变文件的读写
    • 常用语法:chmod [选项] mode 文件(支持多个和通配)
      常用选项是 -R(对目前目录下的所有文件与子目录进行相同的权限变更);
      mode : 权限设定字串,格式是[ugoa...][[+-=][rwxX]...][,...],其中:
      • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
      • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
      • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行;也可以用数字来表示权限属性组合:
        若要rwx属性则4+2+1=7,
        若要rw-属性则4+2=6,
        若要r-x属性则4+1=5。
    • 示例1:#chmod ugo+r file1.txt 将文件 file1.txt 设为所有人皆可读取
    • 示例2:#chmod ug+w,o-w file1.txt file2.txt
      将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
    • 示例3:#chmod -R a+r *
      将目前目录下的所有文件与子目录皆设为任何人可读取
    • 示例4:#chmod 777 file ,第一个数字表示u的权限,第二个表示g的权限,第三个表示o的权限
      所以777和a=rwx效果相同
  8. tar

    • 功能:压缩、解压文件
    • 选项:
      • -c: 压缩
      • -x:解压
      • -t:查看内容
      • -r:向压缩归档文件末尾追加文件
      • -u:更新原压缩包中的文件
      • -v:显示所有过程
      • -f: 指定待处理的文件,切记,这个参数是最后一个参数,后面只能接文件名
    • 用法1:#tar -x[处理方式]vf 文件,解亚文件
    • 用法2:#tar -c[处理方式]vf 待生成的压缩文件 需要压缩的文件(支持多个和匹配),压缩文件
    • 用法3:#tar -t[处理方式]vf 文件,列出压缩文件的内容
    • 处理方式有:
      • -z:通过gzip指令处理,对应的压缩文件后缀是 gz(用 gzip -d或者gunzip 解压),tar归档后的压缩文件后缀是tar.gz(用 tar -xzf 解压)
      • -j:通过bz2指令处理,对应的压缩文件后缀是 bz2(用 bzip2 -d或者用bunzip2 解压),tar归档后的压缩文件后缀是tar.bz2(用tar -xjf 解压)
      • -Z:通过compress指令处理备份,对应的压缩文件后缀是 Z(用 uncompress 解压),tar归档后的压缩文件后缀是tar.Z(用tar -xZf 解压)
  9. find

    • 功能:指定目录下查找子目录、文件
    • 常用语法:find 路径范围 选项 选项的值
    • 常用选项:
      • -name:按照文档名称进行搜索(支持模糊搜索)
      • -type:"d"表示目录,"f"表示文件
    • 用法1:# find . -name "*.conf",将目前目录及其子目录下所有后缀是 conf 的文件列出来
    • 用法2:# find . -type f,将目前目录及其下子目录中所有文件列出
    • 用法3:# find /home/admin -name "aa*" -type f,将/home/admin目录及其子目录下所有aa开头的文件列出来
    • 其它文件查找指令:
      • locate:是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令(需要权限),手动更新数据库。
      • whereis:只能用于程序名的搜索
      • which:根据PATH变量指定的路径,可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
  10. grep

  1. ps

    • 功能:用于显示当前进程 (process) 的状态。
    • 语法:ps [选项 ]
    • 常用选项:
      • aux 显示所有进程较详细的资讯
      • -A 显示所有进程 (等价于-e)
      • -e 等于“-A”
      • -f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx
      • x 显示所有程序,不以终端机来区分
    • 用法1:#ps aux,显示的项目有:USER、PID、%CPU、%MEM、VSZ、RSS、 TTY、STAT、START、TIME、COMMAND,各列代表的意义:
      (1)USER:进程的属主;
      (2)PID:进程的ID;
      (3)%CPU:进程占用的CPU百分比;
      (4)%MEM:占用内存的百分比;
      (5)VSZ:该进程使用的虚拟内存量(KB);
      (6)RSS:该进程占用的固定内存量(KB)(驻留中页的数量);
      (7)TTY:该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程
      (8)STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
      (9)START:该进程被触发启动时间;
      (10)TIME:该进程实际使用CPU运行的时间;
      (11)COMMAND:命令的名称和参数;
    • 用法2:#ps -ef,显示的项目有:UID、PID、PPID、C、 STIME、TTY、TIME、CMD ,各列代表的意义:
      (1)UID:用户ID
      (2)PID:进程ID
      (3)PPID:父进程ID
      (4)C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
      (5)STIME:进程启动的时间
      (6)TTY:完整的终端名称
      (7)TIME:CPU时间
      (8)CMD:完整的启动进程所用的命令和参数
      image
    • 注意:"ps -aux"不同于"ps aux",使用时两者之间直接选择ps aux;ps aux 和ps -ef,两者的输出结果差别不大,但展示风格不同。aux是BSD风格,-ef是System V风格。如果想查看进程的CPU占用率和内存占用率,可以使用aux,如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef
  2. 管道

  1. xargs

  1. top

  1. du

  1. ifconfig/ip addr

    • 功能:ifconfig和ip都是用来显示或设置网络设备,ip在逐步替代ifconfig,先只要会看inet后的ip就可以了
    • 用法1:#ifconfig


      image

      #ip addr


      image
  2. netstat

  1. kill

  1. ln

上一篇下一篇

猜你喜欢

热点阅读