命令
su
用于切换到另一个用户身份,通常是超级用户(root)。su命令可以用来在命令行下切换用户,也可以在脚本中使用。
语法:
su [选项] [用户名]
选项:
- -c:执行完命令后,立即退出su命令;
- -f:使用当前用户的环境变量;
- -l:使用目标用户的环境变量;
- -m:使用目标用户的环境变量,并且保持当前目录不变;
- -s:指定要使用的shell。
示例:
要切换到root用户,可以使用以下命令:
su -
在输入密码后,就可以切换到root用户了。如果要切换到其他用户,可以使用以下命令:
su - username
其中,username是要切换到的用户名。
su username 和 su - username 的区别
`su username` 是切换到指定的用户账号,但是不会改变当前的工作目录和环境变量。
`su - username` 是切换到指定的用户账号,并且同时切换到该用户的家目录,同时也会加载该用户的环境变量。 因此,使用 `su - username` 可以保证在切换用户后,能够获得该用户的完整环境,包括 PATH 等环境变量,以及当前的工作目录。
pwd
用于显示当前工作目录的绝对路径。
语法:
pwd [OPTION]
常用选项:
- `-L`:显示符号链接所指向的目录路径
- `-P`:显示实际路径,而非符号链接所指向的路径
示例:
$ pwd
/home/user
在上面的示例中,`pwd`命令显示当前工作目录的绝对路径为`/home/user`。
ls
ls命令 用于列出当前目录下的文件和子目录
常用的ls命令选项包括:
- -l:以长格式显示文件或目录的详细信息,包括文件类型、权限、所有者、大小、创建时间等。
- -a:显示所有文件和目录,包括以“.”开头的隐藏文件。
- -h:以人类可读的方式显示文件大小,如“1K”、“2M”等。
- -t:按照修改时间排序,最新修改的文件或目录排在最前面。
- -r:反向排序,按照字母顺序逆序排列文件或目录。
示例:
- ls:列出当前目录下的所有文件和目录。
- ls -l:以长格式显示当前目录下的所有文件和目录。
- ls -a:显示当前目录下的所有文件和目录,包括隐藏文件。
- ls -lh:以人类可读的方式显示当前目录下的所有文件和目录的大小。
- ls -lt:按照修改时间排序,显示当前目录下的所有文件和目录。 - ls -r:按照字母顺序逆序排列当前目录下的所有文件和目录。
ll
`ll`命令是`ls -l`的一个别名,用于显示当前目录下所有文件和子目录的详细信息,包括文件的权限、所有者、大小、修改时间等。
语法:
ll [选项] [文件或目录]
常用选项:
- `-a`:显示所有文件,包括隐藏文件。
- `-h`:以人类可读的方式显示文件大小。
- `-r`:反向排序。
- `-t`:按照修改时间排序。
示例:
要查看当前目录下所有文件和子目录的详细信息,可以使用以下命令:
ll
要查看当前目录下名为`test`的子目录的详细信息,可以使用以下命令:
ll test
mv
用于移动或重命名文件或目录。
语法:
mv [选项] 源文件或目录 目标文件或目录
其中,选项可以是:
- -f:强制移动或重命名,如果目标文件或目录已存在则覆盖。
- -i:交互式移动或重命名,如果目标文件或目录已存在则询问是否覆盖。
- -u:更新目标文件或目录,如果源文件或目录比目标文件或目录新则执行移动或重命名。
示例:
1. 将文件file1.txt移动到目录dir1中:
mv file1.txt dir1/
2. 将文件file1.txt重命名为file2.txt:
mv file1.txt file2.txt
3. 将目录dir1重命名为dir2:
mv dir1/ dir2/
4. 将目录dir1及其所有子目录和文件移动到目录dir2中:
mv dir1/ dir2/
注意:如果目标文件或目录已存在,则默认情况下mv命令不会覆盖,需要使用选项-f或-i来强制覆盖或询问。
netstat
用于显示网络状态信息,可以查看网络连接、路由表、接口状态等。
常用的netstat命令选项:
1. netstat -a:显示所有连接和监听端口
2. netstat -t:显示TCP连接
3. netstat -u:显示UDP连接
4. netstat -n:以数字形式显示地址和端口号
5. netstat -p:显示与进程相关的信息
6. netstat -r:显示路由表
7. netstat -s:显示网络统计信息
8. netstat -l:仅显示本地连接,不显示远程连接
示例:
要查看所有TCP连接的详细信息,可以使用命令:netstat -atn。
要查看与进程相关的TCP连接信息,可以使用命令:netstat -tp。
查看网络连接和端口占用情况,可以使用命令: netstat -nlp 8081。
ps
用于查看当前系统中正在运行的进程信息。
下面是一些常用的ps命令选项:
1. ps -ef:列出所有进程信息,包括进程的详细信息和父进程ID。
2. ps -aux:列出所有进程信息,包括进程的详细信息和用户ID。
3. ps -e:列出所有正在运行的进程。
4. ps -f:以完整格式列出进程信息,包括进程的UID、PID、PPID、CPU使用率、内存使用率等。
5. ps -l:以长格式列出进程信息,包括进程的UID、PID、PPID、CPU使用率、内存使用率等。
6. ps -t:列出指定终端上运行的所有进程。
7. ps -p:列出指定进程ID的详细信息。
8. ps -H:列出进程树,显示进程之间的关系。
9. ps -C:列出指定命令的进程信息。
10. ps -N:列出不符合指定条件的进程信息。
11. ps -M:显示进程的内存映像信息。
12. ps -G:列出指定组ID的进程信息。
13. ps -U:列出指定用户ID的进程信息。
grep
是一种文本搜索工具,用于在文件中查找特定的字符串模式。
以下是一些常见的grep命令用法:
1. 在文件中查找一个字符串:
grep "string" filename
2. 查找多个文件中的字符串:
grep "string" file1 file2 file3
3. 查找一个目录中的所有文件中的字符串:
grep "string" directory/*
4. 查找并显示匹配行的行号:
grep -n "string" filename
5. 查找并显示不匹配的行:
grep -v "string" filename
6. 使用正则表达式进行高级搜索:
grep -E "regex" filename
7. 查找并显示匹配字符串前后的几行:
grep -A num "string" filename
# 显示匹配行及其后num行 grep -B num "string" filename
# 显示匹配行及其前num行 grep -C num "string" filename
# 显示匹配行及其前后各num行
以上是一些常见的grep命令用法,还有更多高级用法可以通过`man grep`命令查看。
find
用于在指定的目录下查找文件或目录。它可以根据多种条件来查找文件,如文件名、文件类型、文件大小、文件权限等等。
下面是一些常用的find命令示例:
1. 查找当前目录下所有的文件和目录:
find .
2. 查找指定目录下所有的文件和目录:
find /path/to/directory
3. 查找指定目录下以某个文件名开头的文件:
find /path/to/directory -name "filename*"
4. 查找指定目录下以某个文件名结尾的文件:
find /path/to/directory -name "*filename"
5. 查找指定目录下包含某个关键字的文件:
find /path/to/directory -name "*keyword*"
6. 查找指定目录下的所有目录:
find /path/to/directory -type d
7. 查找指定目录下的所有文件:
find /path/to/directory -type f
8. 查找指定目录下大于某个文件大小的文件:
find /path/to/directory -size +10M
9. 查找指定目录下小于某个文件大小的文件:
find /path/to/directory -size -10M
10. 查找指定目录下最近修改过的文件:
find /path/to/directory -mtime -7
以上是一些常用的find命令示例,更多用法可以查看find命令的帮助文档。
vim
Vim是Linux下最常用的文本编辑器之一。
以下是一些常用的Vim命令:
1. 打开文件:vim filename
2. 保存文件:按下Esc键,然后输入:wq
3. 不保存文件:按下Esc键,然后输入:q!
4. 光标移动:h(左)、j(下)、k(上)、l(右)
5. 搜索:按下Esc键,然后输入/要搜索的内容
6. 替换:按下Esc键,然后输入:%s/要替换的内容/替换后的内容/g
7. 撤销:按下Esc键,然后输入:u
8. 重做:按下Esc键,然后输入:Ctrl+r
9. 复制:按下Esc键,然后输入yy
10. 剪切:按下Esc键,然后输入dd
11. 粘贴:按下Esc键,然后输入p
以上是一些常用的Vim命令,还有很多其他的命令可以使用。
kill
用于向进程发送信号,以控制进程的行为。kill命令可以根据进程ID或进程名来指定要发送信号的进程。
下面是一些常用的kill命令选项:
- -s:指定要发送的信号类型,如-9表示强制终止进程。
- -l:列出所有可用的信号类型。
- -u:指定要发送信号的用户。
- -p:指定要发送信号的进程ID。
示例:
要终止进程ID为1234的进程,可以使用以下命令:
kill 1234
如果要强制终止该进程,可以使用以下命令:
kill -9 1234
如果要终止所有属于用户tom的进程,可以使用以下命令:
kill -u tom
tail
tail命令用于查看文件的末尾内容,默认情况下显示文件的最后10行。
以下是tail命令的一些常用选项:
- -f:实时跟踪文件的变化,显示新添加到文件末尾的内容。
- -n:指定要显示的行数,例如-n 20表示显示最后20行。
- -c:显示最后指定字节数的内容,例如-c 100表示显示最后100个字节。
- -q:禁止显示文件名。
- -s:指定输出行之间的时间间隔。
示例:
要查看文件test.log的最后20行内容,可以使用以下命令:
tail -n 20 test.log
要实时跟踪文件test.log的变化,可以使用以下命令:
tail -f test.log
nohup
一种使命令在后台运行的方法,并且即使用户退出终端,命令也能够继续运行的工具。
nohup命令的语法如下:
nohup command &
其中,command是要运行的命令,&符号表示将命令放到后台运行,并且不受当前终端的控制。 使用nohup命令可以避免在运行长时间命令时,由于网络中断或者用户退出终端等原因,导致命令被中断的情况。nohup命令会将命令输出重定向到一个名为nohup.out的文件中,可以通过查看该文件来了解命令的执行情况。
示例:
后台运行一个Java程序,并将程序输出重定向到一个名为root.log的文件中
nohup java -jar ../demo.jar >../root.log 2>&1 &
- nohup:表示不挂断地运行命令,即使终端关闭或用户注销也不会停止该命令的执行。
- java -jar ../demo.jar:表示运行一个名为demo.jar的Java程序。
- >../root.log:表示将程序输出重定向到一个名为root.log的文件中,>表示覆盖原有文件,如果要追加到原有文件末尾,可以使用>>。
- 2>&1:表示将标准错误输出重定向到标准输出,即将错误信息也写入root.log文件中。
- &:表示将该命令放到后台运行。
chown
chown命令用于改变文件或目录的所有者。
chown命令的语法如下:
chown [选项] [所有者][:组] 文件或目录
其中,选项包括:
- `-c`:只在文件或目录的所有者发生变化时才显示信息;
- `-f`:不显示错误信息;
- `-h`:对符号链接文件解除链接后更改其所有者;
- `-R`:递归更改指定目录及其子目录中的所有文件和目录的所有者;
- `-v`:显示详细的操作信息。
示例:
1. 将文件file.txt的所有者更改为user1:
chown user1 file.txt
2. 将目录dir1及其子目录中的所有文件和目录的所有者更改为user1:
chown -R user1 dir1
3. 将文件file.txt的所有者更改为user1,组更改为group1:
chown user1:group1 file.txt