常用命令:
1. 给文件夹或者文件增加可执行权限
chmod +x 文件名
给所有人添加可执行权限:chmod a+x 文件名;
给文件所有者添加可执行权限:chmod u+x 文件名;
给所在组添加可执行权限:chmod g+x 文件名;
给所在组以外的人添加可执行权限:chmod o+x 文件名
2. 强制退出当前执行命令
退出正在执行的操作 Ctrl+z
3. cd: 切换目录
进入系统根目录:cd /
进入当前目录:cd .
返回上层目录:cd ..
进入指定目录:cd /tmp
进入当前用户的家目录:cd ~
4. ls:列出当前目录的所有文件、文件夹(目录)信息
-l 列出目录或者文件的详细信息。比如权限、修改时间等等;
-a 列出当前目录下所有文件,包括隐藏文件(已点开头的都是隐藏文件);
-A 列出除.和..之外的所有文件;
-h 列出文件的大小;
显示指定目录/tmp的内容:ls /tmp
列出文件和文件夹的基本属性和详细信息:ls -l
列出当前目录的全部内容:ls -a
列出ls命令的帮助内容:ls -help
列出以coco开头的文件和文件夹:ls coco*
列出文件和文件夹的基本属性和详细信息:ll
5. 列出当前目录的路径
列出当前目录的路径:pwd
6. 确认当前登录用户的身份
显示当前用户:whoami
显示当前系统登陆用户以及所登陆的控制台:who
7. 复制文件或目录
-a 相当于-pdr
-f 强制复制,不提示
复制xxxx文件到/tmp目录下:cp xxxx /tmp
复制 /xxxx/xxxx文件到/home目录下:cp /xxxx/xxxx /home
复制/xxxx/xxxx到/tmp目录下并改名为coco:cp /xxxx/xxxx /tmp/coco
复制/xxxx/xxxx到/home目录下并复制文件属性 cp -p /xxxx/xxxx /home
8. 移动文件或目录
-f 表示强制移动,不提示
移动xxxxx.txt到home目录里:mv xxxx.txt /home
9. 在文件中查找关键词
-v 排除内容
-E 可以同时实现两条命令的使用,当然也要加|
--color=auto 对过滤的字符串加颜色
-i 不区分大小写
-w 按单词搜索
-B 除了显示匹配的一行之外,并显示该行之前的 N 行
-A 除了显示匹配的一行之外,并显示该行之后的 N 行
-C 除了显示匹配的一行之外,并显示该行之前后各 N 行
-o 只显示匹配到的内容
-n 显示行号
在/xxxx/xxxx文件中查找关键字“aaa”:grep "aaa" /xxxx/xxxx
10. 下载/上传文件
tar -cvf script.tar script(先打包)
sz script.tar (发包)
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务
[root@linux ~]# tar [-cxtzjvfpPN]文件与目录....
参数:
-c:建立一个压缩文件的参数指令(create的意思);
-x:解开一个压缩文件的参数指令!
-t:查看tarfile里面的文件!
特别注意,在参数的下达中,c/x/t仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z:是否同时具有gzip的属性?亦即是否需要用gzip压缩?
-j:是否同时具有bzip2的属性?亦即是否需要用bzip2压缩?
-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f:使用档名,请留意,在f之后要立即接档名喔!不要再加参数!
例如使用『tar -zcvfP tfile sfile』就是错误的写法,要写成
『tar -zcvPf tfile sfile』才对喔!
-p:使用原文件的原来属性(属性不会依据使用者而变)
-P:可以使用绝对路径来压缩!
-N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将FILE打包!
范例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以gzip压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以bzip2压缩
11. 查看或者链接文本文件
使用权限:所有用户(即root帐号和所有普通帐号)
使用方法:cat [参数] 文件名
参数说明:
-A:--show-all 等价于 -vET
-b:--number-nonblank 对非空输出行编号,即在每行前显示所在行号
-e:等价于 -vE
-E: --show-ends 在每行结束处显示 $
-n:--number 对输出的所有行编号,即在每行前显示所在行号
-s:--squeeze-blank 不输出多行空行
-t:与 -vT 等价
-T:--show-tabs 将跳 字符显示为 ^I
-u :(被忽略)
-v: --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开
12. 创建空文件
语法:touch
# touch file{1..5}
# ls
file1 file2 file3 file4 file5
13. 删除目录
rmdir dirName
删除空目录
rmdir [-p] dirName
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
rm -rf dirName/
表示强制删除不提示,即使该文件受写保护
find . -type d -name "MyDocuments" -exec rm -rf {} +
Find命令帮助用户根据特定的表达式搜索文件和目录。此外,该命令可用于搜索目录并根据指定的搜索标准删除它们。
- . 表示在当前目录执行
- -type d 只搜索目录
- -name 指定目录名称
- -exec rm -rf 执行rm命令删除所有目录即内容
- {} + 追加在rm命令末尾
find . -type d -empty -delete
只删除空目录
- -empty 只对空目录进行限制
- -delete 删除包括子目录在内的所有空目录
14. nohup后台运行命令
- nohup yourcommand &
yourcommand:启动对象命令。可以跟该命令需要的各种参数。
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出. nohup与&结合起来,可以实现不挂断的后台运行
- nohup yourcommand 2>&1 &
实现后台运行的程序中屏幕输出记录到日志文件,在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到日志文件中。
- nohup yourcommand > myout.log 2>&1 &
将日志输出到指定文件,">"大于符号表示重定向输出到一个新设备/文件,“>>”表示追加输出到某个文件。
- nohup yourcommand > /dev/null 2>&1 &
忽略屏幕输出, /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢弃。由于有 2>&1, 错误输出2重定向到标准输出1,这样错误输出也会丢失。
- tail -f myout.log
tail -f 等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F 等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
tail -n num 从最后的num行开始跟踪。num默认值是10,如果觉得太少,加上这个参数。
tailf 等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。
- ps -ef|grep yourcommand
监测文件是否在正常运行,-ef 参数显示所有命令,连带启动时的命令行参数
- 查找进程号,杀死进程
ps ax | grep xxx.py(查找进程号)
kill -9 进程号(杀死进程)
15.vim文本编辑基础操作
vim filename(编辑文件)
常见errors:
1.Failed to allocate directory watch: Too many open files
解决方法:
可能是 inotify 数量限制了,修改后服务可以正常启动
打开以下配置文件,加入两行命令
vim /etc/sysctl.conf
fs.inotify.max_user_instances=512
fs.inotify.max_user_watches=262144
保存文件后,使用生效指令
sysctl -p
inotify:它是一个内核用于通知用户空间程序文件系统变化的机制。
查看inotify数量
sysctl fs.inotify
Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,inotify 是一种文件系统的变化通知机制,如文件增加、删除等事件可以立刻让用户态得知,该机制是著名的桌面搜索引擎项目 beagle 引入的,并在 Gamin 等项目中被应用。
安装工具tips:
1. Linux环境(服务器)下非root用户安装Python3.6