8、linux常用命令
8.1、pwd:
显示当前的路径;
-L:显示逻辑路径,即快捷方式的路径(默认的参数);
-P :显示物理路径,真实的路径;
8.2、man:
命令的查看;
8.3、help:
命令的查看;
8.4、which:
命令的查看;
8.5、makdir:
创建目录(如果不存在则创建,如果目录存在则不予创建目录);
-v:显示详细信息;
-p:创建多个目录;递归创建目录;
mkdir -v /data :在根目录下创建data目录;
8.5、ls:
列表;
-h:文件的大小;
-l(long)长格式,文件的详细信息;-d 查看目标目录的属性;
-a:查看所有文件,包括隐藏的文件和文件夹(隐藏的文件都是以“.“开始的)
-p:只给目录加'/';
-F:给不同的问件加不同的标记;
-r:倒序;
-t:按修改时间排序;
-i:inod节点(文件索引点)a;
ls /:列出根目录下的目录和文件;
ls -l |grep '^d':查看所有目录,^d以d为开头的;
ls -lrt /etc :当前创建的文件会放在最下面;
8.6、cd:
改变目录;
相对路径:不从 / (根)开始的路径;
绝对路径:从 / (根)开始的路径;
.:代表当前的目录;
. . :代表上一级目录;
返回上一级目录,直到返回到根目录;
~:代表当前用户的家目录;
-:用户上次所在的目录;
8.7、vi:
编辑器(记事本) ,简单的文件编辑;vim复杂的文件编辑;
退出:退出‘q’,强制退出q!;
8.8、touch:
如果文件不存在就建立新文件,如果文件存在就改变文件的访问时间的时间戳信息;
一次创建多个文件:
touch a{1..100}.txt:创建a1.txt-a100.txt;
8.9、echo:
打印, 插入数据;
-n:不换行输出;
-e:可以使用转义字符(\n回车,\t tab键);
echo hellow:打印’hello‘;
8.9.1、插入数据:
>:输出重定向,如果文件存在会清空文件的数据,如果不存在会新创建一个文件并加入内容;
>>:输出追加重定向,如果文件存在会在原文的数据内添加数据,如果不存在会新创建一个文件并加入内容,(如果文件存在,>a.txt就会清空该文件);
echo 'lc'>>a.txt:如果a.txt文件存在,在a.txt的末尾追加‘lc’,如果不存在,新建a.txt并加入内容'lc';
echo 'a'>a.txt:如果a.txt文件存在,在a.txt文件中重新写入内容‘a',如果不存在,新建a.txt并加入内容'a';
多行写入:
8.10、cat:
查看文件的内容, 添加数据;
-n:显示行号;
-e:每一行后面加$;
-s:压缩空格(连续的空格只留一个空格);
-T:区分空格和tab键;
区分tab键和空格:
[root@centos6 tmp]# sed -n l a.txt
a$
b\tc$
d$
8.10.1、查看文件的内容:
cat vi /etc/sysconfig/network-scripts/ifcfg-eth0:查看eth0网卡的配置文件内容 ;
[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1
HWADDR=00:0C:29:9a:bb:bf
TYPE=Ethernet
UUID=97da7c58-e6d8-44af-853d-5eaf9cb5215b
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.2.1
GATEWAY=192.168.2.253
[root@centos6 ~]# cat /etc/resolv.conf#查看dns配置;
nameserver 114.114.114.114
nameserver 8.8.8.8
8.10.2、添加数据:
cat >a.txt:如果a.txt存在,从新写入,如果不存在创建并写入内容,按Ctrl+D:保存并退出;
多行追加:如果文件存在会追加,如果不存在会会重新创建并写入内容;
8.11、cp:
拷贝文件或目录 (如果目的目录中不存在则复制,如果有重复的默认会提示是否要覆盖);
-v:显示详细信息;
-r:递归拷贝(文件夹);
-d:复制链接文件;
-a=pdr:保留文件所有的属性(常用);
-p :连同文件的属性一起拷贝(文件的所属的用户,权限等);
-/:如果有重复,强制移动,不提示;
、
复制前需要进行备份:
8.12、mv:
移动文件或目录(如果目的目录中不存在则移动,如果有重复默认会提示是否覆盖);
-v:显示详细信息;
-f:如果有重复,强制移动,不提示(也可以在命令开头加 /);
重命名(如果被命名的文件不重名在则重命名,如果被命名的文件存默认会提示是否覆盖(可以用‘f’忽略)):
多个文件或目录的移动:
8.13、rm:
删除目录和文件(默认会提示是否要删除),删除前需要进行备份文件操作;
不要轻易删除linux中的文件 可以把要删除的文件移到/tmp目录下,一周之内会清掉,但是最好到目的目录后使用find命令进行删除;
-v:显示详细信息;
-r:递归删除(文件夹);
-f:强制删除,不提示;
删除多个目录:
rmdir:删除空目录;
8.14、find:
查找文件或目录;
-type:指定文件类型 f 文件 d 目录;
-name:按照文件的名称查找文件;
-mtime:按照文件的修改时间查找文件 +n -n n;
!:取反;
-size:文件的大小 +n -n n;
!:取反向数据:
-o:or 或者;
-a:and 交集:
利用find命令移动文件:
使用find命令进行精确的删除:
(局限删除)
find -type f -name 'a.txt' | xargs rm -vf (局限删除);
rm -vf `find -type f -name 'a.txt'`(万能的方法);
-mtime:按修改的时间进行查找 +7代表,7天以前;7代表第7天;-7代表最近7天;
-size : +1M 大于一兆 ,-1M 小于1M;
-atime:访问时间;
-ctim:改变的时间,属性的改变;
使用find命令移动文件:
find -type f -name 'a.txt' -exec mv -v {} /tmp/ \; #'{}'代表查找的文件 '\;'代表转义;
mv -v ·find -type f --name 'a.txt'· /tmp;
find -type f -name 'a.txt' |xargs -i mv -v {} /tmp
8.15、tail:
查看文件后面几行的数据(默认是前10行);
-c:显示一个文件后面几个的字符;
-f:显示尺寸更新的内容;
tailf=tail -F;
8.16、head:
读取一个文件内容的前几行(默认是前10行);
-c:查看前五个字符;
8.17、grep:
过滤文件中的内容;
-v是排除(不加代表过滤有当前字符的);
-i:不区分大小写;
8.18、tree:
查看目录的结构;
yum安装(-y:代表英文);
查看目录的结构(默认显示不隐藏的目录和文件)
-F:区分目录和文件
-a:显示隐藏和不隐藏的文件、文件夹
-d :只显示不隐藏的文件夹
-L:显示的层数
-fi:显示完整的路径
显示隐藏和不隐藏的目录只显示2层,显示完整的路径:
显示不隐藏的文件和文件夹(区分):
如果出现乱码:
8.19、alias:
别名操作(作用,给一些危险的命令加一些保护的参数,防止误操作,把很多复杂的字符串命令变成简单的命令;新加的别名临时有效,重启服务器重启后无效;);
8.20、unalias:
取消别名(删除默认的别名后,只是临时生效,重启服务器后默认的别名重新生效;):
添加删除的别名:
定义别名永久生效 :
/root/.bashrc 当前用户生效:
/etc/profile 全局生效,与当前用户生效类似;
8.21、seq:
序列输出;
从1开始,宽度为1,写入c.txt:
查看特定的行数:
8.22、sed:
流编辑器,实现对文件的增删改查替换;
打印20到30行数据:
-n 取消默认的输出,p 打印;
ifconfig|sed -n "2p"
替换操作:
-i:改变文件的内容,不加不改变文件的内容
(两边s g(删除替换),中间3给#,然后是要替换的内容)
批量替换:
类似的方法:
8.23、date:
时间操作(月/日/年 时:分:秒):
格式化输出时间:
时间域如下:
% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:1970,1996等)
注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。
8.24、history:
查看已经使用过得命令;
!+数字:执行已经运行的命令;
查看linux系统的位数 、内核、全部信息、版本:
查看文件的时间戳:
查看进程:
8.25、xargs:
从标准输入获取数据,并将数据转换成命令行的参数,不改变文件中的内容(文件必须存在),改变的是文件内容的格式,可用于管道;
<:输入重定向(即读取);
8.26、PS1:
(显示时间,临时) ;
8.27、linux运行级别:
cat /etc/inittab
linux不同的运行状态:
0关闭状态
1单用户状态
2多用户模式
3完整的多用户模式(默认的级别)
4保留的模式
5桌面
6重启
查看当前的运行级别: runlevel;
改变当前的状态: init 级别数字 (当前有效,重启无效;如果要长期有效需要改/etc/inittab文件,重启后生效);
8.28、关机:
init 0
shutdown -h now
shutdown -r now
halt
8.29、重启:
reboot
init 6
8.30、修改 本地域名解析 :
vi /etc/hosts (优先级高于dns域名序寻址);
8.31、linux开机程序自启动 :
/etc/rc.local(用于服务器档案);
8.32、显示颜色:
--color=auto
过滤的内容显示颜色(如果需要长期有效需要在.bashrc或profile中进行配置)
(如果不显示颜色在命令前加"\")
8.33、日志 :
/var/log/message:系统日志
tail -20 /var/log/secure:查看系统安全日志;
8.34、/proc下的重要路径知识:
查看linux内核版本 :
cat /proc/version
查看linux cpu属性 :
cat /proc/cpuinfo
查看linux内存属性 :
cat /proc/meinfo
查看挂载的磁盘 :
cat /proc/mount
查看负载 :
cat /proc/loadavg
8.35、压缩包的压缩和解压:
tar -czvf a.tar.gz a.txt:压缩
tar -tf a.tar.gz:查看压缩包中的内容
tar -xzvf a.tar.gz:解压缩
提示:如果有相同的压缩包名称存在不会提示,直接以文件的形式进行覆盖。
8.36、split :
按照指定的大小或行数切割完文件(横向切割,cut竖向切割)
分割文本后各分隔段还可以用,如果是视频等媒体文件则不能够查看
-l:指定切割的行数(默认文件结尾是两位字母)
-b:指定分割的大小(默认文件结尾是两位字母)
-d:以数字结尾(默认文件结尾是两位数字)
split -b 10MB -d /tmp/swap new_
split -l 10 -d /etc/inittab new_
-a:指定生成文件的后缀长度
split -l 10 -d -a 4 /etc/inittab new_
8.37、paste:
将两个文件合并成一个文件
[root@centos6 tmp]# echo "a"> a.txt
[root@centos6 tmp]# echo "b">b.txt
[root@centos6 tmp]# paste a.txt b.txt >c.txt(行对行)
[root@centos6 tmp]# cat c.txt
a b
-d:分割符
[root@centos6 tmp]# paste -d "=" a.txt b.txt >c.txt(行对行,中间加分隔符)
[root@centos6 tmp]# cat c.txt
a=b
-s;每个文件的内容都显示一横行
[root@centos6 tmp]# paste -s a.txt b.txt >c.txt
[root@centos6 tmp]# cat c.txt
a
b
[root@centos6 tmp]# cat d.txt
a
b
c
d
e
[root@centos6 tmp]# paste -s d.txt
a b c d e
[root@centos6 tmp]# paste -s -d "=\n" d.txt
a=b
c=d
e
8.38、less(可以使用vi编辑器的搜索命令)
-N:显示行号;
回车一次是向下一行;
空格一次是向下一屏;
设置分屏的行数是多少:
[root@centos6 tmp]# less -1 /var/log/messages
x400000000
按q退出;
8.39、more :
分屏显示;
回车一次向下一行;
空格是一次向下一屏;
设置分屏的行数是多少:
[root@centos6 tmp]#more -2 /var/log/messages
test.txt
text.pdf
按q退出;
按“=”号:查看当前的行号 ;
8.40、wc :
显示总行书;
-l :显示总的行数目;
查看进程服务是否启动:
[root@centos6 data]# netstat -lntup |grep sshd |wc -l(查看服务的端口号是否为启动状态)
2
[root@centos6 data]# ps -ef |grep sshd|grep -v "grep"| wc -l(查看服无的进程是否启动)
2
8.41、sort 排序:
默认是按照第一列升序(字母)排列的;
-r:降序;
-t:指定分割符,默认是按任意空格(\t \n \space)的;
-k:从第几列开始排序;
-n:按照数字进行排序;
-u(uniq:可以作为一个单独的命令):去除重复的部分;-c:显示重复的次数;
8.42、wc:
统计文件行数,单词数,字节数
-l:统计一个文件总的行数或者是目录中文件的总数;
[root@centos6 ~]# wc -l /etc/inittab
26 /etc/inittab
-w:统计一个文件总的单词数
[root@centos6 ~]# wc -w /etc/inittab
149 /etc/inittab
-m:统计一个文件总的字符数
[root@centos6 ~]# wc -m /etc/inittab
884 /etc/inittab
-L:统计一个文件中一行字符长度最长的字符数(包含空格)
[root@centos6 ~]# wc -L /etc/inittab
78 /etc/inittab
8.43、dos2unix:
把windows格式转换成linux下的格式
yum -y install dos2unix
windows系统下的换行符 \r\n;linux系统下面的换行符是\n
8.44、diff:
比较文件之间的不同
比较目录内的文件的不同
c:改变
a:增加
d:删除
[root@centos6 tmp]# cat a.txt
1
2
3
4
5
6
7
[root@centos6 tmp]# cat b.txt
1
2
3
a
b
c
d
[root@centos6 tmp]# diff a.txt b.txt
4,7c4,7:#第四行到第7行发生改变
< 4
< 5
< 6
< 7
---
> a
> b
> c
> d
8.44.1、vimdiff:
用可视化录的界面显示两个文件或目的不同,最多可以接4个文件
8.45、tr:
使用的是输入重定向,读取文件的内容在屏幕中输出;
[root@centos6 tmp]# cat a.txt
a
b
c
d
e
转换字符串的功能:
[root@centos6 tmp]# tr "abc" "ABC" <a.txt
A
B
C
d
e
密码转换功能:
[root@centos6 tmp]# echo 'liuc' | tr 'lciu' '1234'
1342
[root@centos6 tmp]# echo '1342' | tr '1234' 'lciu'
liuc
-d :删除功能,原文件的内容没有改变;
[root@centos6 tmp]# tr -d "b" <a.txt
a
c
d
e
tr "\t" "\n" <c.txt #加入制表符和换行;
8.46、rename:
重命名 ;
专业的重命名工具:rename from to file;
from:需要替换或需要处理的字符 文件的一部分,文件的扩展名;
to:把前面from代表的内容替换为to代表的内容,即重命名处理后的结果;
8.47、basename
把一个完整的文件路径前面的路径去掉,只保留最后一位:
8.48、md5sum:
计算和校验文件的md5值;
一个文件有唯一的md5值;
用于文件的校验,防止文件受损;
-c:用于检查md5文件的可靠性;
8.49、tee:
多重定向,把一个数据重定向到多个文件上
-a:追加(没有文件会新建文件)(不加该参数会覆盖以前的内容,如果文件不存在会新建)
ls -l / | tee -a /tmp/a.txt
8.50、dirname:
取出文件上所在的目录路径:
8.51、xargs:
以分组的格式进行输出;
8.51.1、显示行号:
echo stu{01..20}|xargs -n 1 >a.log
cat -n a.log
awk ‘ {print NR,$0}’
less -N a.log
nl a.log(空格不记录行号)
vim 模式:
取消显示行号 noun
8.52、chatter:
8.52.1、锁定文件后不能对文件进行,删,追加、清空,包括root用户在内;
lsattr:显示文件的扩展属性:
[root@centos6 tmp]# lsattr test.txt
-------------e- test.txt
加锁:
[root@centos6 tmp]# chattr +i test.txt
[root@centos6 tmp]# lsattr test.txt
----i--------e- test.txt
[root@centos6 tmp]# rm -rvf /tmp
rm: cannot remove `/tmp/test.txt': Operation not permitted
解锁:
[root@centos6 tmp]# chattr -i test.txt
[root@centos6 tmp]# echo 1 >>text.txt
8.52.2、只能追加文件的内容,删,清空文件不能操作,包括root用户在内:
加锁:
[root@centos6 tmp]# chattr +a test.txt
[root@centos6 tmp]# lsattr test.txt
-----a-------e- test.txt
[root@centos6 tmp]# echo 2 >test.txt
-bash: test.txt: Operation not permitted
[root@centos6 tmp]# echo 2 >>text.txt
[root@centos6 tmp]# rm -vf test.txt
rm: cannot remove `test.txt': Operation not permitted
解锁:
[root@centos6 tmp]# chattr -a test.txt
8.53、chown:
改变文件的属主和属组;
-R:递归;
chown 用户 文件或目录;
chown :组 文件或目录;
chown 用户:组 文件或目录;
chgrep :改变文件的属组;
chgrep 组名 文件或目录;
8.54、chmod:
chmod [option] mode file;
改变文件目录权限;
-R :递归;
r 4:读;
w 2:写;
x 1:执行;
u:用户,g:组,o:其它用户,a:所有用户;
8.55、查看一个软件包是否已经安装:
[root@centos6 ~]# rpm -qa postfix
postfix-2.6.6-8.el6.x86_64
8.56、tac :
文件的内容倒着输出,与cat(正向输出)命令相反;
[root@centos6 tmp]# cat text.txt
1
2
[root@centos6 tmp]# tac text.txt
2
1
8.57、cut:
纵向切割:
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
-b: 以字节为单位进行分割;
-c:以字符为单位进行切割;
-d:自定义分隔符(必须是单个字符),默认是制表符;
[root@centos6 tmp]# cat a.txt
1
1
2
34567890
[root@centos6 tmp]# cut -c 2-4 a.txt
456
8.58、lsof:
查看端口号被占用的进程
根据端口号查服务:lsof -i tcp:22
查看被删除的文件是否还有进程被占用:lsof | grep del
netstat -tunlp | grep 22 :可以根据服务查端口,也可以使用端口查服务
8.59、常用解压命令:
*.tar 用 tar –xf 解压
dd if=/dev/hdb | gzip > /root/image.gz
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.zip 用 unzip 解压
8.60、
[root@backup scripts]# echo {1..10} >a.txt
[root@backup scripts]# xargs -n 4 <a.txt
1 2 3 4
5 6 7 8
9 10
[root@backup scripts]# grep -o 3 a.txt
3