您的位置:首页 > 运维架构 > Linux

linux 常用命令

2017-07-07 11:20 99 查看
1改变档案拥有者 chown

chown bin install.log  将 install.log的拥有者改为bin这个账号

chown root:root  install.log 将 install.log的拥有者改回root:

2改变所属群组  chgrp

chgrp users intsall.log 将install.log的群组改为users (users必须在当前目录下存在 不然会报错)

3 cp 来源档案  目标文件

cp .bashrc .bashrc_test 将.bashrc这个档案拷贝成.bashrc_test档名

ls -al .bashrc*  查看信息

注意 cp会复制执行者的属性和权限,使用前可能需要修改这个档案的拥有者和群组。

4 改变权限 chmod 

chmod 【-r】xyz 档案或目录

xyz就是数字类型的权限属性,为rwx属性数值(read write execute)的相加值 分别是 owner、group,others

 ls -al .bashrc

---------------------xxxxxxxxx

chmod 777 .bashrc

ls -al .bashrc

-rwxrwxrwx 1 root root 395 jul 4 16:23 .bashrc

read : 可读取此文档

write: 可以编辑,新增或者修改该文档

execute:该文档可以被系统执行

  实例:

cd /tmp    进入tmp文件

mkdir test   建立新目录 

chmod 744 test  变更权限

touch test/test    建立空档案

chmod 600 test/test   变更权限

ls -ald test test/test

rm test 删除test这个档案

5档案种类

正规档案: regular file

目录 :directory

连结档:link

设备与装置文件 :device

6档案的扩展名

*.sh 脚本或者批处理文件

*Z, *.tar, *,zip 压缩文件

*.html, *.php 网页相关档案

7绝对路径和相对路径

绝对路径(absolute):由根目录 / 开始写起的文件名或目录名称,例如 /home/dmtsai/.bashrc

cd /var/log

相对路径(relative):相对于目前路径的文件名写法,例如./home/dmtsai 或者../../home/dmtsai,反正开头不是/

cd ../../var/log

. :  代表目前的目录,也可以用./来表示

 .. : 代表上一层目录,也可以用../来表示

- :代表前一个工作目录

~ :代表目前用户身份所在的家目录

如何先进入/var/spool/mail目录 , 再进入var/spool/cron目录内。

cd /var/spool/mail

cd ../cron

./run.sh    执行本目录下,名为run.sh的档案。

8变换目录 cd

cd ~ 和cd 都是进入自己的家目录

cd .. 表示回到目前的上层目录

cd - 表示回到刚才那个目录

cd  /var/spool/mail

cd  ../mqueue   相当于 cd /var/spool/mqueue

9 pwd 显示目前所在的目录

 pwd 【-p】显示确实的路径,而非链接文件本身的目录名

pwd  显示目前的工作目录

pwd和pwd【-p】区别

 cd /var/mail

pwd

/var/mail

pwd -p

/var/spool/mail  因为 /var/mail是连结档,连结到/var/spool/mail,所以pwd -p会不已连结文件的数据显示,而是显示完整的路径。

10 mkdir 建立新目录

mkdir 【-mp】 目录名称

-m:配置文件案的权限,直接设定。

-p:帮助你直接将所需要的目录(包含上层目录)递归建立起来(建立多层目录)。

cd /tmp

mkdir test

mkdir test1/test2/test3/test4  该命令无法直接建立此目录 需使用mkdir -p

mkdir -p test1/test2/test3/test4 建立多层目录

mkdir -m 711 test2

11 rmdir(删除【空】的目录)

rmdir 【-p】连同 上层【空的】目录一起删除

rmdir test        test为空时看直接删除,不为空则报错

rmdir -p test1/test2/test3/test4

12 关于执行文件路径的变量 : $PATH

echo $PATH           

 echo有显示,印出的意思,而PATH前面加的 $ 表示后面接的是变量,所以会显示出目前的PATH。

13 ls 档案与目录的检视

ls -a 目录名称 : 全部的档案,连同隐藏档(开头为.的档案)一起列出来(常用)

ls - A 目录名称:全部的档案,连同隐藏档,但不包括.与..这2个目录

ls -d:仅列出目录本身,而不是列出目录内的档案数据(常用)

ls -l:长数据串行出,包含档案的属性与权限等等数据(常用)

ls :显示非隐藏档的档名

也可以组合一起用 如 ls -al 目录名称  显示全部文档 包含属性和权限

 ll 等于 ls -l

14 cp复制档案或目录

cp 【-adfilprsu】来源文件 目标文件

-a:相当于-pdf

-d:若来源文件为链接文件的属性,则复制链接文件属性而非档案本身;

-f:强制,若目标档案已存在且无法开启,则移除后再尝试一次;

-i:若目标文件已经存在,在覆盖时会先询问动作的进行。

-p:连同档案的属性一起复制过去,而非使用默认属性(备份常用);

15 rm 移除档案或目录

rm 【-fir】档案或目录

-f: 忽略不存在的档案,不会出现警告信息。

-i:再删除前会询问使用者是否动作。

-r:递归删除啊,最常用在目录的删除了,这是非常危险的选项。

16 mv 移动档案与目录,或别名

mv 【-fiu】source destination

-f : 强制,如果目标档案已经存在,不会询问直接覆盖。

-i:若目标档案移交存在,会询问是否覆盖

-u:若目标档案已经存在,且source比较新,才会更新。

实例1

cd /tmp

cp ~/.bashrc bashrc

mkdir mvtest

mv bashrc mvtest

实例2

mv mvtest mvtest2

实例3

cp ~/.bashrc bashrc1

cp ~/.bashrc bashrc2

mv bashrc1 bashrc2 mvtest2

17 档案内容查阅

cat 由第一行开始显示档案内容

tac 由最后一行开始显示,就是cat的倒着写

nl 显示的时候 顺道输出行号

more 一页一页的显示档案内容

less    与more类似,但是比more更好的是,可以往前翻页。

head  只看头几行

tail 只看尾巴几行

od 以二进制的方式读取档案内容

 

18 直接检视档案内容

直接查阅一个档案的内容可以使用cat/cat/nl这几个指令

cat 【-AbEnTv】

cat -A : 相当于-vET的整合选项,可列出一些特殊字符而不是空白而已

cat -b: 列出行号,仅针对非空白行做行号显示,空白号不标行号。

cat -E: 将结尾的断行字符$显示出来

cat -n: 打印出行号,连同空白号也会有行号,与-b不同。

cat -T:将【tab】按键以^I显示出来

cat -v:列出一些看不出来的特殊字符

19 more(一页一页翻动)

more /etc/man.config

 空格键 :代表向下翻一页

Enter:代表向下翻一行

/字符串 :代表在这个现实的内容中,向下搜索【字符串】这个关键词

:f      :立刻现实出文件名以及目前显示的行数;

q          :代表立刻离开more,不再显示该档案内容

b          :代表往回翻页,不过该动作支队档案有用,对管线无用。

20 less(一页一页翻动)  可向上翻页,与more不同。

less /etc/man.config

空格键:向下翻动一页;

【pagedown】:向下翻动一页;

【pageup】:向上翻动一页;

/字符串  :向下搜索【字符串】;

?字符串 :向上搜索【字符串】;

n     :重复前一个搜索

N     :反向的重复前一个搜索

q       :离开less这个程序

21 head 取出前面几行

head 【-n number】 档案

head -n 20 /etc/man.config

22 tail   取出后面几行

 tail 【-n number】 档案

-n:后面接数字,代表几行的意思

-f:表示持续侦测后面所接的档名,要等到按下ctrl-c才会结束tail的侦测

tail -n 20 /etc/man.config 显示最后的20行

23修改档案时间或建置新档  touch

modification time (mtime):当档案的内容数据变更时,就会更新这个时间。内容数据指的是档案的内容,而不是档案的属性或权限。

status time (ctime):当该档案的状态改变时,就会更新这个时间,举例来说,像是权限与属性被更新,都会更新这个时间。

access time(atime):当档案的内容被取用,就会更新这个读取时间,举例来说,我们使用cat去读取/etc/man.config,就会更新该档案的atime了。

touch 【-acdmt】 档案

-a:仅修改access time;

-c :仅修改档案的时间。若该档案不存在则不建立新档案;

-d:后面可以接与修订的日期

-m:仅修改mtime;

-t:后面可以接与修订的时间,格式为【YYMMDDHHMM】

24 file观察文件类型,例如是输入ASCII或者是data档案

file ~/.bashrc

25  which指令与档案的搜寻,脚本文件名的搜寻

which 【-a】command

-a :将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称

实例

switch ifconfig

/sbin/ifconfig

26 whereis 档案档名的搜寻

whereis 【-bmsu】档案或目标名

-b:只找binary格式的档案

-m:只找在说明文件manual路径下的档案

-s:只找source来源档案

-u:搜寻不在上述三个项目当中的其他特殊档案

 

27 locate 档案档名的搜寻

locate【-ir】 keyword

-i:忽略大小写的差异;

-r:后面可接正规表示法的显示方式

28 find 档案档名的搜寻

find 【path】【option】【action】

差别  whereis和locate都是搜寻数据库,find是直接搜寻磁盘。

29编辑模式 重要

vi test.txt 进入vi的一般模式

按下i 进入编辑模式,左下角状态栏会出现-insert-的字样。按esc键退出编辑模式,回到一般模式。

编辑模式指令。

ctrl + f  屏幕向下移动一页

ctrl+b 屏幕向上移动一页

gg  移动到这个档案的第一行

/word  向光标之下寻找一个名称为word (/后面是什么就搜寻什么)的字符串

?word 向光标之上寻找一个名称为word 的字符串

n和N 都代表重复前一个搜寻的动作n是向后,N是向前。

x     向后删除一个字符

X    向前删除一个字符 相当于 backspace

dd  删除光标所在的那一行

yy  复制光标所在的那一行

u  复原前一个动作

ctrl + r  重做上一个动作

.      (小数点)  重复前一个动作

一般模式切换到指令列模式后可用的指令

:w   将标记的数据写入硬盘档案中,保存。

:q  离开vi

:q! 若修改过档案又不想储存,强制离开不储存档案。

:wq 储存后离开,若为:wq!则为强制储存后离开

ZZ   若档案没有变动,则不储存离开,若有变动,则储存后离开。

vim环境的变更

 :set nu 显示行号 ,设定之后,会在每一行的前缀显示该行的行号

:set nonu  取消行号

30 命令编修能力 bash_history(里面储存着历史指令)

cd ~/.bash_history

31命令别名设定功能 : alias

alias lm ='ls -al'

32  程序化脚本 : shell scripts

33 变量的取用与设定 :echo

echo ${变量}

echo  $PATH  和echo  ${PATH }功能一样

34 history 历史命令

history n  :列出最近的n条命令

history -c:将目前shell中的所有history内容全部消除

35组合按键

 Ctrl +c  终止目前的命令

ctrl +d  输入结束

ctrl +m 就是enter

ctrl +s 暂停屏幕的输出

ctrl +q 回复屏幕的输出

ctrl+u 在提示字符下,将整列命令删除

ctrl+z 暂停目前的命令

36  管线命令 pipe  管道(|)

注意:管线后面接的第一个数据必须是指令,且这个指令必须能接受standard input的数据才想,例如less,more,head,tail,grep,tr等

管线命令仅会处理standard output,对于strandard error output会予以忽略

管线命令必须要能够接受来自前一个指令的数据成为standard input继续处理才行

standard input :<与<<

 <就是将原本需要由键盘输入的数据,改为档案内容来取代

<<结束的输入字符。

standard output 指令执行所回传的正确的讯息。

37 截取命令 : cut,grep 将一段数据经过分析后,取出我们所想要的。

cut:可以将一段讯息的某一段切出来,处理的讯息以行为单位。

grep:分析一行讯息,若当中有我们所需要的信息,就将该行拿出来。

grep 【-acinv】【--color=auto】 搜徐字符串

-a:将binary档案以text档案的方式搜寻数据

-c:计算找到‘搜寻字符串’的次数

-i:忽略大小写的不同,所以大小写视为相同

-n:顺便输出行号

-v:方向选择,显示没有‘搜索字符串’内容的那一行

--color=auto: 可以将找到的关键词部分加上颜色的显示。

实例:

last | grep 'root'       将last当中,又出现root的那一行就取出来。

last |grep -v 'root'   将last的输出讯息中,只要没有root就取出。

38排序命令:sort,wc,uniq

39  tr 删除一段讯息当中的文字,或者是进行文字讯息的替换。

tr 【-ds】 SET1

-d:删除讯息当中的SET1这个字符串

-s:取代掉重复的字符。

last | tr '[a-z]' '[A-Z]'  将last输出的讯息中,所有的小写变成大写字符。没有单引号也是可以执行的

cat  /etc/passwd | tr -d ':'   将/etc/passwd 输出的讯息中,将冒号(:)删除。

40 符号.和*

.(小数点):代表一定有一个任意字符的意思

*(星号):代表前一个0到无穷多次的意思,为组合形态

实例  -n  显示行号

grep -n 'd..d' regular_express.txt      找出g??d的字符串。

grep -n '^#' regular_express.txt     将行首为#的那一行打印出来

grep -n '!$' regular_express.txt      将行尾为!的那一行打印出来

grep -n 'ess*' regular_express.txt    搜寻含有开头为ess的字符串那一行

grep -n 'd[ld]' regular_express.txt    搜寻含dl或者dd的那一行

41 test  指令的测试功能

test -e /dmtsai 检查/tmtsai是否存在

-e  该档案是否存在

-f  该档案是否存在且为档案(file)

-d 该文件名是否存在且为目录(directory)

42 sudo  可以让你切换身份来进行某项任务

sudo的执行仅需要自己的密码即可,sudo可以让你以其他用户的身份执行命令(通常是使用root的身份来执行指令)。

sudo 【-b】【-u新使用者账号】

-b:将后续的指令放到背景中让系统自动执行,而不与目前的shell产生影响

-u:后面可以接欲切换的使用者,若无此项则代表切换身份为root。

实例 : 想要一sshd 的身份在/tmp地下简历一个名为mysshd 的档案

sudo  -u sshd touch /tmp/mysshd

ls -l /tmp/mysshd

xxxxxxxxxxxxxxxxxxxxxx(输出),这个档案的权限由sshd所建立

43 kill 管理背景当中的工作

kill -l : 列出目前kill能够使用的讯号有哪些

kill -1:重新读取一次参数的配置文件,类似reload

kill -2:代码与键盘输入ctrl+c同样的动作

kill -9:立刻强制删除一个工作

kill -15:以正常的程序方式终止一项工作,与-9不一样。

kill -signal  和kill -15一致。

44 ps  将某个时间点的程序动作情况截取下来(一个时间点,不是持续的)

ps aux  观察系统所有的程序数据

ps -lA   也是观察所有系统的数据

ps axjf  连同部分程序树状态

-A :所有的process均显示出来

-a :不与terminal有关的所有process

-u:有效使用者相关的process

x:通常与a这个参数一起使用,可列出比较完整信息。

输出格式规划:

l : 较长,较详细的将该PID的信息列出;

j  :工作的格式(jobs format)

-f :做一个更为完整的输出

ps -l 仅观察自己的bash相关程序。

程序的状态:

F  代表这个程序旗标,说明这个程序的总结权限,号码若为4则表示此程序的权限为root,若为1则表示此子程序仅进行复制而没有实际执行。

S 代表这个程序的状态,有以下状态。

    R  运行中;S  睡眠中(可唤醒);D 睡眠中(不可唤醒,一般是在等待I/O的情况),T 停止状态,Z 僵尸状态,程序已经终止单无法被移除至内存外。

UID/PID/PPID:此程序被该UID所拥有,程序的PID号码,此程序的父程序pid号码

C : cpu使用率

PRI/NI  :此程序被CPU所执行的优先级,数值越小代表改程序越快被cpu执行。

TIME :使用掉的CPU时间。

45 top  动态观察程序的变化

top 【-d数字】 | top 【-bnp】

-d:后面可以接秒数,就是整个程序画面更新的秒数,预设是5秒。

-b:以批次的方式执行top

-n :与-b搭配,需要进行几次top的输出结果

-p:指定某些个PID来进行观察检测而已

46 free 观察内存使用情况

free -b:直接输入free时,显示的单位是bytes

free -k:直接输入free时,显示的单位是Kbytes

free -m:直接输入free时,显示的单位是Mbytes

free -g:直接输入free时,显示的单位是Gbytes

free -t:在输出的最终结果,显示物理内存与swap的总量

47 pidof 找出某支正在执行程序的pid

pidof 【-sx】program_name

-s:仅列出一个PID而不列出所有的PID

-x:同时列出该program name 可能的PPID那个程序的PID
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux