当前位置:   article > 正文

linux日常命令_linux lspv

linux lspv
                                                            Linux日常命令部分
  • 1

试说明 ', ", 与 这些符号在变量定义中的用途? 参考变量规则那一章节,其中," 可以具有变量的上下文属性,'则仅有一般字符,至于之内则是可先被执行的指令。

安装oracle数据库时的登录密码忘记了?
打开SQL*PLUS 命令窗口,直接输入“conn/as sysdba”命令即可登录,登录时候可以使用“alter user sys identitide by 新密码” 命令修改密码

unix删除字符配置命令:①打开命令:stty echoe ②关闭命令:stty -echoe stty -a 命令可以查看当前终端的配置

aix系统delete不能删除错误的字符,backspace只能回退光标不能删除字符的解决方案:输入 set -o vi 命令,即可解决,但只针对当前窗口(意思为让当前bash模拟vi,默认的模拟是emacs)

Ctr+s:暂停屏幕输出 Ctr+q:恢复屏幕输出

查看cpu型号:less /proc/cpuinfo |grep model cat /proc/cpuinfo |grep “model name” |uniq

查看CPU个数: cat /proc/cpuinfo |grep “physical id” |uniq |wc -l

查看CPU核数: cat /proc/cpuinfo |grep “cpu cores” |uniq

查看服务器型号: dmidecode |grep “Product”

查看内存大小:free -g cat /proc/meminfo |grep MemTotal

查看系统硬盘大小: fdisk -l |grep Disk

查看硬盘大小:fdisk -l

查看分区大小:df -h df --total

查看系统版本信息: lsb_release -a cat /etc/redhat-release(只适用于redhat) cat /etc/issue cat /proc/version(概括版本信息) uname -a

图形化设置系统的各种服务:ntsysv

查看文件头:head(该命令默认显示前10行内容),可以使用-n参数指定显示的行数

查看文件尾:tail(该命令默认显示后10行内容),可以使用-n参数指定显示的行数,-f参数可以动态的查看文件内容

检查用户信息:who users w

①users:可以查看当前系统有哪些用户

②w可以看到更详细的信息

③finger命令在不加参数的情况下,同样会显示系统的登录用户(Ubuntu系统)

切换用户:Linux用户分为根用户(root),普通用户,系统用户。

su su - sudo三者之间的区别:

su命令表示默认切换到root用户;

su后面加上“-”参数,切换成root用户时,不但身份变成了root,而且还能应用root的用户环境(可以使用pwd命令显示当前用户的环境);

sudo:运行该命令时,系统会首先检查/etc/sudoers,判断该用户是否有执行sudo的权限,在确定执行权限后,系统会要求用户输入自己的密码,如果密码正确,则会以root用户的身份运行Linux命令,
在使用该命令前需要配置/etc/sudoers文件。Linux考虑到了这个文件的重要性,提供了专门的编辑方式,使用visudo命令来编辑这个文件,他的好处是可以在编辑后保存退出时自动检查语法设置,以防
不小心配置错误而造成无法使用sudo命令。

例行任务管理:

单一时刻执行一次任务:at
例如:在30分钟过后自动关机:at now + 30 minutes
at> /sbin/shutdown -h now
at>
job 1 at 2012-07-01 23:12
注:第一行是安排一个任务;第二行是到了时间后执行关机操作;第三行是使用了组合键Ctrl+D,表示输入结束;第四行是提示系统执行命令的时间
可以使用atq命令查看当前使用at命令调度的任务列表。也可以使用”atrm 标号“命令删除任务队列的任务。

周期性执行任务:可以通过crontab -e命令进入编辑模式。
例如:* * * * * command (其中第一个表示分钟,可以使用159的值,每分钟可以使用*和*/1表示;第二个*表示小时,可以使用的值是023;第三个表示日期,可以使用的值是1~31;
第四个*表示月份,可以使用的值是112;第五个*表示星期几,可以使用的值是06,代表星期日;最后是执行的命令)

设置完成后,可以使用crontab -l 查看设置的任务。也可以使用crontab -r 删除所有的任务;如果需要禁用部分用户使用这个功能,可以将该用户的用户名添加至/etc/cron.deny文件中。
除root用户外,其他用户只能设置,查看,删除自己的计划任务,root可以使用-u 参数查看制定用户的任务,比如root查看john的任务列表:crontab -u john -l

find:

find常见参数

参数                       含义
  • 1

-name filename 查找文件名为filename的文件

-perm 根据文件权限查找

-user username 根据用户名查找

-mtime -n/+n 查找n天内/n天前更改过的文件

-atime -n/+n 查找n天内/n天前访问过的文件

-ctime -n/+n 查找n天内/n天前创建的文件

-newer filename 查找更改时间比filename新的文件

-type b/d/c/p/l/f/s 查找块/目录/字符/管道/链接/普通/套接字文件

-size 根据文件大小查找

-depth n 最大的查找目录深度

例如:
1.找出linux系统中,具有SUID的档案有哪些
find / -perm +4000 -print

2.找出/etc底下,档案介于50K到60K直接的档案。
find /etc -size +50k -a -60k -exec ls -l {} \

3.找出 /etc 底下,档案容量大于50K且档案所属人不是 root 的档名,且将权限完整的列出(ls -l);
find /etc -size +50k -a ! -user root -exec ls -ld {} ;
find /etc -size +50k -a ! -user root -type f -exec ls -l {} ;

4.找出 /etc 底下,容量大于1500K 以及容量等亍0的档案:
find /etc -size +1500k -o -size 0

数据库查找:locate

与find不同,locate命令依赖于一个数据库文件,在使用这个命令之前,一般需要执行updatedb命令(非必须)以及时的更新数据库的记录。例如查找httpd.conf文件 :

updatedb
locate httpd.conf

which和whereis命令:

which用于从系统的PATH变量所定义的目录中查找可执行文件的决定路径。

使用whereis也能查到其路径,但是和which不同的是,它不但能找出其二进制文件,还能找出相关的man文件。

例如:which passwd whereis passwd
/usr/bin/passwd passwdL /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5/gz
/usr/share/man/man1/passwd.1.gz

alias命令

alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号’'将原来的命令引起来,防止特殊字符导致错误。

alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。

语法:alias(选项)(参数)

选项:-p:打印已经设置的命令别名。

参数:命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”。

实例:alias 新的命令=‘原命令 -选项/参数’

文件压缩和打包:

一:gzip(压缩单个文件) gunzip(解压缩单个文件)

二:tar:
tar不但可以打包文件,还可以将整个目录中的全部文件整合成一个包,整合包的同时还能使用gzip的功能进行压缩。
例如:tar -zcvf boot.tgz /boot (其中-z的含义是使用gzip压缩。-c是创建压缩文件。-v是显示当前被压缩的文件。-f是指使用的文件名,也就是这里的boot.tgz)
tar -zxvf boot.tgz (解压命令。-z是解压的意思。如果需要指定解压后的目录存放的位置,需要在使用参数-C。比如将boot解压到/tmp目录中) tar -zxvf boot.gtz -C /tmp

三:bzip2:
使用bzip2压缩文件时,默认会产生以.bz2扩展名结尾的文件,这里使用-z参数进行压缩,使用-d参数进行解压缩。

四:cpio:
该命令一般是不单独使用的,需要和find命令一同使用。当由find按照条件找出需要备份的文件列表后,可通过管道的方式传递给cpio进行备份,生成/tmp/conf.cpio文件,
然后再将生成的/tmp/conf.cpio文件中包含的文件列表完全还原回去。

#备份:
find /etc -name *.conf | cpio -cov > /tmp/conf.cpio

#还原:
cpio --absolute-filename -icvu </tmp/conf.cpio

磁盘检查:fsck badblocks

fsck:当磁盘出现逻辑错误时,可使用fsck来尝试修复。

fsck -t TYPE /DEVICE/PATH (其中TYPE可以是ext2,ext3,最后接设备的全部路径)

注意:fsck在检查磁盘的时候,需要磁盘是未挂载的状态,否则会造成文件系统的损坏。使用umount命令,其后面的参数可以是设备路径或者是是挂载点。

与fsck不同,badblocks主要是用来检测磁盘的物理坏道的,这个命令只是用来确定磁盘是否有坏道。 badblocks -v /dev/sdb1

当分区完成后,需要重启生效,但也可以通过使用partprobe命令 ==》 强制让核心重新捉一次 partition table

软连接和硬链接

硬链接:又称为实际链接,是指通过索引节点来进行链接。

注意:在创建硬链接前后使用ls -li 命令,会发现硬链接的inode和源文件的inode是一样的。

硬链接的两个限制:

①不允许给目录创建硬链接;

②只有在同一文件系统的文件之间才能创建链接,即不同分区上的两个文件之间不能够建立硬链接。

软连接:又称为符号链接,是一个包含了另一个文件路径名的文件,可以指向任意的文件或者目录,也可以跨不同的文件系统。

注意:在创建软链接前后使用ls -li 命令,会发现软链接的inode和源文件的inode是不一样的,说明软连接本身就是一个文件。

通过实验加深理解
[oracle@Linux]$ touch f1 #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2 #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3 #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r–r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r–r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo “I am f1 file” >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

使用grep搜索文本:(只能用来检索文本内容)

grep [-ivnc] ‘需要匹配的字符’ 文件名

#-i 不区分大小写
#-c 统计包含匹配的行数
#-n 输出行号
#-v 反向匹配

使用sort排序:

sort [-ntkr] 文件名

#-n 采取数字排序
#-t 指定分隔符
#-k 指定第几列
#-r 反向排序

例如:对sort.txt文件的输出内容进行排序:cat sort.txt |sort

使用uniq删除重复内容:

uniq [-ic]

#-i 忽略大小写
#-c 计算重复行数

注意:uniq一般都需要和sort命令一起使用,也就是先将文件使用sort进行排序,(这样重复的内容就能显示在连续的几行中),然后再使用uniq删除掉重复的内容(uinq的作用就在于删除连续的完全一致的行)。

cat uniq.txt | sort |uniq -c

使用cut截取文本:

cut -f 指定的列 -d ‘分隔符’

cat /etc/passwd |cut -f 1,6-7 -d ‘:’

使用tr做文本转换:tr命令比较简单,其主要作用在于文本转换或删除。

例如:将文件/etc/passwd中的小写字母转换为大写字母,然后再尝试删除文本中的冒号:
cat /etcpasswd |tr ‘[a-z]’ ‘[A-Z]’
cat /etcpasswd |tr -d ‘:’

使用paste做文本合并:paste的作用在于将文件按照行进行合并,中间使用tab隔开。
例如:paste a.txt b.txt
也可以使用-d指定在合并文件时行间的分隔符
例如:paste -d : a.txt b.txt

使用split分割大文件:
Linux支持按照行数分割和按照大小分割这两种模式。要说明的是,二进制文件因为没有"行"的概念,所有二进制文件无法使用行进行分割,而只能按照文件大小进行分割。

#按照行进行分割,-l参数指定每500行为一个小文件
split -l 500 a.txt small_file (分割完成后,当前目录会生成很多small_file小文件)
#如果是二进制文件,则按照文件大小进行分割
spilt -b 64m big_bin small_bin (分割完成后,当前目录下会生成很多大小为64m的二进制文件)

网络管理:

手工指定eth0的IP地址:ifconfig eth0 192.168.1.1 netmask 255.255.255 <==> ifconfig eth0 192.168.1.1/24
(动态的配置,一旦系统重启,这些信息将丢失,此时可通过修改配置文件/etc/sysconfig/network-scripts/,其中DEVICE定义了变量的名字,
BOOTPROTO定义了获取IP的方法(值为dhcp或者static),ONBOOT变量定义了启动时是否激活使用该设备)

手工断开/启用网卡: ifconfig eth0 down/up <==> ifdown eth0 / ifup eth0

注意:修改完成后,如果想立即生效,可以将端口停用再启用,或者重启网络服务。
第一种方式是不能远程操作的,因为一旦网卡被关掉后,远程连接就断开了。第二种方式虽然也经历了一次网络断开,但是该命令会在断开后立即重启,因此只需要使用新的IP重新连接就行了。

进程的终止:kill killall

kill:kill [信号代码] 进程ID

kill后可以跟的信号代码有64种,使用Kill -l可以看到具体有哪些。常用的三个:HUP(1),KILL(9),TERM(15),分别代表重启,强行杀掉,正常结束。

killall 进程名字 :killall httpd

rpm包管理命令:

安装参数:

-i --install 安装软件
-v --verbose 打印详细信息
-h --hash 使用"#"号打印安装进度(需要和-v同时用)
-e --erase 删除软件
-U --upgrade 升级软件
–replacepkge 如果软件已经安装则强行安装
–test 安装测试,并不会实际安装
–nodeps 忽略软件包的依赖关系强行安装
–force 忽略软件包及文件的冲突

查询参数:

-a --all 查询所有安装的软件
-p --package 查询某个安装软件
-l --list 列出某个软件包所包含的所有文件
-f --file 查询某个文件的所属包

例如:
安装软件包:rpm -ivh PACK_NAME-VERSION.rpm

测试安装软件包:rpm -ivh --test PACK_NAME-VERSION.rpm

安装软件包,并重新定义安装路径:rpm -ivh --relocate /-usr/local/PACK_NAME PACK_NAME-VERSION.rpm

删除软件包,并忽略依赖关系:rpm -e PACK_NAME --nodeps #只是包名,不需要跟版本号

导入签名:rpm --import RPM-GPG-KEY

查询某个包是否已经安装:rpm -q PACK_NAME

查询某个文件属于哪个包:rpm -qf PACK_NAME

查询某个已安装软件所包含的所有的文件:rpm -ql PACK_NAME

查询某个包的信息:rpm qpi PACK_NAME-VERSION.rpm

逻辑滚动条管理员 (Logical Volume Manager)

? Physical Volume, PV, 实体滚动条

? Volume Group, VG, 滚动条群组

? Physical Extend, PE, 实体延伸区块

? Logical Volume, LV, 逻辑滚动条

pv(物理磁盘) vg(卷组) lv(逻辑磁盘) pp(物理分区) lp(逻辑分区)

一:物理卷pv:physical volumes

每个独立的硬盘称作物理卷(PV),并有一个名字(如hdisk01)

PV命令:
? pvcreate :将实体 partition 建立成为 PV ;
? pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
? pvdisplay :显示出目前系统上面的 PV 状态;
? pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。

eg: pvcreate /dev/hda{6,7,8,9}
注:这个挃令可以一口气建立这四个 partition 成为 PV 啦!注意大括号的用途

二:卷组vg:logical vlume group

所有的物理卷属于一个称作rootvg的卷组

VG命令:
? vgcreate :就是主要建立 VG 的指定
? vgscan :搜寻系统上面是否有 VG 存在?
? vgdisplay :显示目前系统上面的 VG 状态;
? vgextend :在 VG 内增加额外的 PV ;
? vgreduce :在 VG 内移除 PV;
? vgchange :设定 VG 是否启动 (active);
? vgremove :移除一个 VG !

eg:# 将 /dev/hda6-8 建立成为一个 VG,并指定 PE 为 16MB!
vgcreate -s 16M vbirdvg /dev/hda{6,7,8}

三:物理分区pp:physical partitions

所有在一个VG中的PV被分成相同大小的物理分区(PP)

四:逻辑卷lv:logical volumes

每个VG中可以定义一个或者多个逻辑卷(LV),LV是位于PV上的信息的集合,在LV上的数据可以连续或者不连续的出现在PV

LV命令:

? lvcreate :建立 LV!
? lvscan :查询系统上面的 LV ;
? lvdisplay :显示系统上面的 LV 状态啊!
? lvextend :在 LV 里面增加容量!
? lvreduce :在 LV 里面减少容量;
? lvremove :移除一个 LV !
? lvresize :对 LV 进行容量大小的调整!

五:逻辑分区LP:

每个LV包含一个或者多个逻辑分区(LP),每个LV相当于至少一个PP,如果对LV指定了镜像,就要有双倍的PP被分配用来存储每个LP的备份

lsfs 得到lv和其所属的vg关系
lslv lv名 得到lv和其所属的vg的关系
lspv 得到系统中各物理磁盘划分成vg的情况

lsvg -l lv名
lsvg -p lv名

负载均衡添加服务的基本配置步骤:
第一步:服务器负载均衡页面-后台服务页面-添加相应的后台服务
第二步:虚拟服务页面-添加虚拟服务名称
第三步:应用组页面-添加相关的应用组
第四步:通过虚拟服务页面去关联相关的应用组(进入到虚拟服务页面,双击对应的服务即可进行编辑)
第五步:通过应用组页面去关联相关的后台服务(进入到应用组页面,双击对应的服务即可进行编辑)
第六步:如果以上步骤没问题,可到监控页面进行检查是否添加成功。

超简单文本编辑器:nano
[ctrl]-G联机取得帮助
[ctrl]-X 离开nano软件
[ctrl]-O 存储档案(在有权限的情况下)
[ctrl]-R 从其他档案读取资料,可以将某个档案的内容贴在本档案中
[ctrl]-W 搜寻字符串
[ctrl]-C 说明目前光标所在处的行数与列数等信息
[ctrl]-_可以直接输入行数,让光标快速移动到该行
[alt]-Y 校正语法功能开启或关闭
[alt]-M 可以支持鼠标来移动光标的功能

vi常用指令:
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
这个 u 和 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~
. 不要怀疑! 这就是小数点! 意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
:n1,n2s/word1/word2/g n1 和 n2 为数字。在第 n1与n2 行之间寻找 word1 这个字符串,并将该字符串替代为 word2 ,举例来说,在 100 到 200 行之间搜寻 vbird 并替代为 VBIRD
则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1, s / w o r d 1 / w o r d 2 / g 从第一行到最后一行寻找 w o r d 1 字符串,并将该字符串替代为 w o r d 2 。 ( 常用 ) : 1 , s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串替代为 word2 。(常用) :1, s/word1/word2/g从第一行到最后一行寻找word1字符串,并将该字符串替代为word2(常用):1,s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串替代为 word2 !且在替代前显示提示字符给用户确讣 (confirm) 是否需要替代。(常用)
在 vi 底下作了很多的编辑动作后,却想还原成原来的档案内容,直接按下 :e! 即可恢复成档案的原始状态!

在 vi 这个程序当中,不想离开 vi ,但是想执行 ls /home 这个指令,vi 有什么额外的功能可以达到这个目的:
事实上,可以使用[ :! ls /home ]不过,如果你学过后面的章节之后,你会发现,执行[ ctrl + z ]亦可暂时退出 vi 让你在指令列模式当中执行指令。使用fg命令即可恢复。

                                                                Linux命令大全部分
  • 1

系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS

关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销

文件和目录
cd /home 进入 ‘/ home’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls [0-9] 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
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 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert “{}” -resize 80x60 “thumbs/{}” ;
batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

文件搜索
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 显示一个二进制文件或可执行文件的完整路径

挂载一个文件系统
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 ‘/ mnt/hda2’ 已经存在
umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 ‘/ mnt/hda2’ 退出
fuser -km /mnt/hda2 当设备繁忙时强制卸载
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
mount /dev/fd0 /mnt/floppy 挂载一个软盘
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享

磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 ‘dir1’ 已经使用的磁盘空间’
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
rpm -q -a --qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
dpkg-query -W -f=‘ I n s t a l l e d − S i z e ; 10 t {Installed-Size;10}t InstalledSize;10t{Package}n’ | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)

返回顶部索引 ^

用户和群组
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录)
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2005-12-31 user1 设置用户口令的失效期限
pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

返回顶部索引 ^

文件的权限 - 使用 “+” 设置权限,使用 “-” 用于取消
ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位

返回顶部索引 ^

文件的特殊属性 - 使用 “+” 设置权限,使用 “-” 用于取消
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性

返回顶部索引 ^

打包和压缩文件
bunzip2 file1.bz2 解压一个叫做 'file1.bz2’的文件
bzip2 file1 压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz 解压一个叫做 'file1.gz’的文件
gzip file1 压缩一个叫做 'file1’的文件
gzip -9 file1 最大程度压缩
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包
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 -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包

返回顶部索引 ^

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 包

返回顶部索引 ^

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 删除所有缓存的包和头文件

返回顶部索引 ^

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包提供

返回顶部索引 ^

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 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 file1 查看一个文件的前两行
tail -2 file1 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容

返回顶部索引 ^

文本处理
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 ‘/^KaTeX parse error: Expected 'EOF', got '#' at position 49: …所有空白行 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 用单个零替换多个零
sed ‘N;s/\n/=/g’ master-6379.log sed内置命令N的作用:不会清空模式空间的内容,并且从输入文件中读取下一行数据,追加到模式空间中,两行数据以换行符\n连接
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}’ 查看一行的第一和第三栏
awk ‘{gsub(“pwpolicy”,“我要替换”,$0);print $0}’ anaconda-ks.cfg gsub格式:gsub(“替换对象”,“替换成什么内容”,哪一列)

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 比较两个文件的内容只删除两个文件共有的部分

返回顶部索引 ^

字符设置和文件格式转换
dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
recode …HTML < page.txt > page.html 将一个文本文件转换成html
recode -l | more 显示所有允许的转换格式

返回顶部索引 ^

文件系统分析
badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块
fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性
fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性
fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性
dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性

返回顶部索引 ^

初始化一个文件系统
mkfs /dev/hda1 在hda1分区创建一个文件系统
mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统
mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统
mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统
fdformat -n /dev/fd0 格式化一个软盘
mkswap /dev/hda3 创建一个swap文件系统

返回顶部索引 ^

SWAP文件系统
mkswap /dev/hda3 创建一个swap文件系统
swapon /dev/hda3 启用一个新的swap文件系统
swapon /dev/hda2 /dev/hdb3 启用两个swap分区

返回顶部索引 ^

备份
dump -0aj -f /tmp/home0.bak /home 制作一个 ‘/home’ 目录的完整备份
dump -1aj -f /tmp/home0.bak /home 制作一个 ‘/home’ 目录的交互式备份
restore -if /tmp/home0.bak 还原一个交互式备份
rsync -rogpav --delete /home /tmp 同步两边的目录
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’ 通过ssh在远程主机上执行一次备份本地磁盘的操作
dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件
tar -Puf backup.tar /home/user 执行一次对 ‘/home/user’ 目录的交互式备份操作
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’ 通过ssh在远程目录中复制一个目录内容
( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’ 通过ssh在远程目录中复制一个本地目录
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接
find /home/user1 -name ‘.txt’ | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 ‘.txt’ 结尾的文件到另一个目录
find /var/log -name '
.log’ | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 ‘.log’ 结尾的文件并做成一个bzip包
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容

返回顶部索引 ^

光盘
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

返回顶部索引 ^

网络 - (以太网和WIFI无线)
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 ‘eth0’ 网络设备
ifdown eth0 禁用一个 ‘eth0’ 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0 以dhcp模式启用 ‘eth0’
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network ‘192.168.0.0/16’
route del 0/0 gw IP_gateway remove static route
echo “1” > /proc/sys/net/ipv4/ip_forward activate ip routing
hostname show hostname of system
host www.example.com lookup hostname to resolve name to ip address and viceversa(1)
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)
ip link show show link status of all interfaces
mii-tool eth0 show link status of ‘eth0’
ethtool eth0 show statistics of network card ‘eth0’
netstat -tup show all active network connections and their PID
netstat -tupl show all network services listening on the system and their PID
tcpdump tcp port 80 show all HTTP traffic
iwlist scan show wireless networks
iwconfig eth1 show configuration of a wireless network card
hostname show hostname
host www.example.com lookup hostname to resolve name to ip address and viceversa
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa
whois www.example.com lookup on Whois database

GO TOP INDEX ^
Microsoft Windows networks (SAMBA)
nbtscan ip_addr netbios name resolution
nmblookup -A ip_addr netbios name resolution
smbclient -L ip_addr/hostname show remote shares of a windows host
smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share

查看linux是centos还是ubuntu的方法

以下总结了4种区分centos和ubuntu系统的方法。

1、lsb_release -a

如果是想查看你的Linux系统是Ubuntu还是CentOS,可以使用lsb_release -a命令,lsb_release -a命令可以列出你的Linux系统是哪个Linux发行版,它还可以列出具体是第几个版本。(推荐:linux使用教程)

2、cat /etc/redhat-release && cat /etc/lsb-release

radhat或centos存在: /etc/redhat-release 这个文件【 命令 cat /etc/redhat-release 】

ubuntu存在 : /etc/lsb-release 这个文件 【命令 cat etc/lsb-release 】

3、apt-get && yum

有yum的就是Centos【yum -help】

有apt-get的就是Ubuntu 【apt-get -help】

4、cat /etc/issue

有Ubuntu字样为ubuntu,没有则是centos

扩展:
set -x 打开跟踪功能
set +x 关闭跟踪功能

说明:set -x 不会被跟踪,因为跟踪功能是在这条命令执行后才打开的。同理,set +x会被跟踪,因为跟踪功能是在这条命令执行后才关闭的。

eg:

[fh_lijinping@mg20-150-253 temp]$ cat nusers
#! /bin/bash -

set -x
who | wc -l

echo “Enter your name: \c”

set +x
printf “Print your name: \n”
[fh_lijinping@mg20-150-253 temp]$ sh nusers

  • who
  • wc -l
    6
  • echo ‘Enter your name: \c’
    Enter your name: \c
  • set +x
    Print your name:

P194

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/933622
推荐阅读
相关标签
  

闽ICP备14008679号