首页 > 系统相关 >Linux Shell常用shell命令

Linux Shell常用shell命令

时间:2023-04-21 14:44:29浏览次数:64  
标签:文件 file1 Shell 192.168 命令 shell Linux rpm 目录

Linux常识

Linux目录介绍

/usr 系统级的目录,可以理解为 C:/Windows/ , /usr/lib 可理解为 C:/Windows/System32 。

/usr/local 用户级的程序目录,可以理解为 C:/Progrem Files/ 。用户自己编译的软件默认会安装到这个目录下。

/usr/bin:存放的是系统使用的应用程序。

/opt 用户级的程序目录,可以理解为 D:/Software , opt 有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf 掉即可。

Linux Shell常用shell命令

一、文件、目录操作命令

显示命令

pwd命令: 显示工作路径

ls命令:

ls  以默认方式显示当前目录文件列表

ls -a 显示所有文件包括隐藏文件

ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)

ls -lt 显示文件,按照修改时间排序

ll命令: 显示文件详细信息

 

查看命令

cat命令:

cat file  从第一个字节开始正向查看文件的内容,和DOS的type相同

cat -n file 标示文件的行数

cat file | awk 'NR%2==1'  >  temp 排除文件中的偶数行后输出到temp文件

tac file   从最后一行开始反向查看一个文件的内容

more命令:

more file 查看一个长文件的内容

more命令也可以通过管道符(|)与其他的命令一起使用,

例如:

ps ux|more

ls|more

less命令:

less file 类似more  file

head命令:

head -n   file1 查看一个文件的前n行

tail命令:

tail    -n   file1 查看一个文件的后n行

tail -f /var/log/messages 实时查看被添加到一个文件中的内容

sed命令:

sed -n '100,200p' bigFilename.log > sample_100to200.log   截取从x到y指定行

创建命令

1、 创建目录:

mkdir  baseDir 创建baseDir目录

mkdir  a1 a2 a3 创建多个目录

mkdir  -p baseDir/a/b 连续创建目录

2、 创建文件:

touch aaa.txt   创建一个空文件,文件名为aaa.txt

删除命令

1、 删除文件:

rm file  删除某一个文件

rm -f file 删除时候不进行提示。可以与r参数配合使用

2、 删除目录:

rm -rf dir  删除当前目录下叫dir的整个目录

编辑命令

1、vi file

使用vi命令进入文件编辑后,编辑的方式为先按[ESC]键,然后输入:w(写入文件),:w!(不询问方式写入文件),:wq保存并退出,:q退出,q!不保存退出。

比较文件或目录内容

1、 differ命令:

diff  dir1  dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出。

diff  file1  file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的。

2、 comm命令:

comm file1 file2 比较文件,显示两个文件不相同的内容。

comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容

comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容

comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分

3、 sort命令:

sort file1 file2 排序两个文件的内容

sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)

sort file1 file2 | uniq -u 删除交集,留下其他的行

sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)

cd命令---切换目录

cd dir  切换到当前目录下的dir目录

cd /  切换到根目录

cd ..  切换到到上一级目录

cd ../..  切换到上二级目录

cd ~  切换到用户目录,比如是root用户,则切换到/root下

根目录与家目录的区别:

根目录是系统的一级文件结构,家目录只是非root用户控制目录。相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。

根目录是设备的最顶层目录,用 / 表示。

家目录是每个用户登录系统后所在的目录,通常在 /home 下,以用户名作为目录,可以用 ~ 表示。

cd / 进入根目录

cd ~/ 进入家目录

当然,也可以用 /home/someone 进入someone的家目录

ls命令---显示目录和文件的信息

cp命令---拷贝文件/目录

cp source target  将source文件复制为target文件

cp /root /source  将/root下的source文件复制到当前目录

cp -a  soure_dir  target_dir 复制一个目录

cp –av  soure_dir  target_dir  将整个目录复制,两目录完全一样

mv命令---移动或改名文件/目录

在uinx下面没有改名的命令

文件改名:

mv test.log test1.txt 文件改名

目录移动:

mv dir /baseDir 将dir目录移动到当前目录下的baseDir目录下

文件移动:

mv test1.txt dir 文件移动到当前路径下的dir目录

mv log1.txt log2.txt log3.txt /test/dir 移动多个文件到指定目录

mv * ../ 移动当前文件夹下的所有文件到上一级目录

mv * /test/dir 移动当前文件夹下的所有文件到指定目录

mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt -t表示指定目标目录

命令参数

-b : 若需覆盖文件,则覆盖前先行备份。

-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i : 若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u : 若目标文件已经存在,且 source 比较新,才会更新(update)

-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

ln命令---建立链接,相当于windows的快捷方式

windows的快捷方式就是根据链接的原理来做的

ln source_path target_path 硬连接(物理链接)

ln -s source_path target_path 软连接

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

ln –s 源文件 目标文件。

例如:ln –s /bin/less /usr/local/bin/less

http://www.cnblogs.com/joeblackzqq/archive/2011/03/20/1989625.html

 

rz命令---用于将本地Windows中的文件上传到Linux

注意:确定服务器是否安装了rz命令

rz、sz命令的安装方法

    第一种方法:安装系统时选包包含rz、sz命令的包组

第二种方法:安装系统后通过执行yum install lrzsz -y 或 yum groupinstall"Dial-up Network Support" -y 命令来安装。

rz -e       选中本地的文件上传到Linux系统的当前目录

 

 

sz命令---从linux上下载文件到本地

语法格式:sz [参数] 文件

常用参数:

-a 以文本方式传输

-b 以二进制方式传输

-e 对控制字符转义

-i 在接收端执行命令

 

grep命令

grep  test  *file 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。

grep  test  file* 在当前目录中,查找前缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。

grep  -r  test  * 过滤当前目录下所有文件和目录查找出含有test字符串的行

grep  -r  test  /etc/acpi  以递归的方式查找符合条件的文件

反向查找:通过"-v"参数可以打印出不符合条件行的内容。

grep  -v  test  *test*  查找文件名中包含 test 的文件中不包含test 的行

grep -n15 *** 文件名 (过滤出***的上下15行)
ps -ef |grep java
ps -ef |grep redis/java (过滤进程)

 

 

 

find命令---精细查找文件或目录

基本语法格式如下:

 

find  [查找范围]  [查找条件表达式]

 

find常用的查找条件如下:

-name: 按名称查找;根据目标文件的名称进行查找,允许使用“*”及“?”通配符;

-size: 按文件大小查找;一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件。 常用的容量单位包括kB(注意k是小写)、MB、GB;

-user: 按文件属主查找;

-type: 按文件类型查找;类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设 备文件(c)等。

例子:

find ~/Linux迷/ -name *.txt 查看主目录Linux迷目录下所有*.txt的文件

find ~/Linux迷/ -type f 查看主目录Linux迷目录中所有文件

find ~/Linux迷 -size +10k  查看主目录Linux迷目录中大于10k的文件

find ~/Linux迷 -size -10k 查看主目录Linux迷目录中大于10k的文件

find ~/Linux迷/ -size +100M -a -name *.iso 查看主目录Linux迷目录中大于100M和名字为 *.iso的显示出来

find ~/Linux迷/ -size +100M -o -name *.iso 查看主目录Linux迷目录中大于100M或者名字为 *.iso的显示出来

sudo find /tmp -type d -empty 查找/tmp目录下的所有空目录

sudo find /tmp -type f -empty 查找/tmp目录下的所有空文件

 

二、基本系统命令

1、man命令---查看某个命令的帮助

功能:查看某个命令的帮助,如果你不知道某个命令的用法不懂,可以问他,他知道就回告诉你。

例如:

man  ls 显示ls命令的帮助内容

2、w命令---显示登录用户的详细信息

例如:

w

22:06:51 up 43 min,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

zhoulj   pts/0    10.140.0.109     21:24    0.00s  0.85s  0.09s sshd: zhoulj [priv]

3、who命令---显示当前登录用户

例如:

who

zhoulj   pts/0        Mar 13 21:24 (10.140.0.109)

4、last命令---查看最近哪些用户登录系统

例如:last

zhoulj   pts/0        10.140.0.109     Mon Mar 13 21:24   still logged in   

reboot   system boot  2.6.8-2-386      Mon Mar 13 21:23          (00:43)   

zhoulj   pts/0        10.140.0.105     Sun Mar 12 22:51 - down   (00:00)   

zhoulj   pts/0        10.140.0.105     Sun Mar 12 22:51 - 22:51  (00:00)   

root     tty1                          Sun Mar 12 22:50 - down   (00:01)   

root     tty1                          Sun Mar 12 22:46 - 22:48  (00:02)   

root     tty1                          Sun Mar 12 22:43 - 22:46  (00:02)   

reboot   system boot  2.6.8-2-386      Mon Mar 13 06:34          (-7:-41)   

wtmp begins Mon Mar 13 06:34:11 2006

 

5、date命令---系统日期设定

date 显示当前日期时间

date   -s   20:30:30 设置系统时间为20:30:30

date  -s   2002-3-5 设置系统时期为2003-3-5

date  -s   "060520 06:00:00" 设置系统时期为2006年5月20日6点整。

 

6、clock命令---时钟设置

功能:时钟设置

clock –r 对系统Bios中读取时间参数

clock –w 将系统时间(如由date设置的时间)写入Bios

7、uname命令---查看系统版本

uname  -R 显示操作系统内核的version

例如:

uname -a

Linux Sarge 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

 

8、关闭和重新启动系统命令

init   0 关闭系统

telinit   0 关闭系统

reboot    重启计算机

halt    关闭计算机

shutdown  -r  now  重启计算机,停止服务后重新启动计算机

shutdown  -h  now  关闭计算机,停止服务后再关闭系统

一般用shutdown  -r  now,在重启系统时关闭相关服务,shutdown  -h  now也是如此。

reboot 重启

logout 注销

9、su命令---切换用户

su  -   切换到root用户

su  - zhoulj 切换到zhoulj用户

su 和 su - 的区别:

注意,使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。

http://man.linuxde.net/su

 

三、监视系统状态命令

1、top命令---查看系统cpu、内存等使用情况

top 显示进程信息

top -c 显示完整命令

top -b 以批处理模式显示程序信息

top -S 以累积模式显示程序信息

top -n 2 设置信息更新次数,表示更新两次后终止更新显示

top -d 3 设置信息更新时间,表示更新周期为3秒

top -p 139 显示指定的进程信息,显示进程号为139的进程信息,CPU、内存占用率等

top -n 10 显示更新十次后退出

top -s 使用者将不能利用交谈式指令来对行程下命令

2、free命令---查看内存和swap分区使用情况

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

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

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

-g   以GB为单位显示内存使用情况。

例如:

free -tm

                total       used       free     shared    buffers     cached

Mem:           187         42        145          0          6         16

-/+ buffers/cache:         19        167

Swap:          243          0        243

Total:         430         42        388

 

3、uptime---系统开机运转到现在经过的时间

功能:现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载

例如:

uptime

21:54:46 up 31 min,  1 user,  load average: 0.00, 0.00, 0.00

4、vmstat命令---监视虚拟内存使用情况

例如:

# vmstat

procs                      memory      swap          io     system         cpu

r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa

1  0      0  63704   8100  32272    0    0     8     3  103    17  0  1 98  1

5、ps命令---显示进程信息

ps ux 显示当前用户的进程

ps uxwww 显示当前用户的进程的详细信息

ps aux 显示所有用户的进程

ps ef 显示系统所有进程信息

6、kill命令---干掉某个进程

功能:干掉某个进程,进程号可以通过ps命令得到

kill -9 1001  将进程编号为1001的程序干掉

kill all -9 apache 将所有名字为apapche的程序杀死,kill不是万能的,对僵死的程序则无效。

四、磁盘操作命令

1、df命令

功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

参数 功能

-a 列出全部目录

-Ta 列出全部目录,并且显示文件类型

-B 显示块信息

-i 以i节点列出全部目录

-h 按照日常习惯显示(如:1K、100M、20G)

-x [filesystype] 不显示[filesystype]

例如:

# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda1     ext3    265M   64M  187M  26% /

tmpfs        tmpfs     94M     0   94M   0% /dev/shm

/dev/sda6     ext3    714M  8.1M  667M   2% /home

/dev/sda8     ext3    956M  215M  691M  24% /usr

/dev/sda7     ext3    714M   57M  619M   9% /var

 

2、du命令

功能:检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间。

参数   功能

-s [dirName] 显示目录占用总空间

-sk [dirName] 显示目录占用总空间,以k为单位

-sb [dirName] 显示目录占用总空间,以b为单位

-sm [dirName] 显示目录占用总空间,以m为单位

-sc [dirName] 显示目录占用总空间,加上目录统计

-sh [dirName] 只统计目录大小

 

例如:

# du -sh /etc

1.3M     /etc

3、mount命令

功能:使用mount命令就可在Linux中挂载各种文件系统。

格式:mount -t  设备名 挂载点

(1)、mount /dev/sda1  /mnt/filetest

mount -t vfat /dev/hda  /mnt/fatfile

mount -t ntfs /dev/hda  /mnt/ntfsfile

mount -t iso9660 /dev/cdrom  /mnt/cdrom

mount -o  设备名 挂载点

(2)、使用usb设备

modprobe usb-storage

mkdir /mnt/usb

mount -t auto /dev/sdx1 /mnt/usb

umount /mnt/usb

4、mkswap命令

功能:使用mkswap命令可以创建swap空间,如:

debian:~# mkswap -c /dev/hda4

debian:~# swapon /dev/hda4      #启用新创建的swap空间,停用可使用swapoff命令

 

5、fdisk命令

功能:对磁盘进行分区

fdisk /dev/xxx 格式化xxx设备(xxx是指磁盘驱动器的名字,例如hdb,sdc)

fdisk -l 显示磁盘的分区表

 

6、mkfs命令

功能:格式化文件系统,可以指定文件系统的类型,如ext2、ext3、fat、ntfs等

格式1:mkfs.ext3 options /dev/xxx

格式2:mkfs -t ext2 options /dev/xxx

参数    功能

-b   块大小

-i    节点大写

-m    预留管理空间大小

例如:

debian:~#mkfs.ext3 /dev/sdb1

 

7、e2fsck命令

功能 磁盘检测

e2fsck /dev/hda1  检查/dev/hda1是否有文件系统错误,提示修复方式

e2fsck -p /dev/hda1  检查/dev/hda1是否有错误,如果有则自动修复

e2fsck -y /dev/hda1  检查错误,所有提问均于yes方式执行

e2fsck -c /dev/hda1  检查磁盘是否有坏区

 

8、tune2fs命令

功能:调整ext2/ext3文件的参数

参数   功能

-l   查看文件系统信息

-c   设置强制自检的挂载次数

-i   设置强制自检的间隔时间,单位天

-m   保留块的百分比

-j   将ext2文件系统转换成ext3格式

# tune2fs -l /dev/sda1

 

9、dd命令

功能:功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。

跟DOS下的diskcopy命令的作用类似。

dd if=/dev/fd0 of=floppy.img 将软盘的内容复制成一个镜像

dd if=floppy.img of=/dev/fd0 将一个镜像的内容复制到软盘,做驱动盘的时候经常用。

10、光盘

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容

mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件

mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件

mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件

cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件

gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件

mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件

cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中

cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)

cdrecord --scanbus 扫描总线以识别scsi通道

dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD

六、用户和组相关命令

1、groupadd命令---添加组

groupadd test1   添加test1组

groupadd -g 1111  test2   添加test2组,组id为1111

2、useradd命令---添加用户

useradd user1   添加用户user1,home为/home/user1,组为user1

useradd -g test1 -m -d /home/test1 test1 添加用户test1,home为/home/test1,组为test1

user list  显示已登陆的用户列表

3、passwd命令---更改用户密码

passwd user1  修改用户user1的密码

passwd -d root  将root用户的密码删除

 

4、userdel命令---删除用户

userdel user1  删除user1用户

 

5、chown命令---改变文件或目录的所有者

chown user1 file1  将file1文件设置为user1所有

chown user1 /dir  将/dir目录设置为user1所有

chown  -R  group1.user1  /dir  将/dir目录下所有文件和目录,设置为user1所有,组为group1。-R递归到下面的每个文件和目录

6、chgrp命令---改变文件或目录的所有组

chgrp user1 /dir  将/dir目录设置为user1所有

 

7、chmod命令---改变用户对文件的权限

chmod a+x file  将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bash file才能执行

chmod 666 file  将文件file设置为可读写

chmod 750 file 将文件file设置为,所有者为完全权限,同组可以读和执行,其他无权限

 

8、id命令---显示用户的信息,包括uid、gid等

# id zhoulj

uid=500(zhoulj) gid=500(zhoulj) groups=500(zhoulj)

 

9、finger命令---显示用户的信息

注意:debian下没有该命令。

# finger zhoulj

Login: zhoulj                           Name:

Directory: /home/zhoulj                 Shell: /bin/bash

On since Sun May 21 07:59 (CST) on pts/0 from 192.168.1.4

No mail.

 

No Plan.

 

七、压缩命令

1、gzip格式命令

功能:压缩文件,gz格式的

注意:生成的文件会把源文件覆盖

gzip 压缩命令

gunzip   解压命令

例如:

gzip file1 压缩一个叫做 'file1'的文件

gzip -9 file1 最大程度压缩

gzip -v   压缩文件,并且显示进度

gzip     -d   解压缩

gunzip   -f   解压缩

gunzip file1.gz 解压一个叫做 'file1.gz'的文件

2、zip格式命令

功能:压缩和解压缩zip命令

zip    压缩命令

unzip    解压命令

例如:

zip file1.zip file1 创建一个zip格式的压缩包

zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包

unzip file1.zip 解压一个zip格式压缩包

将几个文件和目录同时压缩成一个zip格式的压缩包:

命令 参数 压缩文件存放目的地   待压缩目录/文件

zip -r /zip/dir01.zip    dir01 dir02 file1 file2

将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:

zip -q -r html.zip /home/Blinux/html

(-q:不显示指令执行过程     -r:递归处理,将指定目录下的所有文件和子目录一并处理)

3、bzip2根式命令

功能:bzip2格式压缩命令,

注意:生成的文件会把源文件覆盖

bzip2    压缩命令

bunzip2 解压命令

例如 :

bzip2 file1 压缩一个叫做 'file1' 的文件

bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件

4、tar命令

功能:归档、压缩等,比较重要,会经常使用。

-cvf     压缩文件或目录

-xvf      解压缩文件或目录

-zcvf     压缩文件或,格式tar.gz

-zxvf     解压缩文件或,格式tar.gz

-zcvf      压缩文件或,格式tgz

-zxvf      解压缩文件或,格式tgz

举例:

tar -cvf archive.tar file1 创建一个非压缩的 tarball

tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件

tar -tf archive.tar 显示一个包中的内容

tar -xvf archive.tar 释放一个包

tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下

tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包

tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包

tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包

tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包

 

5、rar命令

rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包

rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'

rar x file1.rar 解压rar包

unrar x file1.rar 解压rar包

八、网络相关命令

1、ifconfig命令

功能:显示修改网卡的信息

ifconfig  显示网络信息

ifconfig eth0 显示eth0网络信息

修改网络信息:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 设置网卡1的地址192.168.1.1,掩码为255.255.255.0

ifconfig eth0:1 192.168.1.2    捆绑网卡1的第二个地址为192.168.1.2

 

ifconfig eth0:x 192.168.1.n    捆绑网卡1的第n个地址为192.168.1.n

例如:

# ifconfig eth0:1 192.168.1.11

# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:06:9C:24  

          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:4220 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3586 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:342493 (334.4 Kb)  TX bytes:469020 (458.0 Kb)

          Interrupt:9 Base address:0x1400

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:06:9C:24  

          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          Interrupt:9 Base address:0x1400

2、route命令

功能:显示当前路由设置情况

route 显示当前路由设置情况,比较慢一般不用。

route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254  添加静态路由

route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254  添加静态路由

route add default gw 192.168.1.1 metric1    设置192.168.1.1为默认的路由

route del default       将默认的路由删除

举例:

# route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254

# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

10.0.0.0        192.168.1.254   255.255.0.0     UG        0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

 

# route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254   

# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

3、netstat命令

功能:显示网络状态

netstat -an  查看网络端口信息

netstat -nr 查看路由表信息,比route快多了,

4、 tcpdump命令---抓包命令集

tcpdump -h 查看Linux系统中是否有tcpdump

tcpdump -D        #列出可用于tcpdump抓取数据包的网卡列表

tcpdump    //抓取通过第一个网卡的数据包,并将信息打印在屏幕上实时显示出来

tcpdump -i eth0 //抓取通过eth0网卡的数据包,信息实时打印在屏幕上。-i表示指定哪个网卡接口,后面跟网卡名字,比如eth0或者lo

tcpdump -i eth0 host 192.39.45.66  //抓取该网卡和该IP地址会话的数据包,实时打印在屏幕上,host后面跟IP地址或者域名,比如也可以写成host www.baidu.com

tcpdump -i eth0 src host 192.39.45.66  //抓取所有该网卡和该IP之间,收到的数据,src表示服务器收到的数据,如果该参数缺省,默认抓取所有数据

tcpdump -i eth0 dst host 192.39.45.66  //抓取所有该网卡和该IP之间,收到的数据,dst表示服务器发出去的数据,如果该参数缺省,默认抓取所有数据

tcpdump -n -i eth0 port 8080 and host 192.39.45.66    //查看8080端口号的会话数据包,port表示端口号,后面比如跟8080。-n表示不对具体ip地址做域名解析,直接显示会话两边的具体ip地址

tcpdump -n -i eth0 port 8080 and host 192.39.45.66 tcp

常用:

tcpdump -c 10 -nn -i eth0 tcp dst port 8080 and host 192.39.45.66 -w /home/huidong/MyTest.pcap

自动过滤掉不是HTTP协议的数据

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 -c 10 -w ./HttpPort.pcap   //0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"

 

4、启动网络的命令

redhat族的命令:

/etc/init.d/network

debian命令:

/etc/init.d/networking

例如:

/etc/init.d/network stop 停止网络,

/etc/init.d/network start 启动网络,

5、手工修改网络配置

(1)、debian系统

配置文件位置为:/etc/network/interfaces

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto eth0 eth1

iface eth0 inet static

 

        address 10.4.5.6

        netmask 255.255.255.0

        network 10.4.5.0

        broadcast 10.4.5.255

iface eth1 inet static

        address 219.25.5.60

        netmask 255.255.255.192

        network 219.25.5.0

        broadcast 219.25.5.63

        gateway 219.25.5.30

修改后保存配置后,运行

/etc/init.d/networking restart

网络配置就改变了

(2)、redhat系统

配置文件位置为:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

IPADDR=192.168.1.5

NETMASK=255.255.255.0

NETWORK=192.168.1.0

GATEWAY=192.168.1.254

ONBOOT=yes

TYPE=Ethernet

修改后保存配置后,运行

/etc/init.d/network restart

或者

service network restart

网络配置就改变了。

默认DNS的文件的位置为:/etc/resolv.conf  

#cat /etc/resolv.conf

search test.com.cn

nameserver 192.168.1.11

 

6、网络排错

(1)、ping命令

功能:不说了,不知道就用干这行了。

ping

(2)、traceroute命令

功能:路由跟踪

traceroute

traceroute 207.68.173.7

(3)、nslookup命令

功能:域名解析排错

例如:

$ nslookup

Note:  nslookup is deprecated and may be removed from future releases.

Consider using the `dig' or `host' programs instead.  Run nslookup with

the `-sil[ent]' option to prevent this message from appearing.

>

Server:         192.168.1.11

Address:        192.168.1.11#53

Non-authoritative answer:

Name:   

Address: 202.118.66.66

> server 202.118.66.6

Default server: 202.118.66.6

Address: 202.118.66.6#53

>

Server:         202.118.66.6

Address:        202.118.66.6#53

Non-authoritative answer:   canonical name =.

Name:   

Address: 202.108.22.5

九、其他命令

1、ssh命令

功能:远程登陆到其他UNIX主机

ssh -l user1 192.168.1.2 使用用户名user1登陆到192.168.1.2

ssh

   使用用户名user1登陆到192.168.1.2

2、scp命令

功能:安全copy

例如:

scp abc.tar.gz

:~ 将本地的abc.tar.gz 复制到 192.168.1.5的user1用户的根(/home/user1)下。

3、telnet命令

功能:登陆到远程主机

例如:

telnet 192.168.1.5

十、JPS工具

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

    我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。

     使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。

jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path.

$> jps
23991 Jps
23789 BossMain
23651 Resin

 

比较常用的参数:

-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
$>  jps -q
28680
23789
23651

-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null

$> jps -m
28715 Jps -m
23789 BossMain
23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdout.log -stderr /data/aoxj/resin/log/stderr.log

-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

$> jps -l
28729 sun.tools.jps.Jps
23789 com.asiainfo.aimc.bossbi.BossMain
23651 com.caucho.server.resin.Resin

-v 输出传递给JVM的参数

$> jps -v
23789 BossMain
28802 Jps -Denv.class.path=/data/aoxj/bossbi/twsecurity/java/trustwork140.jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmcc.jar:/data/aoxj/jdk15/lib/rt.jar:/data/aoxj/jd

k15/lib/tools.jar -Dapplication.home=/data/aoxj/jdk15 -Xms8m
23651 Resin -Xss1m -Dresin.home=/data/aoxj/resin -Dserver.root=/data/aoxj/resin -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -

Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl

sudo jps看到的进程数量最全

jps 192.168.0.77

列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099

(前提是远程服务器提供jstatd服务)

注:jps命令有个地方很不好,似乎只能显示当前用户的java进程,要显示其他用户的还是只能用unix/linux的ps命令。

 

十一、包

1、RPM 包 - (Fedora, Redhat及类似系统)

rpm -ivh package.rpm 安装一个rpm包

rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告

rpm -U package.rpm 更新一个rpm包但不改变其配置文件

rpm -F package.rpm 更新一个确定已经安装的rpm包

rpm -e package_name.rpm 删除一个rpm包

rpm -qa 显示系统中所有已经安装的rpm包

rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包

rpm -qi package_name 获取一个已安装包的特殊信息

rpm -qg "System Environment/Daemons" 显示一个组件的rpm包

rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表

rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表

rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表

rpm -q package_name --whatprovides 显示一个rpm包所占的体积

rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l

rpm -q package_name --changelog 显示一个rpm包的修改历史

rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供

rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表

rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书

rpm --checksig package.rpm 确认一个rpm包的完整性

rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性

rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间

rpm -Va 检查系统中所有已安装的rpm包- 小心使用

rpm -Vp package.rpm 确认一个rpm包还未安装

rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件

rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包

rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

2、YUM 软件包升级器 - (Fedora, RedHat及类似系统)

yum install package_name 下载并安装一个rpm包

yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系

yum update package_name.rpm 更新当前系统中所有安装的rpm包

yum update package_name 更新一个rpm包

yum remove package_name 删除一个rpm包

yum list 列出当前系统中安装的所有包

yum search package_name 在rpm仓库中搜寻软件包

yum clean packages 清理rpm缓存删除下载的包

yum clean headers 删除所有头文件

yum clean all 删除所有缓存的包和头文件

5、 DEB 包 (Debian, Ubuntu 以及类似系统)

dpkg -i package.deb 安装/更新一个 deb 包

dpkg -r package_name 从系统删除一个 deb 包

dpkg -l 显示系统中所有已经安装的 deb 包

dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包

dpkg -s package_name 获得已经安装在系统中一个特殊包的信息

dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表

dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表

dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

5、APT 软件工具 (Debian, Ubuntu 以及类似系统)

apt-get install package_name 安装/更新一个 deb 包

apt-cdrom install package_name 从光盘安装/更新一个 deb 包

apt-get update 升级列表中的软件包

apt-get upgrade 升级所有已安装的软件

apt-get remove package_name 从系统删除一个deb包

apt-get check 确认依赖的软件仓库正确

apt-get clean 从下载的软件包中清理缓存

apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

十二、文本处理

cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT

cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中

cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中

grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"

grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇

grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行

grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"

sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"

sed '/^$/d' example.txt 从example.txt文件中删除所有空白行

sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行

echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容

sed -e '1d' result.txt 从文件example.txt 中排除第一行

sed -n '/stringa1/p' 查看只包含词汇 "string1"的行

sed -e 's/ *$//' example.txt 删除每一行最后的空白字符

sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部

sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容

sed -n '5p;5q' example.txt 查看第5行

sed -e 's/00*/0/g' example.txt 用单个零替换多个零

cat -n file1 标示文件的行数

cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行

echo a b c | awk '{print $1}' 查看一行第一栏

echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏

paste file1 file2 合并两个文件或两栏的内容

paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分

sort file1 file2 排序两个文件的内容

sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)

sort file1 file2 | uniq -u 删除交集,留下其他的行

sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)

comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容

comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容

comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分

 

标签:文件,file1,Shell,192.168,命令,shell,Linux,rpm,目录
From: https://www.cnblogs.com/ryxxtd/p/17088558.html

相关文章

  • Linux 命令基础
    Chown ---修改所属用户和组chmod[-R]xyz 文件或目录   ---修改用户的权限r=4,w=2,x=1(rwx=4+2+1=7)ls-l d是目录-是文件l是链接文档(linkfile)b是可随机存储装置c是串行端口设备文件r读  w写  x执行d  rwx  r-x......
  • Linux系统之计划任务的配置与管理
    (Linux系统之计划任务的配置与管理)一、crontab介绍1.crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。2.该词来源于希腊语chronos(χρνο),原意是时间。通常,cronta......
  • linux 下 rm 为什么要这么写?
    在我们的培训课程改为长期课之后(易生信培训改为长周期模式),大家学习、练习、理解宏基因组、扩增子、转录组、全基因组各个分析流程的时间也多了,每次直播都能提出很多代码使用的问题,更加促进了代码的理解、培训知识的落地、应用于自己的分析。有时一次直播全用来回答最近一周练习......
  • Linux——yum&rpm
    RPMRMP是LINUX下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(RedhatLinuxPacketManager,就是Redhat的包管理器),后缀是.rpm。RPM是RedHat公司随RedhatLinux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。 1.安装软件:......
  • Linux系统中Shell的优势是什么?
    Linux系统中Shell的优势是什么?京东云开发者 51Testing软件测试网 2023-04-2017:30 发表于上海  Shell可以帮我们做什么 作为一名测试开发工程师,在与Linux服务器交互过程中,大都遇到过以下这些问题:一次申请多台服务器,多台服务器需要安装相同软件,配置相同的环......
  • shell/bash脚本编程
    原文地址zhuanlan.zhihu.comshell/bash脚本编程残枫cps​目录收起介绍我们的第一个脚本脚本解释器用户输入测试条件判断迭代语句-循环参数传递退出状态码逻辑操作符函数函数参数传递通配符调试原文地址zhuanlan.zhihu.com原文链接对于我自己来说,学习新框架或技术......
  • Linux环境aspose插件word转pdf中文乱码解决方案
    本地没出现这个问题,到了linux环境出现了这个问题。第一想到的是字体。 解决方案1:环境解决安装字库,将win机器的c:\windows\fonts目录下的全部文件拷贝到生产服务器字体安装目录下,然后执行以下命令更新字体缓存。查看linux目前的所有字体fc-list查看Linux目前的所有中文......
  • Linux下搭建Go开发环境
    Linux下搭建Go开发环境可以按照以下步骤进行:1、下载最新的Go语言二进制包,可以从官网 https://golang.org/dl/ 下载。2、将下载好的包解压缩到你想要安装的目录下,如/usr/local/go。3、添加环境变量,在终端中输入以下命令:exportGOROOT=/usr/local/goexportPATH=$PATH:$GOROOT/bi......
  • linux下查看文件内容工具发布啦!
    在Linux下面我们想要查看一个文件里面的内容,除了用编辑器把文件打开查看外,linux还提供了几条命令,可以不用打开文件就能把文件的内容输出到显示屏上进行查看。1、catcat命令主要用来查看文件内容,创建文件,文件合并,追加文件等。1.1、查看文件命令:cat文件名说明:这条命令会......
  • SWT shell设置可变大小
    SWTshell设置可变大小 Shellshell=newShell(shell,SWT.SHELL_TRIM)SWT.SHELL_TRIM会在shell窗口中加上最大小,最小化,关闭,以及窗口可变大小 本文来自博客园,作者:jason_bo,转载请注明原文链接:https://www.cnblogs.com/jasonboboblog/p/13398550.html......