目录
su、password、exit、who、reboot shutdown
四部曲
whoami 我是谁
pwd 我在哪
ls 我周围有什么
cd 我要去哪里
cd
cd 回到根目录
cd ~ 同上
cd /home/用户名 同上
cd . 切换到当前目录
cd .. 切换到上一级
cd - 切换到刚所在目录
ls
ls -l 简写:ll,详情
ls -a 全部,包括隐藏文件
ls -h 人性化显示
ls -i 查看文件的i节点
通配符:
* 任意多个字符
? 任意一个字符
[abc] a b c中任意一个
[a-z] a-z中任意一个
ls a*:查找文件名为a*的文件
clear
清屏,快捷键:Ctrl + L
并非是删除,仅仅是在当前屏幕不显示而已
mkdir
mkdir创建一个新目录
参数-p可递归创建目录
新建目录的名称不能与当前目录中已有的目录或文件重名,并且创建者必须对当前目录具有写权限
[root@localhost 桌面]# ll 总用量 12 drwxr-xr-x 2 root root 4096 12月 16 23:28 config -rw-r--r-- 1 root root 991 2月 7 19:56 dump.rdb drwxr-xr-x 3 root root 4096 12月 26 00:35 shell [root@localhost 桌面]# mkdir a b c [root@localhost 桌面]# mkdir a/b [root@localhost 桌面]# mkdir a/b/c [root@localhost 桌面]# mkdir b/ss/dd/gg -p [root@localhost 桌面]#
使用场景:
创建一个目录
创建多个目录
指定路径创建目录
在不存在的目录创建目录(a不存在,在a下创建b)
touch
创建一个 touch 1.txt
- 创建多个 touch 1 2 3
打开文档:gedit 1.txt
rm
rm -irf -i 以进行交互方式执行
-r 递归的删除目录下的内容,删除文件夹时必须加此参数
-f 强制删除,忽略不存在的文件,无需提示
cp
文件 --->文件
[root@localhost test]# mkdir a b c
[root@localhost test]# touch 1 2 3
[root@localhost test]# ll
总用量 12
-rw-r--r-- 1 root root 0 2月 8 03:29 1
-rw-r--r-- 1 root root 0 2月 8 03:29 2
-rw-r--r-- 1 root root 0 2月 8 03:29 3
drwxr-xr-x 2 root root 4096 2月 8 03:29 a
drwxr-xr-x 2 root root 4096 2月 8 03:29 b
drwxr-xr-x 2 root root 4096 2月 8 03:29 c
[root@localhost test]# cp 1 1
cp: "1" 与"1" 为同一文件
[root@localhost test]# cp 1 2
cp:是否覆盖"2"? n
[root@localhost test]# cp 1 1.txt
[root@localhost test]# ll
总用量 12
-rw-r--r-- 1 root root 0 2月 8 03:29 1
-rw-r--r-- 1 root root 0 2月 8 03:30 1.txt
-rw-r--r-- 1 root root 0 2月 8 03:29 2
-rw-r--r-- 1 root root 0 2月 8 03:29 3
drwxr-xr-x 2 root root 4096 2月 8 03:29 a
drwxr-xr-x 2 root root 4096 2月 8 03:29 b
drwxr-xr-x 2 root root 4096 2月 8 03:29 c
[root@localhost test]#文件 --->目录
[root@localhost test]# cp 1 a # 复制文件1到目录a中
[root@localhost test]# ll a
总用量 0
-rw-r--r-- 1 root root 0 2月 8 03:37 1
[root@localhost test]# cp 1 a/1.txt # 复制文件1到目录a并重命名为1.txt
[root@localhost test]# ll a
总用量 0
-rw-r--r-- 1 root root 0 2月 8 03:37 1
-rw-r--r-- 1 root root 0 2月 8 03:37 1.txt
[root@localhost test]# cp 1 a/b/c # 如果是cp a/b(b目录不存在),就等价于重命名拷贝了
cp: 无法创建普通文件"a/b/c": 没有那个文件或目录
[root@localhost test]#
- 目录的复制和文件类似
- cp的重命名严格来说,并不能叫重命名,因为原文件还是存在,即存在了两份同样的文件或目录,只是拥有不同的名字而已
- 服务器之间的拷贝:scp -r xx root@ip:xx
mv
可用于重命名
和cp类似
重定向
echo显示信息到终端
> />>:将信息重定向到文件,>内容会被覆盖,>>内容追加
cat
- 查看文件信息
- 合并
[root@localhost test]# ll
总用量 0
[root@localhost test]# touch 1 2
[root@localhost test]# gedit 1
[root@localhost test]# gedit 2
[root@localhost test]# cat 1 2 # 查看多个文件信息
hello
hehe
[root@localhost test]# cat 1 2 >> 12 # 合并
[root@localhost test]# cat 12
hello
hehe
[root@localhost test]#
more
- more 1分屏查看
- b上一页,空格下一页,q退出
管道 |
将前面的内容输出让后面的命令处理
ln
ln -s [原文件] [目标文件],-s,创建软链接
硬链接:
硬链接相当于同一个存储空间两个不同的接入点,一个教室两个不同的门,是同样的存储空间,所以,硬链接不能够跨分区,相当于不在同一栋楼
缺点:
- 硬链接文件太过隐蔽,除了i节点这个标志之外,很难区分它到底是不是硬链接
- 限制比较多,既不能跨分区,也不能针对目录使用
[root@localhost 桌面]# rm -rf test/* [root@localhost 桌面]# cd test [root@localhost test]# mkdir a b c [root@localhost test]# touch 1 2 3 [root@localhost test]# ll 总用量 12 -rw-r--r-- 1 root root 0 2月 8 18:42 1 -rw-r--r-- 1 root root 0 2月 8 18:42 2 -rw-r--r-- 1 root root 0 2月 8 18:42 3 drwxr-xr-x 2 root root 4096 2月 8 18:42 a drwxr-xr-x 2 root root 4096 2月 8 18:42 b drwxr-xr-x 2 root root 4096 2月 8 18:42 c [root@localhost test]# ln 1 a [root@localhost test]# ll 总用量 12 -rw-r--r-- 2 root root 0 2月 8 18:42 1 -rw-r--r-- 1 root root 0 2月 8 18:42 2 -rw-r--r-- 1 root root 0 2月 8 18:42 3 drwxr-xr-x 2 root root 4096 2月 8 18:43 a drwxr-xr-x 2 root root 4096 2月 8 18:42 b drwxr-xr-x 2 root root 4096 2月 8 18:42 c [root@localhost test]# ll a 总用量 0 -rw-r--r-- 2 root root 0 2月 8 18:42 1 [root@localhost test]#
软链接:
软链接特征:
- 类似windows快捷方式
- 软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
- lrwxrwxrwx l 软链接,软链接文件权限都为rwxrwxrwx,虽然它权限是777,但真正的权限还是取决于原文件
- 修改任意文件,另一个都改变
- 删除原文件,软链接不能使用
文本搜索grep
grep [选项] 字符串 文件名/目录
选项:
-i 忽略大小写
-v 排除指定字符串
-n 显示行号
如果是文件,则在文件中找;
如果是目录,则是在该目录下所有的文件中找,需要加选项-r
[root@localhost test]# gedit 1 [root@localhost test]# gedit 2 [root@localhost test]# grep 'ww' 1 nihao ww ww [root@localhost test]# grep -n 'ww' 1 2:nihao ww 3:ww [root@localhost test]# grep -n 'ww' . grep: .: 是一个目录 [root@localhost test]# grep -nr 'ww' . ./2:2:nihao ww ./2:3:ww ./1:2:nihao ww ./1:3:ww [root@localhost test]#
grep和find的区别:
- grep命令:在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配,即模糊匹配
- find命令:在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
grep常用正则表达式 参数 含义 ^a 行首,搜索以m开头的行 ke$ 行尾,搜索以ke结束的行 [Ss]ignal[Ll] 匹配[]中一系列字符中的一个 . (点)匹配一个非换行符的字符
查找文件find
find 目录 -name key # 通过文件名称查找文件
key可以通配符,*txt
tar
which、whereis
查看命令位置
[root@localhost test]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@localhost test]# whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
[root@localhost test]
chmod
如果想递归所有目录加上相同权限,需要加上参数“-R”
su、passwd、exit、who、reboot shutdown、ifconfig
- 切换用户,如:su root
- 更改密码,passwd
- 退出登录账户,exit
如果是图形界面,退出当前终端;如果是使用ssh远程登录,退出登录账户;如果是切换后的登录用户,退出则回 上一个登录帐号
- who,查看有哪些连接,终端和远程
pkill -kill -t pts/3
- reboot shutdown,重启和关闭
- ifconfig,linux查看端口号(ipconfig windows查看端口号)
ps
ps命令:列出系统中当前运行的进程(程序),会显示进行很高的很多信息,重点关注PID(进程号)和CMD(该进程所运行的命令)这两个信息
常用命令:
ps -aux # 以用户为主的格式显示所有进程
ps -aux | grep firefox # 根据程序名称查看进程信息
ps命令:显示瞬间进程的状态
top命令:动态连续
杀进程:kill pid、kill -9 pid(强制杀死)
netstat
netstat 命令显示各种网络相关信息,常用于查看软件打开的端口信息
netstat -tnulp # 显示系统打开的所有端口
netstat -tnulp | grep mysql
查看系统监听的端口:lsof
lsof(list open files)是列出当前系统打开文件的工具,可用于查看软件打开的端口信息
lsof -i # 显示系统打开的所有端口
lsof -i:3306 # 根据端口号显示对应的程序
head
head -10 1.txt
tail
tail -10 1.txt
实时监控文件变化:
- 不停的想文件写入内容:ping www.baidu.com >temp.txt
- 实时监控:tail -f temp.txt