说明:本文是在工作中遇到一些命令的记录,不同命令参考自不同博文
查看linux系统版本信息
lsb_release -a
下载文件
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz
利用secureCRT在windows 和 linux 间互传文件
上传 rz
下载 sz
ldconfig命令
用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
统计当前文件夹下文件的个数
ls -l |grep "^-"|wc -l
统计当前文件夹下目录的个数
ls -l | grep "^d" | wc -l
统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
文件名按时间排序
ls -lrt
-r 逆序;-t 按修改时间排序(最新的在最前面)
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
在linux中运行命令行时,会输出一些日志信息,特别典型的是启用WebLogic命令时,输出一些信息,当启用demon模式运行时,又想收集这些信息咋办?
解决的办法就是使用输出重定向,如下面的命令:
nohup ./startWebLogic.sh > app.log 2>&1 &
其中app.log是保存输出的文件名称;
2>&1 表示不仅命令行正常的输出保存到app.log中,产生错误信息的输出也保存到app.log文件中;
& 表示该进程在后台运行;
nohup表示进程在当用户注销(logout)或者网络断开时不会被终止。
注意:这里若不指定输出日志文件,缺省地会输出到nohup.out文件中
*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne >/dev/null 2>&1
对于& 1 更准确的说应该是文件描述符 1,而1标识标准输出,stdout。
对于2 ,表示标准错误,stderr。
2>&1 的意思就是将标准错误重定向到标准输出。这里标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null
可以把/dev/null 可以看作"黑洞". 它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到.
偶尔也可以把 & 在命令的最后加上,表示让程序后台执行。
防火墙
service iptables status
查看端口被哪个进程占用
netstat -tunlp
linux服务器间传送文件
scp [file] [email protected]:/lib
>(覆盖)和>>(追加)都是重定向输出
1> 指标准信息输出路径(也就是默认的输出方式)
2> 指错误信息输出路径
2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)
rar解压
rar x aa.rar
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
rar a test.rar *.jpg //将所有.jpg的文件压缩成一个rar包
unzip file.zip //解压zip
fdisk -l
mount /dev/sdb8 /device
df -h
当找不到根目录时(磁盘满了)http://www.desipo.com/linuxxitongdfminglingxianshiyichanggenmulufenqudiushiwentijiejue-a-203.html
grep -v rootfs /proc/mounts > /etc/mtab
grep -v xxx是指不显示包含xxx的行或文件,-v表示取反的意思
NFS
文件所在的服务器:ip1 文件夹为/home/nfs_data (被挂载地址)
应用服务器:ip2 文件夹为/home/nfs_data (挂载到的地方)
安装:CentOS是自带NFS,所以无需安装,要安装的话用yum -y install nfs-utils rpcbind
启动NFS:默认已启动,如果没有启动,输入命令:service rpcbind start、service nfs start
1、在 ip1 设置共享目录,把该目录开放给 ip2,编辑/etc/exports,增加一行
/home/nfs_data/ ip2(rw,no_root_squash,no_all_squash,sync)
2、使配置生效,输入命令:exportfs -r
3、查看已共享的目录,命令:
本机:showmount -e
其他:showmount -e IP
4、在 ip2 挂载共享文件夹,输入命令:
mount -t nfs -o nfsvers=3 ip1:/home/nfs_data /home/nfs_data 为了都有读写权限,指定使用nfs3版本,而不指定的话,默认的是4
5、完成。ip2 的nfs_data已指向 ip1 的nfs_data
top命令
c: 显示完整的命令
d: 更改刷新频率
f: 增加或减少要显示的列(选中的会变成大写并加*号)
F: 选择排序的列
h: 显示帮助画面
H: 显示线程
i: 忽略闲置和僵死进程
k: 通过给予一个PID和一个signal来终止一个进程。(默认signal为15。在安全模式中此命令被屏蔽)
l: 显示平均负载以及启动时间(即显示影藏第一行)
m: 显示内存信息
M: 根据内存资源使用大小进行排序
N: 按PID由高到低排列
o: 改变列显示的顺序
O: 选择排序的列,与F完全相同
P: 根据CPU资源使用大小进行排序
q: 退出top命令
r: 修改进程的nice值(优先级)。优先级默认为10,正值使优先级降低,反之则提高的优先级
s: 设置刷新频率(默认单位为秒,如有小数则换算成ms)。默认值是5s,输入0值则系统将不断刷新
S: 累计模式(把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+ )
T: 根据进程使用CPU的累积时间排序
t: 显示进程和CPU状态信息(即显示影藏CPU行)
u: 指定用户进程
W: 将当前设置写入~/.toprc文件,下次启动自动调用toprc文件的设置
<: 向前翻页
>: 向后翻页
?: 显示帮助画面
1(数字1): 显示每个CPU的详细情况
移动前 10000 文件到指定目录
mv `ls |sed -n 1,10000p` [目标目录]
vi命令
查找:
/[要查找的内容]
n:向后查找下一个
N:向前查找上一个
向下翻页(下一页):Ctrl + f
向上翻页(上一页):Ctrl + b
跳到文本的第一行:gg
跳到文本的最后一行:G
跳到光标行最前:0
跳到光标行最后:$
编辑:
撤销操作:u
恢复操作:ctrl+r
dd:删除游标所在的一整行(常用)
ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
d1G:删除光标所在到第一行的所有数据
dG:删除光标所在到最后一行的所有数据
d$:删除光标所在处,到该行的最后一个字符
d0:那个是数字0,删除光标所在到该行的最前面的一个字符
x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键)
nx:n为数字,连续向后删除n个字符
find
1.按照文件名查找
find /etc -name '*srm*' #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
2.按照文件特征查找
find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -size -1000k #查找出小于1000KB的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
3.使用混合查找方式查找文件
参数有: !,-and(-a),-or(-o)。
find /tmp -size +10000c -and -mtime +2 #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
find / -user fred -or -user george #在/目录下查找用户是fred或者george的文件文件
find /tmp ! -user panda #在/tmp目录中查找所有不属于panda用户的文件
查找包含关键字的文件
find . -type f -name "*" |xargs grep 'abcdeabcde'
grep 'abcdeabcde' *
-exec、xargs 两者都是对符合条件的文件执行所给的Linux 命令
-exec:{}表示命令的参数即为所找到的文件,以;表示comman命令的结束。\是转义符,因为分号在命令中还有它用途,所以就用一个\来限定表示这是一个分号而不是表示其它意思。
xargs:要结合管道来完成。格式:find [option] express |xargs command
$find test/ -type f
test/myfile.name
test/files/role_file
test/files/install_file
$find test/ -type f |xargs echo
test/myfile.name test/files/role_file test/files/install_file
$find test/ -type f -exec echo {} \;
test/myfile.name
test/files/role_file
test/files/install_file
很明显,exec是对每个找到的文件执行一次命令,除非这单个的文件名超过了几k,否则不会出现命令行超长出报错的问题。
而xargs是把所有找到的文件名一股脑的转给命令。当文件很多时,这些文件名组合成的命令行参数很容易超长,导致命令出错。
相比之下,也不难看出各自的缺点
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好;
2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \; 作为命令的结束符,书写不便。
3、xargs 不能操作文件名有空格的文件;
综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,
那么使用 xargs比较方便; 否则,就要用 exec了。
less:与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2.单行导航
j - 向前移动一行
k - 向后移动一行
3.其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
crontab:定时任务
minute hour day month week command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。