Shell中判断语句if中-z至-d的意思node
[ -a FILE ] 若是 FILE 存在则为真。linux
[ -b FILE ] 若是 FILE 存在且是一个块特殊文件则为真。ios
[ -c FILE ] 若是 FILE 存在且是一个字特殊文件则为真。web
[ -d FILE ] 若是 FILE 存在且是一个目录则为真。shell
[ -e FILE ] 若是 FILE 存在则为真。数据库
[ -f FILE ] 若是 FILE 存在且是一个普通文件则为真。ubuntu
[ -g FILE ] 若是 FILE 存在且已经设置了SGID则为真。bash
[ -h FILE ] 若是 FILE 存在且是一个符号链接则为真。服务器
[ -k FILE ] 若是 FILE 存在且已经设置了粘制位则为真。网络
[ -p FILE ] 若是 FILE 存在且是一个名字管道(F若是O)则为真。
[ -r FILE ] 若是 FILE 存在且是可读的则为真。
[ -s FILE ] 若是 FILE 存在且大小不为0则为真。
[ -t FD ] 若是文件描述符 FD 打开且指向一个终端则为真。
[ -u FILE ] 若是 FILE 存在且设置了SUID (set user ID)则为真。
[ -w FILE ] 若是 FILE 若是 FILE 存在且是可写的则为真。
[ -x FILE ] 若是 FILE 存在且是可执行的则为真。
[ -O FILE ] 若是 FILE 存在且属有效用户ID则为真。
[ -G FILE ] 若是 FILE 存在且属有效用户组则为真。
[ -L FILE ] 若是 FILE 存在且是一个符号链接则为真。
[ -N FILE ] 若是 FILE 存在 and has been mod若是ied since it was last read则为真。
[ -S FILE ] 若是 FILE 存在且是一个套接字则为真。
[ FILE1 -nt FILE2 ] 若是 FILE1 has been changed more recently than FILE2, or 若是 FILE1 exists and FILE2 does not则为真。
[ FILE1 -ot FILE2 ] 若是 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
[ FILE1 -ef FILE2 ] 若是 FILE1 和 FILE2 指向相同的设备和节点号则为真。
[ -o OPTIONNAME ] 若是 shell选项 “OPTIONNAME” 开启则为真。
[ -z STRING ] “STRING” 的长度为零则为真。
[ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。
[ STRING1 == STRING2 ] 若是2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。
[ STRING1 != STRING2 ] 若是字符串不相等则为真。
[ STRING1 < STRING2 ] 若是 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。
[ STRING1 > STRING2 ] 若是 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.
导出文件到win:
0.sz/rz命令:
通常来讲,linux服务器大可能是经过ssh来进行远程的登录和管理的,如何在命令方式下上和下载文件到服务器和本地呢?与ssh有关的两个命令能够提供很方便的操做:
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)设置上
scp:直接从一台主机发送到另外一台主机 列:scp 路径+文件名称 主机名称@主机IP:所接受文件位置路径
1、文件处理命令:ls
功能描述:显示目录文件
命令英文原意:list
命令所在路径:/bin/ls
执行权限:全部用户
语法: ls 选项[-ald] [文件或目录]
-a 显示全部文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
$ ls –a > dir.txt ← 将ls –a命令执行结果输出到dir.txt文件。
$ ls –a >> dir.txt ← 将ls –a命令执行结果附加到dir.txt文件以后。
2、文件处理命令:cd
功能描述:切换目录
命令英文原意:change directory
命令所在路径:shell内置命令
执行权限:全部用户
语法:cd [目录]
范例: $ cd / 切换到根目录
$ cd 。。 回到上一级目录
文件处理命令:pwd
功能描述:显示当前所在的工做目录
命令英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:全部用户
语法:pwd
范例: $ pwd
/etc/rc5.d
文件处理命令:touch
功能描述:建立空文件
命令名称:touch
命令所在路径:/bin/touch
执行权限:全部用户
语法:touch [文件名]
范例:$ touch newfile
文件处理命令:mkdir
功能描述:建立新目录
命令英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:全部用户
语法:mkdir [目录名]
范例:$ mkdir newdir
文件处理命令:cp
功能描述:复制文件或目录
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:全部用户
语法: cp -R [源文件或目录] [目的目录]
-R 复制目录
范例: $ cp file1 file2 dir1
将文件file一、file2复制到目录dir1
$ cp -R dir1 dir2
将dir1下的全部文件及子目录复制到dir2
文件处理命令:mv
功能描述:移动文件、改名
命令英文原意:move
命令所在路径:/bin/mv
执行权限:全部用户
语法:mv [源文件或目录] [目的目录]
范例: $ mv file1 file3
将当前目录下文件file1改名为file3
$ mv file2 dir2
将文件file2移动到目录dir2下
文件处理命令:rm
功能描述:删除文件
命令英文原意:remove
命令所在路径:/bin/rm
执行权限:全部用户
语法:rm -r [文件或目录]
-r 删除目录
范例: $ rm file3
删除文件file3
$ rm -r dir1
删除目录dir1
文件处理命令:cat
功能描述:显示文件内容
命令英文原意:concatenate and display files
命令所在路径:/bin/cat
执行权限:全部用户
语法:cat [文件名]
范例: $ cat /etc/issue
$ cat /etc/services
$ cat preface.txt more
逐页显示preface.txt的内容;
$ cat preface.txt >> outline.txt
将preface.txt 附加到outline.txt文件以后;
cat new.txt info.txt >readme.txt
将new.txt和info.txt合并成readme.txt文件;
文件处理命令:more
命令所在路径:/bin/more
执行权限:全部用户
语法:more [文件名]
(空格) 或f 显示下一页
(Enter) 显示下一行
q或Q 退出
文件处理指令:head
功能描述:查看文件的前几行
指令所在路径:/bin/head
执行权限:All User
语法: head -num [文件名]
-num 显示文件的前num行
范例:$ head -20 /etc/services
文件处理指令:tail
功能描述:查看文件的后几行
指令所在路径:/bin/tail
执行权限:All User
语法: tail -num [文件名]
-num 显示文件的后num行
-f 动态显示文件内容
范例:$ tail -30 /etc/services
文件处理命令:ln
功能描述:产生连接文件
命令英文原意:link
命令所在路径:/bin/ln
执行权限:全部用户
语法: ln -s [源文件] [目标文件]
-s 建立软连接
范例: $ ln -s /etc/issue /issue.soft
建立文件/etc/issue的软连接/issue.soft
$ ln /etc/issue /issue.hard
建立文件/etc/issue的硬连接/issue.hard
权限管理命令:chmod
功能描述:改变文件或目录权限
命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:全部用户
语法:chmod [{ugo}{+-=}{rwx}] [文件或目录]
[mode=421 ] [文件或目录]
范例: $ chmod g+w file1
赋予文件file1所属组写权限
$ chmod 777 dir1
设定目录dir1为全部用户具备所有权限
表明字符
权限
对文件的含义
对目录的含义
r
读权限
能够查看文件内容
能够列出目录中的内容
w
写权限
能够修改文件内容
能够在目录中建立、删除文件
x
执行权限
能够执行文件
能够进入目录
权限管理命令:chown
功能描述:改变文件或目录的全部者
命令英文原意:change file ownership
命令所在路径:/bin/chown
执行权限:全部用户
语法:chown [用户] [文件或目录]
范例: $ chown nobody file1
改变文件file1的全部者为nobody
权限管理命令:chgrp
功能描述:改变文件或目录的所属组
命令英文原意:change file group ownership
命令所在路径:/bin/chgrp
执行权限:全部用户
语法:chgrp [用户组] [文件或目录]
范例: $ chgrp adm file1
改变文件file1的所属组为adm
权限管理命令:umask
功能描述:显示、设置文件的缺省权限
命令所在路径:/bin/umask
执行权限:全部用户
语法: umask [-S]
-S 以rwx形式显示新建文件或目录缺省权限
范例: $ umask
$ umask -S
文件搜索命令:which
功能描述:显示系统命令所在目录
命令所在路径:/usr/bin/which
执行权限:全部用户
语法:which [命令名称]
范例:$ which ls
文件搜索命令:find
功能描述:查找文件或目录
命令所在路径:/usr/bin/find
执行权限:全部用户
语法:find [搜索路径] [搜寻关键字]
范例: $ find /etc -name init
在目录/etc中查找文件init
$ find / -size +204800
在根目录下查找大于100MB的文件
$ find / -user sam
在根目录下查找全部者为sam的文件
$ find /etc -ctime -1
在/etc下查找24小时内被修改过属性的文件和目录
$ find /etc -size +163840 -a -size -204800
在/etc下查找大于80MB小于100MB的文件
$ find /etc -name inittab -exec ls -l {} \;
在/etc下查找inittab文件并显示其详细信息
文件搜索指令:locate
功能描述:寻找文件或目录
指令英文原义:list files in databases
指令所在路径:/usr/bin/locate
执行权限:All User
语法:locate [搜索关键字]
范例: $ locate file
列出全部跟file相关的文件
文件搜索指令:updatedb
功能描述:创建整个系统目录文件的数据库
指令英文原义:update the slocate database
指令所在路径:/usr/bin/updatedb
执行权限:root
语法:updatedb
范例:# updatedb
文件搜索命令:grep
功能描述:在文件中搜寻字串匹配的行并输出
命令所在路径:/bin/grep
执行权限:全部用户
语法:grep [指定字串] [源文件]
范例:# grep ftp /etc/services
$ grep text *.conf
←搜索当前目录中扩展名为.conf且包含“text”字符串得文件。
$ grep:amd.conf: ←拒毫不符权限得操做
$ grep:diskcheck.conf: ←拒毫不符权限得操做
$ grep:grub.conf ←拒毫不符权限得操做
$ grep –s text *.conf ←拒毫不符权限的操做之类的错误信息
帮助命令:man
功能描述:得到帮助信息
命令英文原意:manual
命令所在路径:/usr/bin/man
执行权限:全部用户
语法:man [命令或配置文件]
范例: $ man ls
查看ls命令的帮助信息
$ man services
查看配置文件services的帮助信息
帮助指令:info
功能描述:得到帮助信息
指令英文原义:information
指令所在路径:/usr/bin/info
执行权限:All User
语法:info [任何关键字]
范例: $ info ls
查看ls指令的帮助信息
帮助指令:whatis
功能描述:得到索引的简短说明信息
指令名称:whatis apropos makewhatis
指令英文原义:search the whatis database for strings
指令所在路径:/usr/bin/whatis apropos
/usr/sbin/makewhatis
执行权限:All User,All User,root
语法:whatis apropos [任何关键字]
范例: $ whatis ls
$ apropos fstab 至关于man -k
# makewhatis
创建whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是whatis database 没有创建
压缩解压命令:gzip
功能描述:压缩文件
命令所在路径:/bin/gzip
执行权限:全部用户
语法:gzip 选项[文件]
压缩后文件格式:.gz
压缩解压命令:gunzip
功能描述:解压缩.gz的压缩文件
命令所在路径:/bin/gunzip
执行权限:全部用户
语法:gunzip 选项[压缩文件]
范例:$ gunzip file1.gz
压缩解压命令:tar
功能描述:打包目录
命令所在路径:/bin/tar
执行权限:全部用户
语法:tar 选项[cvf] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
压缩后文件格式:.tar.gz
范例: $ tar -zcvf dir1.tar.gz dir1
将目录dir1压缩成一个打包并压缩的文件
tar命令解压缩语法:
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
范例:$ tar -zxvf dir1.tar.gz
压缩解压命令:zip
功能描述:压缩文件或目录
命令所在路径:/usr/bin/zip
执行权限:全部用户
语法: zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录
压缩后文件格式:.zip
范例: $ zip services.zip /etc/services
压缩文件
$ zip -r test.zip /test
压缩目录
压缩解压命令:unzip
功能描述:解压.zip的压缩文件
命令所在路径:/usr/bin/unzip
执行权限:全部用户
语法:unzip [压缩文件]
范例:$ unzip test.zip
压缩解压命令:bzip2
功能描述:解压缩
命令所在路径:/usr/bin/bzip2
执行权限:全部用户
语法: bzip2 选项[-k] [文件]
-k 产生压缩文件后保留原文件
功能描述:压缩文件
压缩后文件格式:.bz2
范例:$ bzip2 -k file1
命令所在路径:/usr/bin/bunzip2
执行权限:全部用户
语法:bunzip2 选项[-k] [压缩文件]
-k 解压缩后保留原文件
范例:$ bunzip2 -k file1.bz2
网络通讯指令:write
功能描述:向另一个用户发信息,以Ctrl+D做为结束
指令所在路径:/usr/bin/write
执行权限:All User
语法:write <用户名>
范例: $ write webmaster
网络通讯指令:wall
功能描述:向全部用户广播信息
指令所在路径:/usr/bin/wall
执行权限:All User
语法:wall [message] [文件名]
范例: $ wall Happy New Year!
网络通讯命令:ping
功能描述:测试网络连通性
命令所在路径:/usr/sbin/ping
执行权限:root
语法:ping 选项 IP地址
范例: # ping 192.168.1.1
网络通讯命令:ifconfig
功能描述:查看网络设置信息
命令所在路径:/usr/sbin/ifconfig
执行权限:root
语法:ifconfig 选项[-a] [网卡设备标识]
-a 显示全部网卡信息
范例:# ifconfig -a
系统关机命令:shutdown
功能描述:关机
命令所在路径:/usr/sbin/shutdown
执行权限:root
语法:shutdown
范例:# shutdown -h now
系统关机命令:reboot
功能描述:重启系统
命令所在路径:/usr/sbin/reboot
执行权限:root
语法:reboot
范例:# reboot
加载光盘命令:mount umount: 卸载光盘命令
功能描述:加载光盘及软盘
命令所在路径:/usr/sbin/reboot
注意: 若要容许通常用户也能加载光盘或软盘,请修改/ect/fstab/设置文件
/dev/cdrom/mut/cdrom udf,iso9660 noauto,owner,kudzu,ro,user
←若要让通常用户也加载光盘,请在此处加上“,user”项目。
范例: # mount /dev/cdrom /mut/cdrom ←加载光盘
# umount /mnt/cdrom ←光盘卸载
删除调度工做任务:crontab
范例: $ crontab –r ←删除任务调度中的工做
$ crontab -1 ←再查看一次任务调度中的工做
用户使用过的历史命令:history
一.用户组管理
1. 添加用户组
groupadd
2. 删除用户组
groupdel
3. 修改用户组
groupmod
4. 切换用户组
newgrp <groupname>
若是一个用户同时属于多个用户组,能够用 newgrp 命令切换至目的组,以便可以拥有该组的权限。
5. 查看全部组
全部组其实就是 /etc/group 文件的内容作一些过滤。
cat /etc/group | awk -F: '{print $1}'
6. 查看用户所在组
groups <username>
二.用户管理
1. 添加用户
useradd <username> -d <path> -m -g –G –p
经常使用的就是上面几个参数,意思分别为:
-d :指定用户主目录。若是此目录不存在,同时使用 -m 就会建立此目录。
-m :建立用户主目录
-g :用户所属组 ID
-G :用户所属组名
-p :登陆密码。注意这个登陆密码不是明文,是指加密后的密码。
useradd testuser –m –G mygroup
将会建立一个 testuser 的用户,并自动建立 /home/testuser 的用户主目录,并将用户添加至 mygroup 组中。
2. 删除用户
userdel –f –r <username>
-r :删除用户主目录以及邮箱中的邮件
-f :强行删除文件,即便属主不是该用户
3. 修改用户
usermod <username> -d <path> -m -g –G –p
参数意思与 useradd 大体相同
4. 用户密码
passwd <username> :修改密码
passwd –d <username> :命令将用户的密码删除,即下次登陆无须密码。
passwd –l <username> :锁定用户,使其没法登陆
三.文件属主管理
1. 更改属主
chown –R <username>.<groupname> file
-R :表示递归更改
chown –R testuser.newgroup testpath
上面的命令将 testpath 路径下的全部文件的拥有者都改成 testuser ,拥有组都改成 newgroup 。
2. 设置文件掩码
umask [a1 a2 a3 ]
用户可使用 umask 命令设置文件默认的生成掩码。默认的生成掩码告诉系统建立一个文件或目录不该该赋予哪些权限。若是用户将 umask 命令放在环境文件 .bash_profile 中,就能够控制全部新建的文件和目录的访问权限。
a1 表示的是不容许属主的权限, a2 表示的是不容许同组人的权限, a3 表明不容许其余人的权限。
umask 022 : 表示设置不容许同组用户和其余用户有写的权限。
umask : 显示当前的默认生成掩码。
CentOS最基本的20个经常使用命令
1. man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就能够查看ls相关的用法
注:按q键或者ctrl+c退出,在linux下可使用ctrl+c终止当前程序运行。
2. ls 查看目录或者文件的属*,列举出任一目录下面的文件
eg: ls /usr/man
ls -l
a.d表示目录(directory),若是是一个"-"表示是文件,若是是l则表示是一个链接文件(link)
b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。
3. cp 拷贝文件
eg: cp filename1 filename2 //把filename1拷贝成filename2
cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c
4. rm 删除文件和目录
eg: rm 1.c //将1.c这个文件删除
5. mv 移走目录或者改文件名
eg: mv filename1 filename2 //将filename1 更名为filename2
mv qib.tgz ../qib.tgz //移到上一级目录
6. cd 改变当前目录 pwd 查看当前所在目录完整路径
eg: pwd //查看当前所在目录路径
cd netseek //进入netseek这个目录
cd //退出当前目录
7. cat,more命令
将某个文件的内容显示出来。两个命令所不一样的是:cat把文件内容一直打印出来,而 more则分屏显示
eg; cat>1.c //就能够把代码粘帖到1.c文件里,按ctrl+d 保存代码。
cat 1.c 或more 1.c //均可以查看里面的内容。
gcc -o 1 1.c //将1.c编译成.exe文件,咱们能够用此命编译出代码。
8.chmod 命令 权限修改 用法:chmod 一位8进制数 filename。
eg: chmod u+x filenmame //只想给本身运行,别人只能读
//u表示文件主人, g 表示文件文件所在组。 o 表示其余人 ;r 表可读,w 表可写,x 表能够运行
chmod g+x filename //同组的人来执行
9. clear,date命令
clear:清屏,至关与DOS下的cls;date:显示当前时间。
10. mount 加载一个硬件设备
用法:mount [参数] 要加载的设备 载入点
eg: mount /dev/cdrom
cd /mnt/cdrom //进入光盘目录
11. su 在不退出登录的状况下,切换到另一我的的身份
用法: su -l 用户名(若是用户名缺省,则切换到root状态)
eg:su -l netseek (切换到netseek这个用户,将提示输入密码)
12.whoami,whereis,which,id
//whoami:确认本身身份
//whereis:查询命令所在目录以及帮助文档所在目录
//which:查询该命令所在目录(相似whereis)
//id:打印出本身的UID以及GID。(UID:用户身份惟一标识。GID:用户组身份惟一标识。每个用户只能有一个惟一的UID和 GID)
eg: whoami //显示你自已登录的用户名
whereis bin 显示bin所在的目录,将显示为:/usr/local/bin
which bin
13. grep,find
grep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索
eg: grep success * /*查找当前目录下面全部文件里面含有success字符的文件
14. kill 能够杀死某个正在进行或者已是dest状态的进程
eg; ps ax
15. passwd 能够设置口令
16. history 用户用过的命令
17. !! 执行最近一次的命令
18. mkdir命令
eg: mkdir netseek //建立netseek这个目录
19. tar 解压命令
eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个目录里
14解压小全
tar -I或者bunzip2命令均可以解压.bz2文件
tar xvfj example.tar.bz2
tar xvfz example.tar.gz
tar xvfz example.tgz
tar xvf example.tar
unzip example.zip
15 如何配置让哪些服务启动(天外闲云,q1208c)
方法1 运行ntsysv或者setup命令,进入菜单进行配置
方法2 chkconfig --list 显示服务
chkconfig name on/off 打开/关闭“name”服务
16查看文件夹大小
du -sh uploadfile
17查看磁盘使用状况
df -hl
12.删除目录下全部文件包括子目录(bjchenxu)
rm -rf 目录名
13查看系统信息(bjchenxu)
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 全部设备的全部分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 全部Swap分区的信息
cat /proc/version - Linux的版本号 至关于 uname -r
uname -a - 看系统内核等信息
=================
15 如何配置让哪些服务启动
方法1 运行ntsysv或者setup命令,进入菜单进行配置
方法2 chkconfig --list 显示服务
chkconfig name on/off 打开/关闭“name”服务
16查看文件夹大小
du -sh uploadfile
17查看磁盘使用状况
df -hl
系统
# uname -a # 查看内核/操做系统/CPU信息 # head -n 1 /etc/issue # 查看操做系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出全部PCI设备 # lsusb -tv # 列出全部USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用状况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看全部分区 # swapon -s # 查看全部交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测情况
网络
# ifconfig # 查看全部网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看全部监听端口 # netstat -antp # 查看全部已经创建的链接 # netstat -s # 查看网络统计信息
进程
# ps -ef # 查看全部进程 # top # 实时显示进程状态
用户
# w # 查看活动用户 # id <用户名> # 查看指定用户信息 # last # 查看用户登陆日志 # cut -d: -f1 /etc/passwd # 查看系统全部用户 # cut -d: -f1 /etc/group # 查看系统全部组 # crontab -l # 查看当前用户的计划任务
服务
# chkconfig --list # 列出全部系统服务 # chkconfig --list | grep on # 列出全部启动的系统服务
程序
# rpm -qa # 查看全部安装的软件包
内部命令和外部命令
内部命令在系统启动时就调入内存,是常驻内存的,因此执行效率高。
type能够用来判断一个命令是否为内置命令
type: usage: type [-afptP] name [name ...]
[root@linuxeye ~]# type type type is a shell builtin [root@linuxeye ~]# type -p type [root@linuxeye ~]# type -t type builtin [root@linuxeye ~]# type type type is a shell builtin [root@linuxeye ~]# type -t type builtin [root@linuxeye ~]# type pwd pwd is a shell builtin [root@linuxeye ~]# type whiptail whiptail is /usr/bin/whiptail [root@linuxeye ~]# type -t whiptail file
enable既能够查看内部命令,同时也能够判断是否为内部命令
[root@linuxeye ~]# enable -a #查看内部命令 [root@linuxeye ~]# enable whiptail #非内部命令 -bash: enable: whiptail: not a shell builtin [root@linuxeye ~]# enable pwd #是内部命令
内部命令用户输入时系统调用的速率快,不是内置命令,系统将会读取环境变量文件.bash_profile、/etc/profile去找PATH路径。
而后在提一下命令的调用,有些历史命令使用事后,会存在在hash表中,当你再次输入该命令它的调用会是这样一个过程。
hash——>内置命令——>PATH 命令的调用其实应该是这样一个过程。
[root@linuxeye ~]# type pwd pwd is a shell builtin [root@linuxeye ~]# type cat cat is /usr/bin/cat [root@linuxeye ~]# pwd /root [root@linuxeye ~]# ls linuxeye* linuxeye.pem linuxeye.txt [root@linuxeye ~]# cat linuxeye.txt linuxeye [root@linuxeye ~]# hash -l #显示hash表 builtin hash -p /usr/bin/cat cat builtin hash -p /usr/bin/ls ls [root@linuxeye ~]# type cat cat is hashed (/usr/bin/cat) [root@linuxeye ~]# hash -r #清除hash表 [root@linuxeye ~]# type cat cat is /usr/bin/cat
从上面操做能够看出。hash表不存放系统内置命令。
linux查看设备命令
系统
# uname -a # 查看内核/操做系统/CPU信息 # head -n 1 /etc/issue # 查看操做系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出全部PCI设备 # lsusb -tv # 列出全部USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用状况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看全部分区 # swapon -s # 查看全部交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测情况
网络
# ifconfig # 查看全部网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看全部监听端口 # netstat -antp # 查看全部已经创建的链接 # netstat -s # 查看网络统计信息
进程
# ps -ef # 查看全部进程 # top # 实时显示进程状态
用户
# w # 查看活动用户 # id <用户名> # 查看指定用户信息 # last # 查看用户登陆日志 # cut -d: -f1 /etc/passwd # 查看系统全部用户 # cut -d: -f1 /etc/group # 查看系统全部组 # crontab -l # 查看当前用户的计划任务
服务
# chkconfig --list # 列出全部系统服务 # chkconfig --list | grep on # 列出全部启动的系统服务
程序
# rpm -qa # 查看全部安装的软件包
经常使用命令整理以下:
查看主板的序列号: dmidecode | grep -i ’serial number’
用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
查看CPU信息:cat /proc/cpuinfo [dmesg | grep -i 'cpu'][dmidecode -t processor]
查看内存信息:cat /proc/meminfo [free -m][vmstat]
查看板卡信息:cat /proc/pci
查看显卡/声卡信息:lspci |grep -i ‘VGA’[dmesg | grep -i 'VGA']
查看网卡信息:dmesg | grep -i ‘eth’[cat /etc/sysconfig/hwconf | grep -i eth][lspci | grep -i 'eth']
<!--more-->
查看PCI信息:lspci (相比cat /proc/pci更直观)
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用状况:fdisk & disk – l & df
查看各设备的中断请求(IRQ):cat /proc/interrupts
查看系统体系结构:uname -a
查看及启动系统的32位或64位内核模式:isalist –v [isainfo –v][isainfo –b]
dmidecode查看硬件信息,包括bios、cpu、内存等信息
测定当前的显示器刷新频率:/usr/sbin/ffbconfig –rev \?
查看系统配置:/usr/platform/sun4u/sbin/prtdiag –v
查看当前系统中已经应用的补丁:showrev –p
显示当前的运行级别:who –rH
查看当前的bind版本信息:nslookup –class=chaos –q=txt version.bind
dmesg | more 查看硬件信息
lspci 显示外设信息, 如usb,网卡等信息
lsnod 查看已加载的驱动
lshw
psrinfo -v 查看当前处理器的类型和速度(主频)
prtconf -v 打印当前的OBP版本号
iostat –E 查看硬盘物理信息(vendor, RPM, Capacity)
prtvtoc /dev/rdsk/c0t0d0s 查看磁盘的几何参数和分区信息
df –F ufs –o i 显示已经使用和未使用的i-node数目
isalist –v
对于“/proc”中文件可以使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo 主机CPU信息
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Meninfo 主机内存信息
Version Linux内存版本信息
备注: proc – process information pseudo-filesystem 进程信息假装文件系统
RPM
在Linux 操做系统中,有一个系统软件包,它的功能相似于Windows里面的“添加/删除程序”,可是功能又比“添加/删除程序”强不少,它就是 Red Hat Package Manager(简称RPM)。此工具包最早是由Red Hat公司推出的,后来被其余Linux开发商所借用。因为它为Linux使用者省去了不少时间,因此被普遍应用于在Linux下安装、删除软件。下面就 给你们介绍一下它的具体使用方法。
1.咱们获得一个新软件,在安装以前,通常都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,咱们能够用这条命令查看:
rpm -qpi Linux-1.4-6.i368.rpm
系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、建立时间、编译日期等信息。
2.上面列出的全部文件在安装时不必定所有安装,就像Windows下程序的安装方式分为典型、彻底、自定义同样,Linux也会让你选择安装方式,此时咱们能够用下面这条命令查看软件包将会在系统里安装哪些部分,以方便咱们的选择:
rpm -qpl Linux-1.4-6.i368.rpm
3. 选择安装方式后,开始安装。咱们能够用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。在安装过程当中,若系统提示此软件已安装过或因其余缘由没法继续安装,但若咱们确实想执行安装命 令,能够在 -ivh后加一参数“-replacepkgs”:
rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm
4.有时咱们卸载某个安装过的软件,只需执行rpm-e <文件名>;命令便可。
5.对低版本软件进行升级是提升其功能的好办法,这样能够省去咱们卸载后再安装新软件的麻烦,要升级某个软件,只须执行以下命令:rpm -uvh <文件名>;,注意:此时的文件名必须是要升级软件的升级补丁
6. 另一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:经过FTP站点直接在线安装软件。当找到含有你所需软件的站点并 与此网站链接后,执行下面的命令便可实如今线安装,譬如在线安装Linux-1.4-6.i368.rpm,能够用命令:
rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm
7. 在咱们使用电脑过程当中,不免会有误操做,若咱们误删了几个文件而影响了系统的性能时,怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的 功能,执行此命令:rpm -Va便可,Linux将为你列出全部损坏的文件。你能够经过Linux的安装光盘进行修复。
8.Linux系统中文件繁多,在使用过程当中,不免会碰到咱们不认识的文件,在Windows下咱们能够用“开始/查找”菜单快速判断某个文件属于哪一个文件夹,在Linux中,下面这条命令行能够帮助咱们快速断定某个文件属于哪一个软件包:
rpm -qf <文件名>;
9.当每一个软件包安装在Linux系统后,安装文件都会到RPM数据库中“报到”,因此,咱们要查询某个已安装软件的属性时,只需到此数据库中查找便可。注意:此时的查询命令不一样于1和8介绍的查询,这种方法只适用于已安装过的软件包!命令格式:
rpm -参数 <文件名>;
APT-GET
apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences以后运行该命令。此外您须要按期运行这一命令以确保您的软件包列表是最新的。
apt-get install packagename——安装一个新软件包(参见下文的aptitude)
apt-get remove packagename——卸载一个已安装的软件包(保留配置文件)
apt-get --purge remove packagename——卸载一个已安装的软件包(删除配置文件)
dpkg --force-all --purge packagename 有些软件很难卸载,并且还阻止了别的软件的应用,就能够用这个,不过有点冒险。
apt-get autoclean apt会把已装或已卸的软件都备份在硬盘上,因此若是须要空间的话,可让这个命令来删除你已经删掉的软件
apt-get clean 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
apt-get upgrade——更新全部已安装的软件包
apt-get dist-upgrade——将系统升级到新版本
apt-cache search string——在软件包列表中搜索字符串
dpkg -l package-name-pattern——列出全部与模式相匹配的软件包。若是您不知道软件包的全名,您可使用“*package-name-pattern*”。
aptitude——详细查看已安装或可用的软件包。与apt-get相似,aptitude能够经过命令行方式调用,但仅限于某些命令——最多见的有安装和卸载命令。因为aptitude比apt-get了解更多信息,能够说它更适合用来进行安装和卸载。
apt-cache showpkg pkgs——显示软件包信息。
apt-cache dumpavail——打印可用软件包列表。
apt-cache show pkgs——显示软件包记录,相似于dpkg –print-avail。
apt-cache pkgnames——打印软件包列表中全部软件包的名称。
dpkg -S file——这个文件属于哪一个已安装软件包。
dpkg -L package——列出软件包中的全部文件。
apt-file search filename——查找包含特定文件的软件包(不必定是已安装的),这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须 先使用apt-get install来安装它,而后运行apt-file update。若是apt-file search filename输出的内容太多,您能够尝试使用apt-file search filename | grep -w filename(只显示指定字符串做为完整的单词出如今其中的那些文件名)或者相似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,若是您要查找的是某个特定的执行文件的话,这样作是有帮助的)。
ubuntu查看版本命令
方法一:
在终端中执行下列指令: cat /etc/issue
方法二:
使用 lsb_release 命令也能够查看 Ubuntu 的版本号,与方法一相比,内容更为详细。
执行指令以下: sudo lsb_release -a
方法三:
打开“系统监视器”,选择“系统”
Ubuntu查看版本命令
1. lshw
lshw命令显示详细硬件信息。
若是要用概要方式显示,能够加上short参数:lshw-short
要显示指定硬件信息,加上class(或C)参数:lshw -classmemory
2. sysstat
监测系统性能及效率的一组工具,这些工具对于咱们收集系统性能数据,
好比CPU使用率、硬盘和网络吞吐数据。
3. lspci -v (相比cat/proc/pci更直观)
查看PCI信息,lspci 是读取 hwdata 数据库。
4. uname -a
查看系统体系结构。
5. dmidecode
查看硬件信息,包括bios、cpu、内存等信息
6. dmesg
显示内核缓冲区系统控制信息,如系统启动时的信息会写到/var/log/。
注:dmesg 工具并非专门用来查看硬件芯片组标识的工具,
但经过这个工具能让咱们知道机器中的硬件的一些参数;由于系统在启动的时候,
会写一些硬件相关的日志到 /var/log/message* 或/var/log/boot* 文件中。
7. lshal 和hal-device-manager
8. 查看 /proc
对于“/proc”中文件可以使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo 主机CPU信息
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Meninfo 主机内存信息
Version Linux内存版本信息
查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查看内存信息:cat/proc/meminfo 查看USB设备:cat /proc/bus/usb/devices 查看键盘和鼠标:cat/proc/bus/input/devices 查看各设备的中断请求(IRQ):cat/proc/interrupts
主板信息:
sudo demidecode | grep -i ‘serial number’
CPU信息:
cat /proc/cpuinfo
dmesg | grep -i ‘cpu’
sudo dmidecode -t processor
硬盘信息:
查看分区状况:
sudo fdisk -l
查看大小状况:
df -h
查看使用状况:
du -h
sudo hdparm -I /dev/sda
dmesg | grep sda
内存信息:
cat /proc/meminfo
dmesg | grep mem
free -m
vmstat
sudo dmidecode | grep -i mem
网卡信息:
dmesg | grep -i ‘eth’
lspci | grep -i ‘eth’
ethtool -i eht0
ethhool -k eth0
ethtool -g eth0
查看鼠标和键盘:
cat /proc/bus/input/devices
查看各设备的中断请求(IRQ):
cat /proc/interrupts
显卡信息:
lspci | grep -i ‘VGA’
dmesg | grep -i ‘VGA’
声卡信息:
查看声卡型号:
lspci | grep -i audio
查看型号ac97的声卡驱动模块:
modprobe -l | grep ac97
查看声卡信息:
cat /proc/asound/cards
查看alsa-utils本:
alsactl -v
查看内核alsa版本:
cat /proc/asound/version
声卡信息:
aplay -l
硬件信息之声卡:
sudo lshw -C sound
模块状态之声音:
lsmod | grep -i snd
alsa音频配置:
alsamixer
其余命令:
dmesg
lspci
mpstat(先安装sysstat: sudo spt-get install sysstat)
[ -a FILE ] 若是 FILE 存在则为真。
[ -b FILE ] 若是 FILE 存在且是一个块特殊文件则为真。
[ -c FILE ] 若是 FILE 存在且是一个字特殊文件则为真。
[ -d FILE ] 若是 FILE 存在且是一个目录则为真。
[ -e FILE ] 若是 FILE 存在则为真。
[ -f FILE ] 若是 FILE 存在且是一个普通文件则为真。
[ -g FILE ] 若是 FILE 存在且已经设置了SGID则为真。
[ -h FILE ] 若是 FILE 存在且是一个符号链接则为真。
[ -k FILE ] 若是 FILE 存在且已经设置了粘制位则为真。
[ -p FILE ] 若是 FILE 存在且是一个名字管道(F若是O)则为真。
[ -r FILE ] 若是 FILE 存在且是可读的则为真。
[ -s FILE ] 若是 FILE 存在且大小不为0则为真。
[ -t FD ] 若是文件描述符 FD 打开且指向一个终端则为真。
[ -u FILE ] 若是 FILE 存在且设置了SUID (set user ID)则为真。
[ -w FILE ] 若是 FILE 若是 FILE 存在且是可写的则为真。
[ -x FILE ] 若是 FILE 存在且是可执行的则为真。
[ -O FILE ] 若是 FILE 存在且属有效用户ID则为真。
[ -G FILE ] 若是 FILE 存在且属有效用户组则为真。
[ -L FILE ] 若是 FILE 存在且是一个符号链接则为真。
[ -N FILE ] 若是 FILE 存在 and has been mod若是ied since it was last read则为真。
[ -S FILE ] 若是 FILE 存在且是一个套接字则为真。
[ FILE1 -nt FILE2 ] 若是 FILE1 has been changed more recently than FILE2, or 若是 FILE1 exists and FILE2 does not则为真。
[ FILE1 -ot FILE2 ] 若是 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
[ FILE1 -ef FILE2 ] 若是 FILE1 和 FILE2 指向相同的设备和节点号则为真。
[ -o OPTIONNAME ] 若是 shell选项 “OPTIONNAME” 开启则为真。
[ -z STRING ] “STRING” 的长度为零则为真。
[ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。
[ STRING1 == STRING2 ] 若是2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。
[ STRING1 != STRING2 ] 若是字符串不相等则为真。
[ STRING1 < STRING2 ] 若是 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。
[ STRING1 > STRING2 ] 若是 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.