一、文件操作
1、切换目录
cd ~ #进入当前用户的home目录
cd - #进入上次目录
cd .. #进入上一级目录
cd . #进入当前目录
2、查看目录内容
ls -ltr #排序当前目录下的文件通过最后修改时间
pwd #显示工作目录所在位置(显示绝对路径)
mkdir #创建目录,-p 递归创建,用于创建多级目录
cp #复制文件或目录(复制后改名)
语法:cp [选项] [原文件或目录] [目标目录] [复制后改名为]
-r #复制目录,将指定目录下的所有文件与子目录一并处理
-f #强行复制文件或目录,已存在会覆盖
-i #覆盖既有的文件前先询问用户
-p #连带文件属性复制
-d #若源文件是链接文件,则复制链接属性
-a #相当于-pdr
mv #剪切或改名,如果原文件和目标目录在同一目录下,则为改名,否则为剪切
rm #删除文件或目录
rm -rf [文件或目录] #选项:-r 删除目录;-f 强制执行
rmdir #删除空目录 -p删除指定目录树;-v输出诊断学习
二、查找文件
1、find /home/logs -mtime +10 -name "*.*"
(1)命令参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
(2)命令选项:
-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group 按照文件所属的组来查找文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件
-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项
(3)实例
find -size +1000c #查找大于 1K 的文件
find . -f -name 'passwd*' -exec grep "pkg" {} \; #当前目录下查找文件名以 passwd 开头,内容包含 "pkg" 字符的文件
find /home/logs -mtime +10 -name "*.*" -exec rm -rf {} \; #清理的目录 /home/logs 10天前的文件
2、locate+updatedb
updatedb 命令用来创建或更新 slocate/locate 命令所必需的数据库文件
locate your_file_name
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
3、grep
grep test file*
grep -r update /etc/acpi #以递归的方式查找符合条件的文件
grep -v test test #通过"-v"参数可以打印出不符合条件行的内容。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
grep 'pattern\|pattern2' filename #OR操作符
grep -E 'pattern1|pattern2' filename ##OR操作符 grep -E选项用于扩展正则表达式。如果使用带-E选项的grep命令,则只需使用|为条件OR来分隔多个模式。
grep -E 'pattern1.*pattern2' filename # Grep AND
4、which
whereis [-bmsu] dirname/filename #文件搜索。速度比较快,因为它只搜索几个特定的目录。
三、服务器操作
1、查看服务器信息
curl icanhazip.com #查询本机公网IP
netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l #统计 TCP连接数 命令
grep 'physical id' /proc/cpuinfo | sort -u | wc -l #查看 CPU 物理个数
grep 'core id' /proc/cpuinfo | sort -u | wc -l #查看 CPU 核心数量
dmidecode -s processor-version #查看 CPU 型号
cat /proc/cpuinfo #查看 CPU 的详细信息
cat /proc/cpuinfo |grep "processor"|wc -l #查看逻辑CPU的个数
free -t # 命令以字节为单位显示可用内存、总内存和交换内存信息。
df -h #查看磁盘使用情况
du -sh ./logs #查看logs文件大小
ps -l #查看自己的进程
pstree -A #查看所有进程树
ps aux | grep threadx #查看特定的进程
netstat -anp | grep port #查看占用端口的进程
2、查看服务器信息 top 按 1 查询逻辑cpu详情
3、验证UDP端口是否打开,yum install nmap-ncat.x86_64
nc -vuz 112.13.106.152 5061
nc -lu 5068 开启UDP 5060服务 输入字符串按回车
nmap -sU 192.168.1.211 -p 5068 -Pn //探测UDP 5060 端口
4、验证TCP端口是否打开 yum install nmap
nc -l 5068 开启tcp5060服务 输入字符串按回车
nmap 192.168.1.211 -p 5061 //发送tcp
5、输出到文件
linux 命令输出保存为文件的三种方式:
(1)ls >2.txt 将ls命令直接保存到home文件夹下的2.txt,命令窗口无显示
> #若存在则覆盖
>> #若存在则追加
(2)ls | tee 2.txt 也是直接保存在了home文件夹下的2.txt,命令窗口有显示
(3)script -a 1.txt ... exit
说明:scrip可以记录终端的所有输出到相应的文件中,启动script时没有指定文件名,它会自动记录到当前目录下一个名为 typescript的文件中。-a参数 指定文件名
用exit退出script时,实际上script相当于启动了一个shell。
四、压缩和解压文件
1、tar操作
tar -zxvf aa.tar.gz #解压文件
tar -zcvf aa.tar.gz /home/aa #压缩aa文件夹为aa.tar.gz文件
2、zip操作
安装: yum install zip yum install unzip
unzip test.zip -d /tmp/ #解压的文件test.zip -d 指定解压路径
zip -q -r html.zip /home/html #将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip
zip -q -r html.zip * #如果在我们在 /home/html 目录下,可以执行以下命令
zip -dv cp.zip a.c #从压缩文件 cp.zip 中删除文件 a.c
五、查看文件操作命令
1、more 文件内容或输出查看工具
#more显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比;
2、查看文件内容工具:
less 对文件或其它输出进行分页显示的工具:
b #向后翻一页
d #向后翻半页
h #显示帮助界面
Q #退出less命令
u #向前滚动半页
y #向前滚动一行
空格键 #滚动一行
回车键 #滚动一页
3、cat 后面跟要查看的文件,文件内容全部输出到屏幕
语法:#cat [选项] 文件名
选项有:-n显示每行的编号; -s显示连续空行为一行; -b显示每行非空白行编号
4、#head 工具,显示文件内容的前几行
语法:#head -n [行数值] [文件名];
比如显示/etc/profile的前10行内容,应该是:head -n 10 /etc/profile
5、#tail 工具,显示文件内容的最后几行
语法:#tail -n [行数值] [文件名]
比如显示/etc/profile的最后5行内容,应该是:tail -n 5 /etc/profile
tail -f /var/log/messages #参数-f使tail不停地去读最新的内容,这样有实时监视的效果 用Ctrl+c来终止!
6、#grep 工具查询字符串
语法:#grep[关键字] [查找范围]
7、wc 命令
wc text.txt #查找文件的 行数 单词数 字节数 文件名
8、scp 命令
scp #命令使用端口号 4588
scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
scp -r /home/space/music/ www.runoob.com:/home/root/others/
cp –r test/ newtest #将当前目录 test/ 下的所有文件复制到新目录
六、系统挂载与卸载
1、系统挂载
(1)sudo fdisk -l #插入u盘,输入下面的命令查看是否连接了u盘,这个命令是用来查看硬盘信息的。
(2)输入#mount命令查看文件系统挂载信息
(3)sudo mount /dev/sdb1 usb #输入下面的命令进行u盘挂载。下面的命令是将u盘挂载到usb文件夹下。
2、卸载文件系统
sudo umount /dev/sdb1 #卸载文件系统,就是将文件系统从挂载点移走。输入下面的命令卸载文件系统。
3、挂载
mkfs -t xfs /dev/sdb1 #在第一个分区上创建xfs类型的文件系统:#
mkdir /sdb1 #创建挂载点:
mount /dev/sdb1 /mnt/sdb1 #然后挂载文件系统:
mount #查看挂载的文件最后两行
df #查看磁盘空间占用情况
七、关机和重启
who #在关机前需要先使用 who 命令查看有没有其它用户在线。
sync #为了加快对磁盘文件的读写速度,位于内存中的文件数据不会立即同步到磁盘,因此关机之前需要先进行 sync 同步操作。
reboot #表示立即重启
shutdown #关机
shutdown [-krhc] 时间 [信息]
-k : 不会关机,只是发送警告信息,通知所有在线的用户
-r : 将系统的服务停掉后就重新启动
-h : 将系统的服务停掉后就立即关机
-c : 取消已经在进行的 shutdown
八、vim编辑
vim的模式:命令模式、输入模式、末行模式
进入vim的命令模式:#vi [文件名]
1、命令模式(任何模式下按esc都可进入)
(1)光标的定位
shift+: 进入低行模式,然后输入 set nu 就可以在前面加上行号,set nonu 就可以取消行号:
GG #跳到最后一行的开头
gg #回到第一行的开头;
nG 或者: n #跳到指定的行
$ #移至到当前光标所在的行尾
0 #移至到当前光标所在
补充:b 往前找,w 往后找,并且每次跳过一个单词;
hjkl 对应着左移、下移、上移、右移;也可以用上下左右键来移动;
L 是移动到本界面的最后一行;
(2)字符检索
/str #向光标之下寻找一个名称为 str 的字符串
?word #向光标之上寻找一个字符串名称为 word 的字符串。
n #例如 /vbird 后,按下 n 则表示『向下』搜寻 vbird
N #例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird
(3)文本的复制粘贴和删除
dd #删除游标所在的那一整行(常用),;然后 p 就可以复制到当前光标处的下一行,P 复制到当前光标处的上一行
ndd # n为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用)
yy #复制游标所在的那一行(常用),然后 p 就可以复制到当前光标处的下一行,P 复制到当前光标处的上一行
nyy # n为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
x, X #在一行字当中,x 为向后删除一个字符 (常用)
nx #n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符,『10x』。
(4)撤销和重复
u #复原前一个动作(常用)
. #重复前一个动作(常用)
(5)保存和退出
ZZ #保存和退出
ZQ #不保存并退出
w! #保存修改
:q 退出vim
:q! #不保存修改退出
:wq! #保存修改并退出;或者用 x!,在或者用 ESC+shift+ZZ
:w #文件名;表示把当前文件的内容另存到指定文件里;相当于备份。
2、进入到输入模式的命令
i #在当前位置插入文本
I #在行首插入文本
a #在当前位置追加文本
A #在行尾追加文本
O #在光标所在行上面新建一行等待输入
o #在光标所在行下面新建一行等待输入
3、末行模式(在命令模式下按Shift+“:”)
:/str/ #光标向后移动到被搜索的字符串str的位置
:?str? #光标向前移动到被搜索的字符串str的位置
:/str/ w file #将包含str的行写入文件file中
:/str1/,/str2/w file #将从str1开始带str2结束的内容写到文件file中
:s/str1/str2/g #将所有str1替换成str2
:n #输入要移动的行号,光标可到达
:w #将编辑的数据写入硬盘档案中(常用)
:w file #将当前编辑的内容写到文件file中
:n1,n2 w [filename] #将 n1 到 n2 的内容储存成 filename 这个档案。
:d #删除当前行
:nd #删除当前开始的n行
:n1,n2 co n3 #将从n1到n2的信息复制到n3
:n1,n2 m n3 #将从n1到n2的信息移动到n3
:n1,n2 d #删除n1到n2的内容
:.,$d #删除当前到结尾的内容
:/a/,/b/d #删除a到b的内容
:set nu #显示行号
:set nonu #取消行号