路径

  1. pwd:显示当前所在路径

    1. [root@db test]# pwd
    2. /root/data/self/test
  2. cd:切换路径

使用:

cd ../ 切换到上一级 cd / 切换到根目录 cd ~ 切换到主目录

文件夹

  1. mkdir:创建文件夹

    1. # 创建名为test的文件夹
    2. mkdir test
  2. rmdir:删除空文件夹

    1. rmdir test
  3. rm:删除带文件的文件夹

    1. # 删除test目录及其中含有的文件和文件夹
    2. rm -rf test

    -r:向下递归,不管有多少级目录,一并删除
    -f:强行删除,不做任何提示

  4. mv:重命名 ```shell mv 原名 新名

将A移动到test下并重命名B

mv A /test/B

  1. 5. ls ll:所有文件查看
  2. ```shell
  3. # 仅查看该目录下的文件夹及文件
  4. [root@db data]# ls
  5. hand self
  6. # 查看该目录下的详细信息
  7. [root@db data]# ll
  8. total 0
  9. drwxr-xr-x. 2 root root 6 Mar 5 23:24 hand
  10. drwxr-xr-x. 2 root root 50 Jul 22 09:22 self

-l 列出目录或者文件的详细信息。比如权限、修改时间等等
-a 列出当前目录下所有文件,包括隐藏文件(已点开头的都是隐藏文件)

文件

  1. 创建文件

有多种方式可创建
touch 创建:

  1. # 创建名为today的文件
  2. touch today

vi/vim创建
这种方式是开启文本编辑,编辑完成后保存可生成文件

  1. # 编辑要生成文件的名字
  2. vim yess

保存:esc+:+ wq
cat创建

  1. [root@db test]# cat > file.txt
  2. 随后输入文本需要存储的内容
  3. ctrl + c保存

echo创建

  1. [root@db test]# echo "something" > file1.txt
  1. mv:重命名文件

同文件夹

  1. vi/vim编辑文件

编辑文件内容
键盘i标识写入开始
完成后不保存:esc+ :+ q
完成后保存:esc+:+ wq
强行退出:esc+:+ wq+!

  1. 查看文件内容

cat:显示文件全部内容

  1. cat filename

head:查看前几行

  1. # 查看文件前2行内容
  2. [root@db test]# head -n 2 file.txt

tail:查看文件实时数据

  1. 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行

  1. tail -n +20 notes.log # 显示第20行到末尾
  2. tail -n 100 /etc/cron #显示最后100行数据
  3. tail -n -100 /etc/cron #除了前99行不显示外,显示第100行到末尾行
  1. cp:复制

    1. cp [选项]文件名或目录 目标地址

    -R 拷贝目录及目录下所有目录和文件
    cp a.txt b.txt 将a文件复制,且另命名为b文件(目录名)

  2. rm:删除文件

用法同文件夹

  1. find:文件查找

用法:find [路径] [选项]
常用选项有:
find . -name *.log 在当前目录查找以.log结尾的文件
find / -name log 在根目录查找log命名的目录
如果不输入路径,表示在当前路径下查找

  1. 传输

scp:linux系统下基于ssh登陆进行安全的远程文件拷贝命令
格式:
scp [参数] [原路径] [目标路径]
scp 本地用户名@IP地址 : 文件名1 远程用户名@IP地址 : 文件名2

  1. # 本地复制到远程 需要输入密码
  2. scp /home/space/music/1.txt root@192.168.52.136:/home/root/others/music
  3. # 远程复制到本地
  4. scp root@192.168.52.136:/home/root/others/music /home/space/music/1.txt
  1. chmod授权

-R 递归改变目录下所有子目录和文件的权限
数字方式:r=4 w=2 x=1

  1. -rw-r--r--. 1 root root 10 Jul 22 09:38 file1.txt
  2. -rw-r--r--. 1 root root 40 Jul 22 19:25 file.txt
  3. -rw-r--r--. 1 root root 0 Jul 22 09:32 today
  4. -rw-r--r--. 1 root root 7 Jul 22 09:41 yes
  5. [root@db test]# chmod 777 yes
  6. [root@db test]# ll
  7. total 12
  8. -rw-r--r--. 1 root root 10 Jul 22 09:38 file1.txt
  9. -rw-r--r--. 1 root root 40 Jul 22 19:25 file.txt
  10. -rw-r--r--. 1 root root 0 Jul 22 09:32 today
  11. -rwxrwxrwx. 1 root root 7 Jul 22 09:41 yes
  1. 压缩/解压tar.ze

tar -czvf test.tar.gz test
将test文件夹压缩成test.tar.gz

tar -xzvf test.tar.gz
将test.tar.gz解压得到test文件夹

  1. 压缩/解压zip

zip –r test.zip test
将test文件夹压缩成test.zip,必须带r 才会把文件压缩进去,不然会生成一个空的文件夹
unzip test.zip
将test.zip文件夹解压

网络

网络配置

  1. ifconfig

通常是用来查看网卡的信息(比如 IP 地址、收发包及丢包情况等),以及配置网卡(如启停网卡,修改网卡 MTU,修改 IP、MAC 地址等)

  1. ip

查看网卡信息:ip addr
查看路由信息:ip route

连通性探测

  1. ping

通常用来判断网络的连通性和网速情况,偶尔用来查看域名的 IP

  1. [root@db test]# ping www.baidu.com
  2. PING www.baidu.com (36.152.44.96) 56(84) bytes of data.
  3. 64 bytes from www.baidu.com (36.152.44.96): icmp_seq=1 ttl=128 time=94.4 ms
  4. 64 bytes from www.baidu.com (36.152.44.96): icmp_seq=2 ttl=128 time=37.1 ms
  5. 64 bytes from www.baidu.com (36.152.44.96): icmp_seq=3 ttl=128 time=129 ms
  6. 64 bytes from www.baidu.com (36.152.44.96): icmp_seq=4 ttl=128 time=29.2 ms
  7. 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 命令

  1. telnet

通常用作远程登录,用来确定远程服务的状态,探测远程服务器的某个端口是否能访问,也可以探测本地的
telnet IP 端口

网络连接

  1. netstat

用于查看当前网络的连接情况,能够查看所有的网络连接,包括 unix socket 等,也是集多种工具于一身的组合工具。最常用的就是用来检查本地系统都打开了哪些端口

  1. [root@db test]# telnet localhost 22
  2. bash: telnet: command not found...
  3. [root@db test]# netstat -lnpt
  4. Active Internet connections (only servers)
  5. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  6. tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2214/sshd: root@pts
  7. tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 618/rpcbind
  8. tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1571/dnsmasq
  9. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1031/sshd
  10. tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1032/cupsd
  11. tcp6 0 0 ::1:6010 :::* LISTEN 2214/sshd: root@pts
  12. tcp6 0 0 :::111 :::* LISTEN 618/rpcbind
  13. tcp6 0 0 :::22 :::* LISTEN 1031/sshd
  14. 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’ 找出运行在指定端口的进程
  1. ss

ss 和 netstat 类似,也是用来查看网络连接统计的工具,它的输出也和 netstat 类似,甚至显示更多连接状态信息,它最大的优势在于比 netstat 快,在服务器维持上万个连接的情况下,这种优势就体现得比较明显。
常用参数:

  • -l 查看处于LISTEN状态的连接
  • -t 查看tcp连接
  • -4 查看ipv4连接
  • -n 不进行域名解析

通常使用 ss-tln4 查看本地监听的所有端口。

  1. lsof

lsof 可以列出当前系统打开文件、打开文件的进程、进程打开的端口。由于在 Linux 中一切皆文件,所以, lsof 也常用来统计网络相关的文件信息(使用 -i 选项),如 TCP/UDP/Unix socket 的统计信息

系统

  1. ps

用于显示当前进程的状态,类似于 windows 的任务管理器
常用指令:

  1. ps -ef|grep 进程关键字
  2. # 显示java进程
  3. [root@db test]# ps -ef | grep java
  4. root 2625 2222 0 22:43 pts/0 00:00:00 grep --color=auto java
  1. kill

常用于结束进程

  1. # kill 进程ID
  2. kill 29102
  3. kill -9 29102 # 强行结束进程

最常用的信号是:

  • 1 (HUP):重新加载进程。
  • 9 (KILL):无条件推出。
  • 15 (TERM):正常停止一个进程。

注意:linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因

….