路径
pwd:显示当前所在路径
[root@db test]# pwd
/root/data/self/test
cd:切换路径
使用:
cd ../ 切换到上一级 cd / 切换到根目录 cd ~ 切换到主目录
文件夹
mkdir:创建文件夹
# 创建名为test的文件夹
mkdir test
rmdir:删除空文件夹
rmdir test
rm:删除带文件的文件夹
# 删除test目录及其中含有的文件和文件夹
rm -rf test
-r:向下递归,不管有多少级目录,一并删除
-f:强行删除,不做任何提示mv:重命名 ```shell mv 原名 新名
将A移动到test下并重命名B
mv A /test/B
5. ls ll:所有文件查看
```shell
# 仅查看该目录下的文件夹及文件
[root@db data]# ls
hand self
# 查看该目录下的详细信息
[root@db data]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 5 23:24 hand
drwxr-xr-x. 2 root root 50 Jul 22 09:22 self
-l 列出目录或者文件的详细信息。比如权限、修改时间等等
-a 列出当前目录下所有文件,包括隐藏文件(已点开头的都是隐藏文件)
文件
- 创建文件
有多种方式可创建
touch 创建:
# 创建名为today的文件
touch today
vi/vim创建
这种方式是开启文本编辑,编辑完成后保存可生成文件
# 编辑要生成文件的名字
vim yess
保存:esc
+:
+ wq
cat创建
[root@db test]# cat > file.txt
随后输入文本需要存储的内容
ctrl + c保存
echo创建
[root@db test]# echo "something" > file1.txt
- mv:重命名文件
同文件夹
- vi/vim编辑文件
编辑文件内容
键盘i
标识写入开始
完成后不保存:esc
+ :
+ q
完成后保存:esc
+:
+ wq
强行退出:esc
+:
+ wq
+!
- 查看文件内容
cat:显示文件全部内容
cat filename
head:查看前几行
# 查看文件前2行内容
[root@db test]# head -n 2 file.txt
tail:查看文件实时数据
tail -f file.txt
- -f 循环读取
- -q 不显示处理信息
- -v 显示详细的处理信息
- -c<数目> 显示的字节数
- -n<行数> 显示文件的尾部 n 行内容
- —pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
- -q, —quiet, —silent 从不输出给出文件名的首部
- -s, —sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
如果直接 tail file.txt,则默认输出文件最后10行
tail -n +20 notes.log # 显示第20行到末尾
tail -n 100 /etc/cron #显示最后100行数据
tail -n -100 /etc/cron #除了前99行不显示外,显示第100行到末尾行
cp:复制
cp [选项]文件名或目录 目标地址
-R 拷贝目录及目录下所有目录和文件
cp a.txt b.txt 将a文件复制,且另命名为b文件(目录名)rm:删除文件
用法同文件夹
- find:文件查找
用法:find [路径] [选项]
常用选项有:
find . -name *.log 在当前目录查找以.log结尾的文件
find / -name log 在根目录查找log命名的目录
如果不输入路径,表示在当前路径下查找
- 传输
scp:linux系统下基于ssh登陆进行安全的远程文件拷贝命令
格式:
scp [参数] [原路径] [目标路径]
scp 本地用户名@IP地址 : 文件名1 远程用户名@IP地址 : 文件名2
# 本地复制到远程 需要输入密码
scp /home/space/music/1.txt root@192.168.52.136:/home/root/others/music
# 远程复制到本地
scp root@192.168.52.136:/home/root/others/music /home/space/music/1.txt
- chmod授权
-R 递归改变目录下所有子目录和文件的权限
数字方式:r=4 w=2 x=1
-rw-r--r--. 1 root root 10 Jul 22 09:38 file1.txt
-rw-r--r--. 1 root root 40 Jul 22 19:25 file.txt
-rw-r--r--. 1 root root 0 Jul 22 09:32 today
-rw-r--r--. 1 root root 7 Jul 22 09:41 yes
[root@db test]# chmod 777 yes
[root@db test]# ll
total 12
-rw-r--r--. 1 root root 10 Jul 22 09:38 file1.txt
-rw-r--r--. 1 root root 40 Jul 22 19:25 file.txt
-rw-r--r--. 1 root root 0 Jul 22 09:32 today
-rwxrwxrwx. 1 root root 7 Jul 22 09:41 yes
- 压缩/解压tar.ze
tar -czvf test.tar.gz test
将test文件夹压缩成test.tar.gz
tar -xzvf test.tar.gz
将test.tar.gz解压得到test文件夹
- 压缩/解压zip
zip –r test.zip test
将test文件夹压缩成test.zip,必须带r 才会把文件压缩进去,不然会生成一个空的文件夹
unzip test.zip
将test.zip文件夹解压
网络
网络配置
- ifconfig
通常是用来查看网卡的信息(比如 IP 地址、收发包及丢包情况等),以及配置网卡(如启停网卡,修改网卡 MTU,修改 IP、MAC 地址等)
- ip
查看网卡信息:ip addr
查看路由信息:ip route
连通性探测
- ping
通常用来判断网络的连通性和网速情况,偶尔用来查看域名的 IP
[root@db test]# ping www.baidu.com
PING www.baidu.com (36.152.44.96) 56(84) bytes of data.
64 bytes from www.baidu.com (36.152.44.96): icmp_seq=1 ttl=128 time=94.4 ms
64 bytes from www.baidu.com (36.152.44.96): icmp_seq=2 ttl=128 time=37.1 ms
64 bytes from www.baidu.com (36.152.44.96): icmp_seq=3 ttl=128 time=129 ms
64 bytes from www.baidu.com (36.152.44.96): icmp_seq=4 ttl=128 time=29.2 ms
64 bytes from www.baidu.com (36.152.44.96): icmp_seq=5 ttl=128 time=52.6 ms
使用 -c 参数可以指定发送数据包的个数, -w 指定最长等待时间, -I指定发送数据包的网卡。
ping 只能使用 ipv4,要使用 ipv6,可以用 ping6 命令
- telnet
通常用作远程登录,用来确定远程服务的状态,探测远程服务器的某个端口是否能访问,也可以探测本地的telnet IP 端口
网络连接
- netstat
用于查看当前网络的连接情况,能够查看所有的网络连接,包括 unix socket 等,也是集多种工具于一身的组合工具。最常用的就是用来检查本地系统都打开了哪些端口
[root@db test]# telnet localhost 22
bash: telnet: command not found...
[root@db test]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2214/sshd: root@pts
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 618/rpcbind
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1571/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1031/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1032/cupsd
tcp6 0 0 ::1:6010 :::* LISTEN 2214/sshd: root@pts
tcp6 0 0 :::111 :::* LISTEN 618/rpcbind
tcp6 0 0 :::22 :::* LISTEN 1031/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1032/cupsd
其他的一些常见用法还有:
- netstat -i 显示网络接口信息
- netstat -s 显示所有网络协议栈信息
- netstat -r 显示路由表信息
- netstat -at 列出所有 TCP 端口
- netstat -au 列出所有 UDP 端口
- netstat -lt 列出所有监听 TCP 端口的 socket
- netstat -lu 列出所有监听 UDP 端口的 socket
- netstat -lx 列出所有监听 UNIX 端口的 socket
- netstat -ap | grep ssh 找出程序运行的端口
- netstat -an | grep ‘:80’ 找出运行在指定端口的进程
- ss
ss 和 netstat 类似,也是用来查看网络连接统计的工具,它的输出也和 netstat 类似,甚至显示更多连接状态信息,它最大的优势在于比 netstat 快,在服务器维持上万个连接的情况下,这种优势就体现得比较明显。
常用参数:
- -l 查看处于LISTEN状态的连接
- -t 查看tcp连接
- -4 查看ipv4连接
- -n 不进行域名解析
通常使用 ss-tln4 查看本地监听的所有端口。
- lsof
lsof 可以列出当前系统打开文件、打开文件的进程、进程打开的端口。由于在 Linux 中一切皆文件,所以, lsof 也常用来统计网络相关的文件信息(使用 -i 选项),如 TCP/UDP/Unix socket 的统计信息
系统
- ps
用于显示当前进程的状态,类似于 windows 的任务管理器
常用指令:
ps -ef|grep 进程关键字
# 显示java进程
[root@db test]# ps -ef | grep java
root 2625 2222 0 22:43 pts/0 00:00:00 grep --color=auto java
- kill
常用于结束进程
# kill 进程ID
kill 29102
kill -9 29102 # 强行结束进程
最常用的信号是:
- 1 (HUP):重新加载进程。
- 9 (KILL):无条件推出。
- 15 (TERM):正常停止一个进程。
注意:linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因
….