Loading

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




posted @ 2020-02-15 20:14  云起时。  阅读(533)  评论(0编辑  收藏  举报