采用man cp 查看,这样遇到不会的命令都可以快速入门。
一、常用命令
(1)命令ls——列出文件
ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件
ls a* 列出当前目录下以字母a开头的所有文件
ls -l *.doc 给出当前目录下以.doc结尾的所有文件
(2)命令cp——复制文件
cp afile afile.bak 把文件复制为新文件afile.bak
cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下
cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目录下
cp -a docs docs.bak 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项
cp -i 在覆盖前询问用户
cp -v 告诉用户正在做什么
cp强制覆盖
使用 cp 命令时,源目录中文件复制到目标目录具有相同文件名称时,
(1)使用 -rf 参数强制覆盖复制
(2)系统仍然提示让你一个个的手工输入 y 确认复制,添加的rf参数不起作用。
方式一 使用原生的cp命令
/bin/cp -rf xxxx
方式二 取消cp命令别名
unalias cp
去掉 cp 命令的别名,这时你再用 cp -rf 复制文件时,就不会要求确认啦.
复制完成后恢复别名
alias cp='cp -i'
(3)命令mv——移动和重命名文件
mv aflie bfile 将afile重命名为bfile
mv afile /tmp 把当前目录下的afile移动到/tmp/目录下
(4)命令rm——删除文件和目录
rm afile 删除文件afile
rm * 删除当前目录下的所有文件(未隐藏文件)。rm命令不删除目录,除非也指定了-r(递归)参数。
rm -rf domed 删除domed目录以及它所包含的所有内容
rm -i a* 删除当前目录下所有以字母a开头的文件,并且在每次删除时,提示用户进行确认
(5)命令cd——更改目录
cd ~ 切换到主目录
cd /tmp 切换到目录/tmp
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下
(6)命令mkdir——建立目录
mkdir phots 在当前目录中建立名为photos的目录
mkdir -p this/that/theother 在当前目录下建立指定的嵌套子目录
(7)命令rmdir——删除目录
rmdir 将删除空目录
(8)命令more、less——查看文件内容
more /etc/passwd 查看/etc/passwd的内容
功能:分页显示命令
more file
more命令也可以通过管道符(|)与其他的命令一起使用,例如:
ps ux|more
ls|more
less /etc/passwd 查看/etc/passwd的内容
(9)命令grep——搜索文件内容
grep bible /etc/exports 在文件exports中查找包含bible的所有行
tail -100 /var/log/apache/access.log|grep 404 在WEB服务器日志文件access.log的后100行中查找包含“404”的行
tail -100 /var/log/apache/access.log|grep -v googlebot 在WEB服务器日志文件access.log的后100行中,查找没有被google访问的行
grep -v ^# /etc/apache2/httpd.conf 在主apache配置文件中,查找所有非注释行
(10)命令find——查找文件
find .-name *.rpm 在当前目录中查找rpm包
find .|grep page 在当前目录及其子目录中查找文件名包含page的文件
locate traceroute 在系统的任何地方查找文件名包含traceroute的文件
(11)命令vi——编辑文件
vi /etc/bubby.txt 用vi编辑文件/etc/bubby.txt
vim /etc/bubby.txt 用vi编辑文件/etc/bubby.txt
快捷操作:
切换窗口:alt+1,alt+2
全屏:alt+回车
将vim挂起(暂停):ctrl+z,暂停后可进行其他shell操作,完了之后可通过 fg 命令切换回vim界面继续编辑
:MR:查看历史文件记录(注意:MR大写)
:sp 横向切换界面窗口 :vsp 纵向切换界面窗口 方便多文件对照编码(如下图:)
emacs /etc/bubby.txt 用emacs编辑文件/etc/bubby.txt
(12)命令rz、sz——文件上传下载
运行命令Sudo rz,即是接收文件,xshell就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到linux里的当前目录 。
运行命令Sudo sz file 就是发文件到windows上(保存的目录是可以配置) 比ftp命令方便多了,而且服务器不用再开FTP服务了。
(13)命令cat——显示文件内容
cat file
(14)命令ps——查看进程
ps [options]
DESCRIPTION(描述):ps命令显示运行程序选项的一些信息。如果你想显示选项的一些重复信息,请使用top命令替代。
用标准语法查看系统上的每一个进程。
ps -e
ps -ef
ps -eF
ps -ely
(15)命令kill——杀掉进程
[root@linux ~]# kill -signal %jobnumber
[root@linux ~]# kill -l
参数:
-l :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?共有62个信号。
signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:
-1 :重新读取一次参数的设定档 (类似 reload);
-2 :代表与由键盘输入 [ctrl]-c 同样的动作;
-9 :立刻强制删除一个工作;
-15:以正常的程序方式终止一项工作。与 -9 是不一样的。
范例一:找出目前的 bash 环境下的背景工作,并将该工作删除。
[root@linux ~]# jobs
[1]+ Stopped vim bashrc
[root@linux ~]# kill -9 %1
[1]+ 已砍掉 vim bashrc
(16)命令stop、start——重启tomcat
./catalina.sh stop ./catalina.sh start
(17)命令top——查看cpu、内存
(18)命令pwd——查看当前路径
(19)命令tar——打包、解包rar
tar -cvf **.tar a.jsp b.java 将a和b打成**.rar
tar -xvf **.tar a.jsp b.java 将**.tar 解包
(20)命令tail——查看文件详细信息
tail -f aaa.txt 看aaa.txt文件的详细信息
tail -n x aaa.log x:最后几行
(21)命令head——查看文件的名字和后缀
head -n x aaa.log x:开始几行aaa.log:要查看的文件的名字和后缀
(22)命令diff——比较文件内容
diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
comm file1 file2 比较文件,显示两个文件不相同的内容
(23)命令ln——建立连接
ln source_path target_path 硬连接
ln -s source_path target_path 软连接
(24)命令touch——创建一个空文件
touch aaa.txt 创建一个空文件,文件名为aaa.txt
基本系统命令
(25)命令man——查看某个命令的帮助
man ls 显示ls命令的帮助内容
(26)命令w——显示登录用户的详细信息
Sarge:~# w
(27)命令who——显示登录用户
Sarge:~# who
(28)命令last——查看最近那些用户登录系统
Sarge:~# last
(29)命令date——系统日期设定
date -s “060520 06:00:00″ 设置系统时期为2006年5月20日6点整。
(30)命令clock——时钟设置
clock –r 对系统Bios中读取时间参数
clock –w 将系统时间(如由date设置的时间)写入Bios
(31)命令uname——查看系统版本
uname -R 显示操作系统内核的version
(32)命令reboot、shutdown——关闭和重新启动计算机
reboot 重新启动计算机
shutdown -r now 重新启动计算机,停止服务后重新启动计算机
shutdown -h now 关闭计算机,停止服务后再关闭系统
halt 关闭计算机
一般用shutdown -r now,在重启系统是,关闭相关服务,shutdown -h now也是如此。
(33) 命令su——切换用户
su - 切换到root用户
su – zhoulj 切换到zhoulj用户,
注意:- ,他很关键,使用-,将使用用户的环境变量
(34)命令free——查看内存和swap分区使用情况
Sarge:~# free -tm
(35)命令uptime——现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载
Sarge:~# uptime
(36) 命令vmstat——监视虚拟内存使用情况
# vmstat
(37)命令iostat——磁盘吞吐量
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
(38)命令clear—— 清屏
(39)重启tomcat
(40)变更使用者chown
变更文件或目录的拥有者或所属群组
chown -R -h owner file
- R(recursive)选项意味着对所有子目录下的文件也都进行同样的操作。
- h选项意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件
chown -R xh test1 (test1目录及子目录的所有文件属主变为xh)
二、进程
1、# 查看所有进程
# ps -ef
2、# 实时显示进程状态
# top
杀进程
1.查看要重启进程的进程号
Ps –ef|grep xxxx
2.杀掉该项目的进程
先杀第二列,再杀第一列
Sudo kill -9 x x
(x为进程号,同时杀多个中间以空格分割)
3.重启tomcat
首先找到tomcat的bin目录
Cd tomcat/bin;
然后运行 sudo ./run.sh即可启动tomcat。
根据进程名杀死进程
Shell脚本源码如下:
#!/bin/sh
#根据进程名杀死进程
if [ $# -lt 1 ]
then
echo "缺少参数:procedure_name"
exit 1
fi
PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
echo "Kill the $1 process [ $i ]"
kill -9 $i
done
上面代码可缩成一句:
ps -ef | grep procedure_name | grep -v grep | awk '{print $2}' | xargs kill -9
三、grep全面搜索正则表达式
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
grep match_pattern file_name
grep "match_pattern" file_name
使用正则表达式 -E 选项:
grep -E "[1-9]+" 或 egrep "[1-9]+"
grep "text" . -r -n
# .表示当前目录。
grep静默输出:
grep -q "test" filename
#不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。
四、系统
1、# 查看内核/操作系统/CPU信息
# uname -a
2、# 查看操作系统版本
# head -n 1 /etc/issue
3、# 查看CPU信息
# cat /proc/cpuinfo
4、# 查看计算机名
# hostname
5、# 列出所有PCI设备
# lspci -tv
6、# 列出所有USB设备
# lsusb -tv
7、# 列出加载的内核模块
# lsmod
8、# 查看环境变量
# env
一、linux CPU大小
cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"
说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。
其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为
二、内存大小
cat /proc/meminfo |grep MemTotal
三、硬盘大小
fdisk -l |grep Disk
四、
uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令
五、head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
六、cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
七、hostname # 查看计算机名的linux系统信息命令
八、lspci -tv # 列出所有PCI设备
九、lsusb -tv # 列出所有USB设备的linux系统信息命令
十、lsmod # 列出加载的内核模块
十一、env # 查看环境变量资源
十二、free -m # 查看内存使用量和交换区使用量
total used free shared buffers cached
Mem: 3706 3534 171 0 31 3258
-/+ buffers/cache: 244 3461
Swap: 3711 0 3711
[root@localhost /]#
十三、df -h # 查看各分区使用情况
五、资源
9、# 查看内存使用量和交换区使用量
# free -m
10、# 查看各分区使用情况
# df -h
11、# 查看指定目录的大小
# du -sh <目录名>
12、# 查看内存总量
# grep MemTotal /proc/meminfo
13、# 查看空闲内存量
# grep MemFree /proc/meminfo
14、# 查看系统运行时间、用户数、负载
# uptime
15、# 查看系统负载
# cat /proc/loadavg
六、磁盘和分区
1、# 查看挂接的分区状态
# mount | column -t
2、# 查看所有分区
# fdisk -l
3、# 查看所有交换分区
# swapon -s
4、# 查看磁盘参数(仅适用于IDE设备)
# hdparm -i /dev/hda
5、# 查看启动时IDE设备检测状况
# dmesg | grep IDE 七、网络
1、# 查看所有网络接口的属性
# ifconfig
2、# 查看防火墙设置
# iptables -L
3、# 查看路由表
# route -n
4、# 查看所有监听端口
# netstat -lntp
5、# 查看所有已经建立的连接
# netstat -antp
6、# 查看网络统计信息
# netstat -s 八、用户
1、# 查看活动用户
# w
2、# 查看指定用户信息
# id <用户名>
3、# 查看用户登录日志
# last
4、# 查看系统所有用户
# cut -d: -f1 /etc/passwd
5、# 查看系统所有组
# cut -d: -f1 /etc/group
6、# 查看当前用户的计划任务
# crontab -l 九、服务
1、# 列出所有系统服务
# chkconfig --list
2、# 列出所有启动的系统服务
# chkconfig --list | grep on 查看端口netstat –an
netstat -ano + tasklist /svcnetstat -ano 查找端口对应PID tasklist /svc 根据PID查找服务
netstat -tuln | grep 17002 查看端口情况
十、程序
1、# 查看所有安装的软件包
# rpm -qa
用find命令查找最近修改过的文件 Apache lsof -i:80
chkconfig --list 查看服务 apache重启命令:service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
解压:
tar -xzvf union.kuche.com_20120209.tar.gz复制
cp -a union.kuche.com union1.kuche.com删除
rm -rf union.kuche.com#启动VPN命令
执行命令:service openvpn start#修改工作目录
vi /etc/passwd#Maven 打包语句:mvn clean package –Dmaven.test.skip=true
#修改语言
vi /etc/sysconfig/i18n修改Linux语言 如:LANGUAGE="zh_EN"大写的改成小写的en esc,:wq source /etc/sysconfig/i18n#查找不知道目录的文件
find -name / "名字"
脚本延时
使用 sleep 或usleep函数。详细如下:
1、sleep : 默认为秒。
sleep 1s 表示延迟一秒
sleep 1m 表示延迟一分钟
sleep 1h 表示延迟一小时
sleep 1d 表示延迟一天
2、usleep : 默认以微秒。
1s = 1000ms = 1000000us