1.Linux基本命令
格式=命令+选项+参数
cd (change directory)切换目录
cd #root主目录
cd / #系统根目录
cd ../../ #返回上两层目录
cd - #返回进入当前目录前所在目录
ls/dir/vdir (list)列出目录下文件
ls -a (--all) #列出所有文件
ls -d (--directory) #列出目录
ls -i (--inode) #显示每个文件的inode 号(索引节点号,可以理解为文件的存储地址)
ls -l (-long) #较长格式列出
ls -lh (--human-readable)与-l #人性化阅读输出
dirs 显示目录记录
dirs +n #显示从左边算起第n笔的目录。
dirs -n #退一级目录的路径
dirs -l #显示目录完整的记录。
mv (move)移动或更名现有的文件或目录
mv -b (--backup)+ 目标文件或路径 #移动到目标目录,若覆盖文件,则先备份
mv -f (--force )+ 目标文件或路径 #强制覆盖,没有目标文件时相当于备份
mv -i (--interactive)+ 目标文件或路径 #覆盖前先行询问用户
mv -u (--update)+ 目标文件或路径 #在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
pwd (print working directory)显示工作目录
pwd #显示当前工作目录
rm (remove)删除文件或目录
rm -d (-directory) #直接把欲删除的目录的硬连接数据删成0,删除该目录
rm -f (--force) #强制删除文件或目录
rm -i (interactive) #删除既有文件或目录之前先询问用户
rm -r或-R (--recursive) #递归删除,防止目录里面有文件不能删除
mkdir (make directories) 建立目录
mkdir +文件名 #创建目录
mkdir -m (--mode)+a=权限+目录名 #设置目录权限(rwx)例:mkdir -m a=rw bbb 创建目录bbb,权限为rw(a是模式固定写法)
mkdir -p (--parents)+父目录/子目录 #若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录 例1:mkdir -p 111/abc 创建abc目录,111为子目录 例2:mkdir -p /ms/{sales,hr,web} 创建一个名为/ms的目录,其中有sales、hr、web的子目录
mkdir -pv +目录名 #批量创建目录 例:mkdir -pv /tmp/test/{a1,b1}/{c1,d1}
mkdir -v (--verbose) #创建目录,并显示详细信息
rmdir 删除空目录
rmdir +目录名 #删除目录,注意必须是空目录
rmdir -p +目录/目录/目录 #删除指定目录及其上级文件夹 例:rmdir -p a/b/c
echo 显示一行文本 (可使用通配符,正则表达式)
echo +文本内容 #显示文本
echo -n +文本内容 #显示不带尾部回车符的文本
echo -e +"文本内容" #允许使用转义字符输出文本 例:echo -e "a\nb\nc"
echo +新文本内容 > 文件名 #重定向,清除源文件所有内容,并插入单行 例:echo "hello word" >jackonill.txt
echo +新文本内容 >> 文件名 #追加重定向,在原有文件基础上末尾插入一行文本逐行
ifconfig/ip addr(CentOS) 显示或设置网络设备
ifconfig #处于激活状态的网络接口
ifconfig -a #所有配置的网络接口,不论其是否激活
ip a/addr
ping 检测主机(127.0.0.1为主机,可以检验网卡,用于检测内网)
ping +ip/域名 #检测外网
tar (tape archive)解压缩文件
tar -czvf +压缩文件名 源文件名 #将ar_test文件打包并且压缩 例:tar -czvf ar_test.tar.gz ar_test 将ar_test文件打包并且压缩
tar -zxvf +目标文件 #解压 例: tar zxvf ar_test.tar.gz 解压ar_test.tar.gz压缩包
date 显示系统时间
date #打印时间
date -s +时间 #设置时间 例:date -s '14:35:40'
date +%m%d%H%M%S #按照格式输出时间
su 切换用户
su +用户名 #切换到用户
sudo +命令 #在root用户下执行一条命令
sudo su #下面的命令都用root用户执行
su root #CentOS下切换root用户的一种方式
cp (copy)拷贝文件
cp -p +文件名 路径 #将文件拷贝到指定路径,并且保留原文件的属性 例:cp -p test.rb /home/test 将test.rb拷贝到test目录
cp -r +源目录名 目标目录名 #将某目录copy到目标目录下 例:cp -r Dir/ /home/test 将Dir目录copy到test目录下
cp -fr +源目录下文件名 目标目录名 #将源目录下文件名文件强制copy到目标目录下 例:cp -fr Dir/* /home/test 将Dir下面的所有文件强制copy到test目录下
cp test.rb{,.bak} #备份test.rb,并在尾部加上.bak后缀
cp -u -v file1 file2 #复制文件,只有源文件较目的文件的修改时间新时,才复制文件
cp file1 file2 #将文件file1复制成文件file2
cp -i file1 file2 #采用交互方式将文件file1复制成文件file2
cp -p a.txt tmp/ #复制时保留文件属性
chmod 改变文件/目录的权限
chmod ugo+r 文件 #所有人皆可读取
chmod a+r 文件 #所有人皆可读取
chmod ug+w,o-w 文件 #设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod u+x 文件 #创建者拥有执行权限
chmod a-x 文件 #收回所有用户的对文件的执行权限
chmod 777 文件 #所有人可读,写,执行
cat 查看文件内容
cat +目标文本 #普通输出
cat -n 目标文本 #开头显示行号
cat -E 目标文本 #以$结束
cat -ns 目标文本 #去空行,加行号
touch 创建文件
touch +文件名 #将文件的创建时间改为当前时间,文件不存在则建之 例:touch test.php 将test.php的档案时间改为,当前时间,文件不存在建之
touch -c -t 时间 +文件名 #将档案时间改为特定时间 例:touch -c -t 05061803 test.php 将档案时间改为,5月6日18点3分
touch -r #参考文件名 目标文件名 将目标文件档案改成跟参考文件一样 例: touch -r abc.php test.php 将test.php档案改成跟abc.php一样
touch d 时间 文件名 #将文件日期改为特定天数时间 例:touch -d "2 days ago" test.php 将test.php日期修改为2天以前
history 查看用户历史操作
history #查看所有执行过的命令
history n #显示n条历史记录
!n #执行编号历史是n的命令,注意感叹号 例:!4 执行编号是4的命令
history -c #清除历史记录
id/who 查看用户
id/who #显示当前用户的信息
id 某用户 #显示某用户的信息
who -a #显示目前登入系统的用户详细信息
who -b #上次系统启动时间
man/--help 查看帮助文档
man +命令 #查看某命令手册
命令 +help #查看命令手册,内容没man全
vi/vim(vi增强工具) 编辑文本
vim 文本名 #编辑某文本
which 查找命令文件(显示别名,文件路径)
which +命令 #查找命令
find 查找文件/目录
fine -name 文件名/目录名 #以文件名/目录名查找
fine -size n #以文件名/目录大小查找,大小是n单位,b是位,k是字节
sleep 休眠
sleep n #睡眠n秒,单位默认是秒,加上s则为秒
,m则为分,h则为小时,d则为天数
sleep n;命令 #n秒后,执行某命令,注意分号
shutdown/poweroff/halt 关机/重启命令
shutdown -h now或/poweroff或halt #立刻关机
shutdown -h 时间 #在特定时间关机
shutdown -H now #立刻停机
shutdown –r now或reboot #重启
diff 比较两个文件的差异
diff 文件1 文件2 #比较二个文件的不同
diff 文件夹1/ 文件夹2/ #比较二个文件夹的不同
diff -r 文件夹1/ 文件夹2/ #递归比较二个文件夹的不同
apt-get/yum/dnf 下载软件包命令
apt-get install 软件/包 #安装包
apt-get update 软件/包 #更新软件
apt-get remove 软件/包 #卸载软件
apt-get upgrade #更新已安装的包
apt-get clean #清理无用的包
service 服务
service 服务名 status #查看某服务状态
service 服务名 start #开启某服务
service 服务名 restart #重启某服务
service 服务名 stop #停止某服务
service 服务名 reload #重新加载某服务配置文件
ssh
ssh 用户:密码@ip地址 #远程ssh连接某主机
useradd 添加用户
useradd 用户名 #添加某用户
用户名 passwd #为某用户添加密码
useradd -r 用户名 #添加系统用户
useradd -d 路径 用户名 #添加用户,并且指定,home目录
df 报告文件系统磁盘空间的使用情况
df #列出各文件系统的磁盘空间使用情况
df -a #显示所有文件系统的磁盘使用情况
df -ia #列出各文件系统ionde使用情况
df -h (--human)#目前磁盘空间和使用情况 以更易读的方式显示
lsof (list open files)是一个列出当前系统打开文件的工具
lsof #列出所有正在使用文件
lsof 文件名 #找出谁在使用某个文件
lsof -c 程序 #查找某个程序打开的所有文件
lsof -i #列出所有网络连接
lsof -i TCP #列出所有TCP网络连接
lsof -i:端口号 #找到使用某个端口的进程
2.“编辑器之神”vim
2.1 Vim中常用的命令
dd |
删除(剪切)光标所在整行 |
5dd |
删除(剪切)从光标处开始的5行 |
yy |
复制光标所在整行 |
5yy |
复制从光标处开始的5行 |
n |
显示搜索命令定位到的下一个字符串 |
N |
显示搜索命令定位到的上一个字符串 |
u |
撤销上一步的操作 |
p |
将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 |
末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。
vim末行模式中可用的命令
:w |
保存 |
:q |
退出 |
:q! |
强制退出(放弃对文档的修改内容) |
:wq! |
强制保存退出 |
set nu |
显示行号 |
set nonu |
不显示行号 |
:命令 |
执行该命令 |
:整数 |
跳转到该行 |
:s/one/two |
将当前光标所在行的第一个one替换成two |
:s/one/two/g |
将当前光标所在行的所有one替换成two |
:%s/one/two/g |
将全文中的所有one替换成two |
?字符串 |
在文本中从下至上搜索该字符串 |
/字符串 |
在文本中从上至下搜索该字符串 |
控制台中常用快捷键
Ctrl+C |
终止前台命令 |
Ctrl+D |
退出,等价于exit |
Ctrl+L |
清屏 |
Ctrl+A |
光标移动到命令行的最前端 |
Ctrl+E |
光标移动到命令行的最后端 |
Ctrl+U |
删除光标前的所有字符 |
Ctrl+K |
删除光标后的所有字符 |
Ctrl+R |
搜索历史命令,利用关键字 |
ESC+. |
引用上一条命令的最后一个参数,相当于!$ |