linux 常用命令

文件目录

" / "  :根目录
" ~ " :用户主目录的缩写。例如当前用户为hello,那么" ~ "展开来就是:/Users/hello
" . "  :当前目录
".."   :父目录

基本命令

man

Linux命令就是man命令,该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”

语法: man <command name>

man ls

touch,cat和less命令

touch 命令可以在Linux系统中 创建大小为0 的 任意类型文件
cat 命令用来查看文件的内容,不支持键盘上下键翻页
less 命令也可以让你浏览文件,less 命令非常快,并且支持 上下键 查看文件的 开头和末尾
more 命令和它类似,只是 more 命令只能用 enter 键实现文件的 向前翻页,不支持回退
touch <filename> 	 在当前目录下创建 <filename> 文件
cat <filename>
less <filename>

sort

sort 命令用来对文件内容进行排序
test.txt

1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov
sort -k2 test.txt	对第二列排序
按数字排序  -h
sort -h test.txt

1 mike level intermediate jan
4 dennis start beginner jul
7 Megan employee trainee feb
10 lucy level beginer mar
45 Dave level expert dec
58 Mathew Head CEO nov
消除重复的行  -u
sort -h -r test.txt

58 Mathew Head CEO nov
45 Dave level expert dec
10 lucy level beginer mar
7 Megan employee trainee feb
4 dennis start beginner jul
1 mike level intermediate jan

Uniq

过滤文件中的重复行
root@devopscube:~# uniq test.txt

1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

cut

列或者分隔符提取文件中的指定部分
列出文件中某列的全部内容		-c
cut -c1-2 test.txt		提取第1、2列的全部内容

1
10
45
4
7
58
提取指定的字符串
cut -d' ' -f2 test.txt 提取names列

mike
lucy
Dave
dennis
Megan
Mathew

tar

-cf  压缩
-xf  解压缩
将test.txt文件打包
root@devopscube:~# tar -cf test.tar test.txt
root@devopscube:~# ls
test.tar  test.txt
“-C”选项将刚才打包好的test.tar文件解压缩至“demo”目录
root@devopscube:~# tar -xf test.tar -C /root/demo/
root@devopscube:~# cd demo/
root@devopscube:~/demo# ls
test.txt

diff

找出2个文件的不同点
root@devopscube:~# diff test.txt test1.txt

7c7
< 59 sdfsd
---
> 59 sdfsd  CTO dec

chmod

改变文件的读//执行权限

4 - read permission
2 - write permission
1 - execute permission
0 - no permission
chmod 755 test.txt		给test.txt文件赋最高的权限

cd:跳转到目录

技巧:输入目录时,tab键补全名称

cd /Users/apple/Desktop/  跳转到指定目录
cd /   表示跳转到根目录。
cd-	回到上一个目录
cd ~   表示跳转到用户主目录。
cd ~apple   表示跳转到用户apple的主目录。
cd ..   表示跳转到上级目录。(cd和..之间的空格不能漏)

ls:列出当前目录下的子目录和文件名称

ls 参数 目录名

1	$ ls  
2	Desktop     Downloads   Movies      Pictures    build  
3	Documents   Library     Music       Public      log.txt  
参数 
-w 显示中文,-l 详细信息, -a 包括隐藏文件
4	ls -ah

pwd:显示当前目录的路径

1	$ cd ~  
2	$ pwd  
3	/Users/apple  
4	$ cd ./Desktop/  
5	$ pwd  
6	/Users/apple/Desktop 

clear:清空当前输入

实质上是屏幕滚动

history:查看输入历史记录

在Terminal输入命令时,可以使用上下方向键查看之前输入的命令(和windows的cmd相同)。另外,可以用history查看输入的完整历史

1	600  ls  
2	601  cd Public/  
3	602  ls  
4	603  cd /  
5	604  ls  
6	605  cd ..  
7	606  ls  
8	607  cd /  
9	608  ls  
10	609  history   
11	610  history  

mkdir:创建目录

mkdir 目录名

例:在驱动目录下建一个备份目录
backup     mkdir /System/Library/Extensions/backup

在桌面上建一个备份目录 
backup    mkdir /User/用户名/Desktop/backup
backup    mkdir ~/Desktop/backup

cp:拷贝文件

cp 参数 源文件 目标文件

例:想把桌面的Natit.kext 拷贝到驱动目录中  
cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions

参数R表示对目录进行递归操作,kext在图形界面下看起来是个文件,实际上是个文件夹。

把驱动目录下的所有文件备份到桌面
backup
cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup

rm:删除文件

rm 参数 文件

例:想删除驱动的缓存  
 rm -rf /System/Library/Extensions.kextcache     rm -rf /System/Library/Extensions.mkext
 
 参数-rf 表示递归和强制,千万要小心使用,如果执行了 rm -rf / 你的系统就全没了

mv:移动文件

mv 文件 目标路径

例:想把AppleHDA.Kext 移到桌面    
mv /System/Library/Extensions/AppleHDA.kext /User/用户名/Desktop

想把AppleHDA.Kext 移到备份目录中   
mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/backup

nano:文本编辑

nano 文件名

 例:编辑natit Info.plist
      nano /System/Library/Extensions/Natit.kext/Info.plist

目录操作

mkdir	新建目录		mkdir dirname
rmdir	删除目录		rmdir dirname
mvdir	移动或者重命名目录		mvdir dir1 dir2
cd	切换目录		cd dirname	
pwd		查看目录		pwd
ls		查看当前目录内容		ls -la   详细信息,隐藏文件

文件操作

cp	复制文件或目录	cp file1 file2
rm	删除文件或目录 rm filename
mv	改变文件名或所在目录	mv file1 file2
find	使用匹配表达式查找文件	find .-name "*.c" -print
file	显示文件类型	file filename

diff	比较并显示两个文件的差异	diff file1 file2
uniq	去掉文件中的重复行	uniq file1 file2
wc	统计文件的字符数、词数和行数	wc filename
nl	给文件加行号	nl file1 > file2

unzip 文件名		解压缩jar包等,当mac不能使用原装解压文件解压时,可以使用unzip解压

文件查看

cat	显示文件全部内容
head	显示文件最初几行	head -20 filename
tail	显示文件最后几行	tail -20 filename

	动态追踪文件修改
	tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
	tail -F     等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
	tailf        等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电
tail -n +10 test.log 查询10行之后的所有日志;
tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)		-fn 相当于 -f -n
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
从键盘创建一个文件
$cat > filename

将几个文件合并为一个文件
$cat file1 file2 > file        只能创建新文件,不能编辑已有文件

将一个日志文件的内容追加到另外一个
$cat -n textfile1 >> textfile2


> 意思是创建/覆盖,>> 是追加
Ctrl f 向下滚动一屏
空格键 向下滚动一屏
Ctrl b 返回上一屏
= 输出当前行的行号
v 调用vi编辑器
! 命令 调用Shell,并执行命令
q 退出 more
less log.log
shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213
按 n 向上查找关键字
shift+n 反向查找关键字
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动

文件编辑

vi	打开文件,如果文件不存在就创建	vi aaa.text
:q	退出文件,编辑后没有保存不能退出
:w	保存
:wq	保存退出
:w!    强制保存,在root用户下即使文本只读也可以强制保存
:q!    强制退出,所有改动不生效
:wq!   强制保存并退出

:set nu	显示行号
:set nonu	隐藏行号
esc	由编辑模式进入一般模式
a i o	由一般模式进入编辑模式

小写i 	在光标所在行位置停止不动开始写入内容
大写I	在光标所在行行首开始写入内容
小写a	在光标所在行当前字符后开始写入内容
大写A	在光标所在行行尾开始写入内容
小写o	在光标所在行下一行开始写入内容
大写O	在光标所在行上一行开始写入内容

dd	剪切一行
5dd	剪切光标下的5行
p	粘贴
yy	复制
5yy	复制5行
u	撤销上次操作
ctrl + r	恢复操作
gg	光标定位到第一行
shift + gg	光标定位到最后一行
3shift + gg	光标定位到第三行
u  	撤销
ctrl + r	恢复
vim 中 /{要匹配的字符串} 快速查找
		n  或  N 进行上一个或下一个的匹配

进程操作

ps	显示进程当前状态 ps u

显示和java相关的进程
ps -ef | gerp java		-e 显示所有程序  f 显示UID,PPIP,C与STIME栏位  | 是管道命令 是指ps命令与grep同时执行	

查看端口所在线程	 lsof -i:8080
	      或者	 sudo lsof -i tcp:8080

kill	终止进程	kill -9 30142
	kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。
	kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出,TERM(或数字9)表示“无条件终止”,强制杀死该进程;

时间操作

data	显示系统当前日期和时间

其他操作

clear	清除屏幕或窗口内容	clear
who		列出当前系统所有用户	who
whoami	显示当前正在操作的用户	whoami
du	查看磁盘使用情况	du -k subdir
ping	查看网站访问情况	ping www.github.com
ctrl + z	退出执行中的终端程序
history		查看历史输入的命令
exit	退出当前窗口正在运行的内容,退出当前窗口

管理员权限

sudo	管理员权限	sudo gem install iStats	安装温度插件

其他

Linux大文件怎么查某一行的内容

head -n 40 filename     获取前40行
管道 -n 1            获取最后一行,也就拿到了第40行的内容
head -n 40 2017_08_28.log | tail -n 1
sed -n '行号 p'  filename		         打印指定行号的内容  
sed -n '行号开始,行号结束 p' filename		打印某个范围内的内容  

sed -n '5926 p' 2.sql 
sed -n '5926,5930 p' 3.sql 

Linux下查找固定时间内修改过的文件

find 路径 -name ‘文件名’ -mtime 0

查找最近24小时内修改过的文件:
find html/ -mtime 0

查找最近24~48小时之间修改过的文件:
find html/ -mtime 1

查找最近30分钟修改过的.php文件:
find html/ -name '*.php' -mmin -30

查找最近24小时内修改过的.php文件:
find html/ -name '*.php' -mtime 0

find /home -atime 11天之内被存取过的文件
find /home -mmin 60/home下查60分钟前改动过的文件
find /home -amin 30                  查最近30分钟前被存取过的文件
find   -name april*                     在当前目录下查找以april开始的文件
find   -name ap* -o -name may*   查找以ap或may开头的文件
find   /mnt   -name tom.txt   -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find   /mnt   -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件


find /home   -newer   tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
find /home   -anewer   tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
find   /home   -used   -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find   /home   -user cnscn                列出/home目录内属于用户cnscn的文件或目录
find   /home   -uid   +501                  列出/home目录内用户的识别码大于501的文件或目录
find   /home   -group   cnscn              列出/home内组为cnscn的文件或目录
find   /home   -gid 501                   列出/home内组id为501的文件或目录
find   /home   -nouser                    列出/home内不属于本地用户的文件或目录
find   /home   -nogroup                   列出/home内不属于本地组的文件或目录
find   /home    -name tmp.txt    -maxdepth   4   列出/home内的tmp.txt 查时深度最多为3层
find   /home   -name tmp.txt   -mindepth   3   从第2层开始查
find   /home   -empty                     查找大小为0的文件或空目录
find   /home   -size   +512k                查大于512k的文件
find   /home   -size   -512k               查小于512k的文件
find   /home   -links   +2                查硬连接数大于2的文件或目录
find   /home   -perm   0700                查权限为700的文件或目录
find   /tmp   -name tmp.txt   -exec cat {} \;
find   /tmp   -name   tmp.txt   -ok   rm {} \;

find    /   -amin    -10     # 查找在系统中最后10分钟访问的文件
find    /   -atime   -2        # 查找在系统中最后48小时访问的文件
find    /   -empty             # 查找在系统中为空的文件或者文件夹
find    /   -group   cat        # 查找在系统中属于 groupcat的文件
find    /   -mmin   -5         # 查找在系统中最后5分钟里修改过的文件
find    /   -mtime   -1       #查找在系统中最后24小时里修改过的文件
find    /   -nouser           #查找在系统中属于作废用户的文件
find    /   -user    fred     #查找在系统中属于FRED这个用户的文件
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值