mkdir
mkdir hello 在当前目录下创建一个名为/hello的目录
mkdir -p hello/hi 创建一个名为/hello的目录,并在目录下再创建一个名为/hi的目录
rm
-f 强制删除
-i 在删除前需要确认
-r 递归删除目录及其内容
-v 详细显示进行的步骤
rm -i test.txt -删除test.txt文件,删除前需要确认
rm -rf id_photo -强制删除id_photo目录及其以下包含所有子目录,不提示确认
rar,tar解压
rar: unrar e/x file.rar
tar: tar xvf model.tar.gz
sort 可针对文本文件的内容,以行为单位来排序。
-f 忽略大小写
-n 按照数值大小排序
-u 排序时去掉重复行
-r 倒序
ln 链接文件
软链接:当前目录为目标目录,ln -s 目标文件所在目录 。在磁盘中不占用内存空间。可以跨越磁盘分区,同时也可以对一个不存在的文件名进行链接,但直到这个名字对应的文件被创建后,才能打开其链接。与windows快捷方式相似。
硬链接:当前目录为目标目录,ln 目标文件所在目录。将生成完全相同的占用内存的文件。不可以跨越磁盘分区。
查看计算机配置
cat /proc/cpuinfo |grep name
查看内存 free -m
由结果了解到计算机内存为16G
查看挂载点的空间使用情况:df -h
由结果了解到硬盘(/dev/sda1)数量为1,容量为2T。
查看当前使用的网络端口 netstat
显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
查看目录大小:du
du -a 显示目录以及子目录,文件的大小
du -s 只显示目录大小
du -h 为每个数附加一个表示大小单位的字母,如:用M表示二进制 的兆字节。
du -c 在处理完所有参数后给出所有这些参数的总计
查看进程状态:ps
ps -ef 用标准格式显示进程
ps aux 用BSD格式显示进程
超级用户su/sudo
su的用途是让用户暂时改变登入者的身份,变更时要输入所要变更用户的用户名和密码。例如切换到root超级用户,命令为$ su root 然后输入root用户密码即可。
有时,我们并不想切换用户,只是想临时使用一下root权限,就可以使用sudo命令。如 sudo gedit /etc/shadow,表示临时使用root权限来编辑/etc/shadow密码文件。
远程拷贝命令 scp/rsync ssh
如果机器之间可以相互ping通,就可以使用scp或者rsync -avzP命令进行本地或与远程主机间的文件或目录备份。
命令格式:
scp 本地文件的绝对路径/要复制到服务器上的本地文件 登录到远程服务器的用户@远程服务器的ip地址:将本地文件复制到位于远程服务器上的路径
例如:将本地的face_platform.tar.xz以用户yituadmin复制到ip为10.24.156.12的远程服务器的根目录下:
scp face_platform.tar.xzyituadmin@10.24.156.12:~/
可使用rsync -avzP命令代替scp,传输速度更快、更安全、占用带宽更少、权限越灵活。
ssh:ssh user@host 实现远程登录主机
ssh -p 2222 user@host SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。
chmod
用来修改某个目录或文件的访问权限。
eg: rw-r--r--
文件的权限是这样子分配的 读 写 可执行,分别对应的是 r(4)w(2) x(1)。如果没有那一个权限,用 - 代替,然后又分了三个类别的权限。分别是文件所有者有读和写的权限,文件所属组也有读的权限,然后其他用户只有读的权限.
chmod 777代表 文件所有者,文件所属组,其他用户均具有读,写,可执行的权限。
chmod 777 文件名 or 目录名/* 赋权限
chown
用来更改某个目录或文件的用户名和用户组的
chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
例1:chown root:root /tmp/tmp1
就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).
例2:chown -R root:root /tmp/tmp1
就是把tmp下的tmp1下的所有文件的属组都改成root和root。
wc 统计文件的字节数、字数、行数
wc -l 文件名 查看文件有多少行
wc -c 文件名 统计字节数
wc -w 文件名 统计字数
wget
wget https://www.baidu.com/
wget -c https://www.baidu.com/ 当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数。
wget -i download.txt 如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,
然后用命令wget -i 这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)
tail
tail 用于在屏幕上显示指定文件的末尾若干行
tail -f ./passwd #参数-f使tail不停地去读最新的内容,因此有实时监视的效果,用Ctrl+c来终止
tail -n 2 /etc/passwd #显示最后2行
tail /etc/passwd #默认,显示最后10 行
vi 文本编译器
:set nu在命令模式下,用于在最左端显示行号;
:set nonu在命令模式下,用于在最左端不显示行号;
gg移动光标到文档首行;
G移动光标到文档尾行;
/字符串文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
:s/root/test/g将光标所在行出现的root字符串替换为test
:%s/root/test/g将当前文件中所有root字符串替换为test
crontab
crontab -e 编辑定时任务
crontab -l 查看定时任务
m h dom mon dow command
分 时 日 月 周 执行命令
实例1:每1分钟执行一次myCommand
*****myCommand
实例2:每小时的第3和第15分钟执行
3,15****myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,158-11***myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,158-11*/2**myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,158-11**1myCommand
实例6:每晚的21:30重启smb
3021***/etc/init.d/smbrestart
实例7:每月1、10、22日的4 : 45重启smb
4541,10,22**/etc/init.d/smbrestart
实例8:每周六、周日的1 : 10重启smb
101**6,0/etc/init.d/smbrestart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,3018-23***/etc/init.d/smbrestart
实例10:每星期六的晚上11 : 00 pm重启smb
023**6/etc/init.d/smbrestart
实例11:每一小时重启smb
**/1***/etc/init.d/smbrestart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
023-7***/etc/init.d/smbrestart
重定向和管道符
我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin 代码0,符号<或<<),通常对应终端的键盘;标准输出文件(stdout 代码1,符号>或>>)和标准错误输出文件(stderr 代码2,符号2>或2>>),这两个文件都对应终端的屏幕。
重定向:
输入重定向:是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。
输出重定向(>):是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。
追加重定向(>>):与输出重定向的功能非常相似, 区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。
&&:前面成功,则执行后面一条,否则,不执行
||:前面失败,则后一条执行
ls *.txt && echo suss! || echo failed
将标准输出和标准错误重定向到同一文件
ls proc/*.c > list 2> &l 与 ls proc/*.c&>list等价
清空文件 :>a.txt
管道:
将一个程序或命令的输出作为另一个程序或命令的输入
cat a.txt | grep "hello"
xargs
xargs 能够将输入数据转化为特定命令的命令行参数
将多行输出转化为单行输出
cat file.txt | xargs
将单行转化为多行输出
cat single.txt | xargs -n 3
unqi
消除重复行
sort unsort.txt | uniq
统计各行在文件中出现的次数
sort unsort.txt | uniq-c
找出重复行
sort unsort.txt | uniq-d
find
找出后缀名为.txt的文件
find . \( -name "*.txt" \)
找出后缀名不是.txt的文件
find . ! -name "*.txt" -print
指定搜索深度,打印出当前目录的文件(深度为1):
find.-maxdepth1-typef
tr
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
字符串替换
cat test.txt| tr 'hello' 'hey '
用tr压缩字符,可以压缩输入中重复的字符:
echo "thissss is a text linnnnnnne." | tr -s 'sn'
this is a text line
cut
去除文件的指定列
cut -f2,4 filename
去除文件除第三列的所有列
cut 取的单位:
-b 以字节为单位
-c 以字符为单位
-f 以字段为单位(使用定界符)
paste
paste file1 file2
查看CPU
sar -u 1 2
后面的两个参数表示监控的频率,比如例子中的1和2,表示每秒采样一次,总共采样2次;
查看内存
free -m
查看硬盘使用情况
df -h
man 命令
linux内部存储着一部使用手册,权限是所有用户,以供用户在终端查找。
man 获取指定命令的帮助
man -f (要查找的命令)等同于whatis 查看命令拥有哪个级别的帮助
man 命令等级号 要查找的命令
例如:$ man -f grep
grep (1) - print lines matching a pattern
$man 1 grep
即可找到。
man -k (要查找的命令)等同于apropos命令