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
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下常用配置文件及常用命令的介绍
- Linux 常用命令汇编(一)
- Unix/Linux常用监控和管理命令工具
- Linux下常用网络配置文件及常用命令的介绍
- Linux开发中的常用命令
- linux常用的命令详细说明
- Linux下的常用命令和设置
- Linux常用命令
- Linux常用命令介绍
- Linux 的常用网络命令
- Linux 入门常用命令
- linux常用开发命令
- Linux常用命令和服务器配置
- Linux 的常用网络命令
- linux常用命令及技巧
- Linux开发中的常用命令
- LINUX选修课讲义:UNIX常用命令
- Linux 入门常用命令
- Linux常用命令(2)
- Linux开发中的常用命令