Linux常用操作
- 绝对路径 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
- 相对路径 路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法啦!
- 打开关闭终端快捷键
ctrl + alt + t:新窗口中打开
ctrl + shift + t:新标签页中打开
ctrl + d:关闭当前窗口 - 终端清屏
ctrl+l、clear:向上滚动屏幕还可以看到之前的操作
reset:整个命令过程速度有点慢,使用较少 - 中断命令
crtl + c:强制中断程序的执行;
ctrl + z:将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行. - 关闭终端 exit或ctrl+d
- 其它
ctrl + u:从光标位置删除到行首
ctrl + k:从光标位置删除到行尾
↑,↓:浏览已执行命令的历史记录
常用命令1
- ls 列出目录 ls -a或la(隐含文件) ls -l或ll(详细信息)
- cd 切换目录 cd…(上一级) cd -(上一次) cd ~或cd(宿主目录)
- pwd 显示当前所在目录绝对路径
- touch fille 创建一个新文件
- mkdir 创建一个新的目录 mkdir -p file/file(递归创建)
- rmdir 删除一个空的目录
- cp 复制文件 cp -i /home/m.c /home/doc m打头的所有.c文件复制到doc下 -r (递归) -i (交互y/n)
- rm 删除文件 -r (删除目录及其子目录) -i (交互式删除y/n) -f (不提醒、强制)
- mv 移动文件与目录,或修改文件与目录的名称 mv file1 new1(将ex3改名new1) mv /doc/ .(将doc目录中所有文件移动到当前目录中,.代表当前目录)
常用命令2
- diff file1 file2 比较两个文件的区别
- cat m1 在屏幕上显示m1的内容 cat m1 m2(在屏幕上显示m1和m2的内容) cat m1 m2 > file(将m1和m2合并后放入file中)
- head/tail -5 file 显示file的前/后5行
- head/tail file 显示file的前/最后10行(默认10行) head/tail -5 file (显示前/后5行)
- wc ex1 ex2 统计文件ex1和2的字节数、字数和行数 -cwl(字节/字/行) wc [-cwl] 仅仅列出字节/字/行
- ps 持续的监视,系统性能,如平均负载,cpu和内存的消耗
- top 所有运行的系统信息
- who 显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等
- kill 终止一个进程的运行
常用命令3
- man + cmd 命令帮助、用法。如man ls
- chmod+abc+file 设置权限,其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。r=4,w=2,x=1,例chmod 777 file
- time/cal 时间/日历
- history 最近使用过的命令
- last 显示用户最近登录信息
find
- find . -name ‘*.c’ 将目前目录及其子目录下后缀名是.c的文件列出来(单双引号或省略均可,模糊查找必须带单双引号)
-iname 忽略大小写
find . -name ‘*.c’ | xargs rm -rf 找到并删除
vim $(find . -name ‘*.c’) 作用同上
find . -name ‘*.c’ | xargs vim 找到并打开(:bn下一个文件 :bp上一个文件)
find / -type f -name "*.log" | xargs grep "ERROR" >> file.txt | vim file.txt
从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行,输出到file.txt文件中并打开(灵活应用)
- find . -type f列出当前目录及其子目录中所有一般文件(f普通文件 d目录) find . -type d -empty 找出空文件夹
- find . -mmin -5查找最后5分钟修改过的文件
- find . -size +10M -a -size -15M ( -a 与 -o 或 -not 反向匹配 ! 同 -not ) c/k/M/G:字节/双字/MB/GB
grep
-
grep -rn “要查找文本” ./
-r 递归目录所有子目录
-n 加行号
-v 显示非查找文本
-i 不区分大小写
-l 只显示文本路径
-A1 要查找文本行和后一行(After)
-B2 要查找文本行和前两行(Before)
-1 要查找文本行和前后一行 -
grep pattern file 搜寻类型匹配,如grep aa file,在file中搜寻含aa的项,grep aa file >/>> file1,将含aa的行复制到file1中,方便查看(>>追加)
awk
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
但只需要懂这些就够了。
echo 'this is a test' | awk '{print $NF}'
test
echo 'this is a test' | awk '{print $NF}'
4
sed
主要用来自动编辑一个或多个文件、简化对文件的反复操作
删除
-i 直接修改源文件并且不输出
^ 代表行首,$ 代表行尾
g 全部替换,否则只会替换每行第一个,而不继续往后找了
sed -i '/message/d' file
sed -i '/keyword1/,/keyword2/d' file
替换
sed -i 's/message/newmessage/g' file
#把sed操作的文件内容保存到另外一个文件中,w表示保存,new.txt文件名
sed -i 's/message/newmessage/w new.txt'
#输出到终端并追加保存到new.txt中(>保存)
sed 's/message/newmessage/g >> new.txt'
#把file文件中第6到12行的逗号替换为"(),"
sed -i '6,12s/,/(),/g' file
#把第1到9行的行首(行尾)添加字符并空格(回车)
sed -i '1,9s/^/head\t/g' file
sed -i '1,9s/^/tail\n/g' file
#在第三行前添加字符串
sed -i '3i\添加的内容' file
#在最后一行行前添加字符串
sed -i '$i\添加的内容' file
#在最后一行行后添加字符串
sed -i '$a\添加的内容' file
查找替换
grep -rl "string" ./ | xargs sed -i 's/message/newmessage/g'
其他
sed -n '10,22p' file
#打印10~22行
sed -i '/keyword1/,/keyword2/ s/message/newmessage/g' file
#以逗号隔开两个正则表达式的方式称为范围表达式
xargs(arguments)
xargs命令的作用,是将标准输入转为命令行参数。大多数命令(比如rm、mkdir、ls)与管道一起使用时,都需要xargs将标准输入转为命令行参数。默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。
somecommand | xargs -item command
echo "one two three" | xargs mkdir
mkdir one two three (同上)
cut
- -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
- -c :以字符为单位进行分割。
$ who
rocrocket :0 2009-01-08 11:07
rocrocket pts/0 2009-01-08 11:23 (:0.0)
rocrocket pts/1 2009-01-08 14:15 (:0.0)
$ who|cut -b 3
c
c
c
cut处理多空格相连的数据时,可能会比较吃力,使用awk替代。
sort
- -b 忽略每行前面开始出的空格字符。
- -f 排序时,将小写字母视为大写字母。
- -u 即唯一的(uniq),相同的数据仅出现一行代表。
- -n 依照数值的大小排序。
- -r 以相反的顺序来排序。
- -t 指定排序时所用的栏位分隔字符,默认Tab分割。
- -k 以哪个区间(field)来进行排序。
- M 将前面3个字母依照月份的缩写进行排序。
- –help 显示帮助。
cat /etc/passwd | sort -t ':' -k 3
cat /etc/passwd | sort -t ':' -k 3 -n
将输出的数据仅显示账号,并加以排序
last | cut -d ' ' -f1 | sort
接上,排序后仅列出一个显示(可理解为将同类合并显示一个)
last | cut -d ' ' -f1 | sort -u | -c
last | cut -d ' ' -f1 | sort | uniq
接上,如果想知道每个人的登陆总次数。 last 显示用户最近登录信息。
last | cut -d ' ' -f1 | sort | uniq -c
注: uniq [-ic]
-i 忽略大小写字符的不同
-c 进行统计(类似wc命令)