Linux常用命令
记录下个人日常使用的部分Linux命令(持续更新)
1. rm命令
该命令用于删除文件或目录
-f force,不会出现警告消息
-i 删除前会询问用户是否操作
-r 递归删除,删除目录下所有文件
rm -rf /home/test # 递归删除/home/test目录下所有文件,没有提示!
rm -i testFile # 删除当前目录下testFile文件,会提示是否确认删除操作
注:生产环境服务器中,尽量不要添加-f参数,防止误操作,每次删除前记得先备份,删除重要文件时记得提前确认
2. ps命令
该命令用于查看进程以及状态,类似windows的任务管理器
-e 列出所有的进程(等同于-A)
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-f 全部列出,通常和其他选项联用
ps -ef | grep java
root 12345 1 0 Feb1 ? 10:10:10 java -jar test.jar
3. kill命令
该命令常用于杀死进程
-l :列出kill命令下所有的信号名称(数字为信号的代号,互为代替)
以下括号内为替代,如kill -SIGKILL 1212等同于kill -9 1212
-SIGINT (-2) 中断(同 Ctrl + C)
-SIGQUIT (-3) 退出(同 Ctrl + \)
-SIGKILL (-9) 强制终止
-SIGTERM (-15) 终止
-SIGCONT (-18) 继续
-SIGSTOP (-19) 暂停
kill -9 12345 # 杀死PID为12345的进程
注:kill -9 PID有时候会带来一些无法预料的副作用,比如数据丢失等情况,使用时候需注意
4. cp命令
该命令用于复制文件
-a 将文件的特性一起复制
-p 连同文件的属性一起复制,常用于备份
-i 若目标文件已经存在时,在覆盖时会先询问操作
-r 递归复制,用于目录的复制
cp test.jar test_bak.jar # 复制jar包并作为备份文件
注:常用于文件的备份,生产环境中修改配置文件或者版本迭代时,优先记得进行对于原有版本的备份
5. mv命令
该命令用于文件、目录的转移或者更名
-f force强制,如果目标文件已经存在,不会询问而直接覆盖
-i 若目标文件已经存在,会询问是否覆盖
-u 若目标文件已经存在,源文件比目标文件新,才会更新
mv testFile dir # 把文件testFile移动到目录dir中
mv testFile testFile_bak # 把文件testFile重命名为testFile_bak
6. tar命令与zip命令
该类命令都用于压缩、解压缩文件或目录
tar
-c 创建新的tar包
-v 显示详细tar执行过程
-f 指定压缩的文件名字
-t 不解压查看tar包的内容
-z 通过gzip压缩或解压
-x 解压tar包
tar -zcvf xxx_bak.gz /home/xxx-back # 压缩目录
tar -zxf xxy_bak.gz # 解压缩某个压缩包
zip
-q 不显示指令执行过程
-r 递归处理,将指定目录下的所有文件和子目录一并处理
zip test.zip a.txt # 将a.txt文件压缩成压缩包
zip -r bak.zip testPath/ # 将目录下文件进行压缩操作
unzip test.zip # 将zip进行解压缩
7. yum命令
该命令用于下载 RPM 包并且安装
yum list # 列出所有可安裝的软件清单命令
yum install <package_name> # 仅安装指定的软件命令
yum remove <package_name> # 删除软件包命令
yum clean packages # 清除缓存目录下的软件包
yum clean headers # 清除缓存目录下的 headers
注:正式使用时,联网环境修改yum国内源;离线环境挂载本地yum源
8. rz、sz命令
该命令用于Linux/Unix同Windows进行文件传输,rz用于从客户端上传文件到服务器,sz用于从服务端拿取文件,不过不适用大文件的传输,大文件传输使用XFtp或者WinSCP。
9. chmod命令
该命令用于控制用户对文件的权限
-c 若该文件权限确实已经更改,才显示其更改动作
-f 若该文件权限无法被更改也不要显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
who(用户类型)
u(user)文件所有者、g(group)文件所有者所在组、o(others)所有其他用户、a(all)所有用户
operator(操作符)
+(为指定的用户类型增加权限)、-(去除指定用户类型的权限)、=(设置指定用户权限的设置,即将用户类型的所有权限重新设置)
permission(权限)
r(read)读、w(write)写、x(execute)可执行
chmod a+r file.txt # 将文件设置为所有人都可读取
chmod g+w file.txt # 将文件设置为用户组的人都可写
chmod +rwx file.txt # 给所有用户增加读写执行权限
10. wget命令
该命令用于从Web下载文件,支持HTTP,HTTPS以及FTP协议
-O 以其他名称保存下载的文件
-P 将文件下载到指定目录
-c 断点续传
-b 在后台下载文件
wget http://nginx.org/download/nginx-1.6.2.tar.gz # 下载nginx的tar包
wget -O nginx.tar.gz http://nginx.org/download/nginx-1.6.2.tar.gz # 下载并重命名
wget -P /home/nginx http://nginx.org/download/nginx-1.6.2.tar.gz # 下载至指定目录
wget --ftp-user=<account> --ftp-password=<***> ftp://192.168.x.x/file/file.txt # 从ftp拉取文件
注:利用wget从ftp服务器上拉取文件,需用户名、密码、以及文件所在ftp地址路径
11. cat命令
该命令多用于查看文件的内容,或创建文件,或重定向文件的输出(个人缺乏实践)
cat nginx.conf # 查看整个nginx.conf文件内容
cat nginx.conf | more # 分页查看nginx.conf文件内容
cat nginx.conf | less # 分页且可查找nginx.conf文件的内容
cat -n nginx.conf # 查看文件内容并列出行号
more指令:空格显示下一页,回车显示下一行
less指令:上下键可以进行翻页,输入/加需要查询的内容可进行查询,如 /hello world
12. tail命令
该命令多用于查看或者监控日志
-n 指定行数
-f 动态显示文件末尾内容(常用于监控日志)
tail -f nohup.log # 动态显示log日志
tail -n 200 nohup.log # 显示log日志的后200行
13.find命令
例如:find / -type f -size +500M | xargs ls -Slh
find /
: 这是一个在根目录下查找文件的指令。/
表示搜索的起始目录,这里是根目录,也就是所有的目录和文件。-type f
: 这个参数表示只查找文件,不包括目录。-size +500M
: 这个参数表示查找大于200M(即200兆字节)的文件。|
: 这是管道符号,用于将前一个命令的输出作为后一个命令的输入。xargs ls -Slh
:ls -Slh
是一个列出文件详细信息的命令,其中:-S
:显示每个文件占用的磁盘空间大小。-l
:以长格式显示文件信息。-h
:以易读的方式显示文件大小(例如K,M,G)。
xargs
会从标准输入读取数据,并将读取的数据作为参数传递给后面的命令。在这个例子中,它会读取由find / -type f -size +200M |
产生的文件列表,然后将这些文件作为ls -Slh
的参数,列出这些文件的大小和详细信息。
14.grep命令
例如:grep -n -C 5 “xxxxx” catalina.out
grep
: 是一个在文件中查找指定文本的命令。-n
: 表示输出匹配行的行号,方便查看匹配的行数。-C 5
: 表示输出匹配行前后各5行内容,用于上下文分析。"xxxxx"
: 表示要查找的文本字符串,这里是查找包含“xxxxx”的文本行。catalina.out
: 是要查找的文件名。