所有文件和目录管理命令都很常用,查看知道cat基本够用
没有看到需要的命令的话,试试看Linux命令分类或者Linux命令大全
格式:man 命令
如:man ls 显示出ls命令的功能及选项的含义
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
-s datestr : 将系统时间设为 datestr 中所设定的时间
–version : 显示版本编号
列出所有正在使用系统的用户、所有终端名和注册到系统的时间。
(1)显示普通字符串:
echo "It is a test"
这里的双引号完全可以省略
(2)显示转义字符
echo "\"It is a test\""
结果将是:"It is a test" 同样,双引号也可以省略
(3)显示变量
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
#!/bin/sh
read name
echo "$name It is a test"
以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:
[root@www ~]# sh test.sh
OK #标准输入
OK It is a test #输出
(4)显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"
输出结果:
OK!
It is a test
(5)显示不换行
#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
输出结果:
OK! It is a test
(6)显示结果定向至文件
echo "It is a test" > myfile
(7)原样输出字符串,不进行转义或取变量(用单引号)
echo '$name\"'
输出结果:$name\"
(8)显示命令执行结果
echo `date`
注意: 这里使用的是反引号 `, 而不是单引号 '。
结果将显示当前日期
Thu Jul 24 10:08:46 CST 2014
输出重定向命令>和>>:可将某命令的结构输出到文件中。“>”该文件原有的内容会被删除;“>>”附加到文件中,原文件内容不会被清除。如:
ls –a >dir.txt 将ls –a命令执行结果输出到dir.txt文件
cat data1.txt >>data2.txt 将data1.txt 内容附加到data2.txt文件之后
输入重定向命令<:将文件的内容作为某命令的输入。如:
sort <file1 >file2 sort命令从file1中取得输入,输出送到file2
“|”管道命令:将某命令的结果输出给另一命令。如:
ls | gerp conf 搜索并显示ls命令的运行结果中包含有“conf”的字符串
cat file1 file2 file3 | sort >/dev/lp
cat命令将三个文件合并,并将结果送出到sort命令,按字母表顺序排序,sort的输出又重定向到文件/dev/lp中,这通常是打印机。
速览:
选项与参数:
代码 | 功能 |
---|---|
-a | 全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用) |
-d | 仅列出目录本身,而不是列出目录内的文件数据(常用) |
-l | 长数据串列出,包含文件的属性与权限等等数据,显示文件的详细信息;(常用) |
-k | 显示文件大小,以K为单位 |
-s | 显示每个文件所用的空间 |
-S | 指定按所用空间的大小排序文件 |
-i | 在输出的第一列显示文件的i节点号 |
ls 参数 目录名称
[root@www ~]# ls -al ~
将目录下的所有文件列出来(含属性与隐藏档)
cd tony 切换到当前目录下的tony子目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd 切换到用户主目录
cd /usr/bin 切换到/usr/bin目录
[root@www ~]# pwd [-P]
选项与参数:
mkdir [-mp] 目录名称
选项与参数:
rmdir [-p] 目录名称
选项与参数:
rm [-fir] 文件或目录
rm file1.txt 删除指定的文件file1.txt
rm * 删除当前目录下的所有文件
rm –r dir1 加-r递归删除dir1目录下的所有文件及子目录
rm –f file2.txt 加-f强迫删除文件file2.txt,即rm命令会直接删除文件,不再询问
选项与参数:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
cp data1.txt data2.txt 将data1.txt复制成data2.txt,相当于重命名
cp data3.txt /tmp/data 将data3.txt复制到/tmp/data目录中
cp –v zip.txt zip3.txt 加-v显示复制过程
cp –v –R * backup 加-R递归复制,
将当前目录下所有文件(含子目录文件)复制到backup目录下
选项与参数:
-a:相当 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination
-v: 显示复制过程
语法:
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
示例:复制一文件,创建一目录,将文件移动到目录中
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2
locate 命令可用来搜索包含指定条件字符串的文件或目录。如:
locate zh_CN 列出所有包含“zh_CN”字符串的文件和目录
由于locate命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,仍然可能会因为数据库尚未更新而无法查得,此时可用root身份运行updatedb命令更新,为此数据库得内容正确。
grep text *.conf 搜索当前目录中扩展名为.conf且包含“text”字符串的文件
具体grep菜鸟教程
格式:chmod [选项] 文件或目录名
选项 | 说明 |
---|---|
u | 文件所有者 |
g | 文件所属组 |
o | 其它用户 |
a | 所有用户 |
+ | 增加权限 |
- | 取消权限 |
= | 赋给权限 |
r | 读权限 |
w | 写权限 |
x | 执行权限 |
chmod a+rw file1
chmod 755 file2 即file2的保护位为:rwx r-x r-x
格式:chown [选项] [用户名][组名] 文件或目录名
选项说明:
-c 文件属主改变时显示说明。
-R/r 改变目录下的文件及其子目录下所有文件的属主。
chown -R bugboy dir
改变 dir 目录下的文件及其子目录下的文件的属主为bugboy
格式:ln [选项] 源文件 目录文件或目录
格式说明
-b 为删除的文件建立备份。
-d 允许root用户建立硬链接。
-F 与b相同。
-f 强行删除目标文件。
-i 在删除文件时给出提示。
-n 当目标文件是目录的符号链接时,替代该符号链接。
-s 用符号链接代替硬链接(建立符号链接)。
-v 输出被链接文件的文件名。
速览:
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
语法:
cat [-AbEnTv]
选项与参数:
语法:
nl [-bnw] 文件
选项与参数:
为了避免画面显示瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停止显示。
当使用ls命令查看文件列表时,若文件太多则可以配合more命令使用。如:
ls –al more
单独使用more命令时,可用来显示文件的内容。如:
[root@www ~]# more /etc/man_db.config
…(中间省略)…
–More–(28%) 你的光标也会在这里等待你的命令,在 more 这个程序的运行过程中,你有几个按键可以按的:
以下实例输出/etc/man.config文件的内容:
[root@www ~]# less /etc/man.config
语法:
head [-n number] 文件
选项与参数:
[root@www ~]# head /etc/man.config
默认的情况中,显示前面 10 行,若要显示前 20 行,就得要这样:
[root@www ~]# head -n 20 /etc/man.config
[root@www ~]# head -20 /etc/man.config
语法:
tail [-n number] 文件
选项与参数:
[root@www ~]# tail /etc/man.config
默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config
tail mfile 显示文件mfile的最后10行
tail +20 mfile 显示文件mfile的内容,从第20行至文件末尾
tail –c 10 mfile 显示文件mfile的最后10个字符
安装指定的软件:yum install
可安裝的软件清单:yum list
列出可更新的软件清单:yum check-update
更新所有软件:yum update
更新指定的软件:yum update
删除软件包命令:yum remove
查找软件包命令:yum search
例子:找出以 pam 为开头的软件名称
yum list pam*
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo
运行以下命令生成缓存
yum clean all
yum makecache
除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。
中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html
阿里云CentOS 8 EOL如何切换源?
tar命令位于/bin目录中,它能将用户所指定的文件或目录打包成一个文件,不过它并不做压缩。一般Unix上常用的压缩方式是先用tar命令将许多文件打包成一个文件,再以gzip等压缩命令压缩文件
格式:tar [选项]
选项说明:
-c 创建一个新的tar文件 --create
-v 显示运作过程信息 --verbose
-f 指定文件名称 -file=
-z 调用gzip压缩命令执行压缩 --gzip
-j 调用bzip2压缩命令执行压缩
-t 查看压缩文件内容
-x 解开tar文件 --extract
如:
tar cvf usr.tar /home 把/home目录下包括其子目录全部做备份文件usr.tar
tar czvf usr.tar.gz /home 把/home目录下包括其子目录全部做备份文件,并进行压缩
tar tvf usr.tar | more 查看usr.tar备份文件的内容,并以分屏方式显示
tar xvf file1.tar 解开file1.tar文件
tar zxvf file2.tar.gz 使用-z参数来解开.tar.gz文件
tar jxvf file3.tar.bz2 使用-j参数来解开.tar.bz2文件
# 创建一个名为 abc 的目录
mkdir abc
# 进入 abc 这个目录
cd abc
# 创建两个文件,文件名为1.txt 2.txt
touch 1.txt 2.txt
# 切换到 abc 的父目录
cd ..
# 将文件 abc 进行压缩时,排除1.txt,压缩后的文件名为 abc.tar
tar --exclude=abc/1.txt -zcvf abc.tgz abc
# 解压文件
tar -zxvf abc.tgz
# 删除压缩文件
rm abc.tgz
# 删除解压后的文件,并删除文件夹
rm -rf abc
gzip是在Linux系统中经常使用的一个对文件进行压缩
格式:gzip [选项] 压缩(解压缩)的文件名
选项说明:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
gzip usr.tar 将usr.tar压缩为usr.tar.gz文件
gzip file1.txt 将file1.txt压缩为file1.txt.gz文件
gzip –dv usr.tar.gz 将压缩文件usr.tar解压,并列出详细的信息
该命令用于解扩展名为.zip的压缩文件。
格式:unzip [选项] 压缩文件名.zip
选项说明:
-x 文件列表 解压缩文件,但不包括指定的file文件。
-v 查看压缩文件目录,但不解压。
-t 测试文件有无损坏,但不解压。
-d 目录 把压缩文件解到指定目录下。
-z 只显示压缩文件的注解。
-n 不覆盖已经存在的文件。
-o 覆盖已存在的文件且不要求用户确认。
-j 不重建文档的目录结构,把所有文件解压到同一目录下
uzip text.zip 将压缩文件text.zip在当前目录下解压缩
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell> 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
Linux kill 命令用于删除执行中的程序或工作。
kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看。
语法
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
参数说明:
kill -l
命令列出所有可用信号。最常用的信号是:
0 检查进程是否存在
1 (HUP):重新加载进程。
9 (KILL):-9 表示无条件退出,但由进程自行决定是否退出
15 (TERM):正常停止一个进程,程序可以在完成收尾工作后再退出
实例:
杀死进程
# kill 12345
将进程挂起
# kill -stop PID
强制杀死进程
# kill -KILL 123456
发送SIGHUP信号,可以使用一下信号
# kill -HUP pid
彻底杀死进程
# kill -9 123456
杀死指定用户所有进程
#kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程
#kill -u hnlinux //方法二
执行一个命令后,用Ctrl+Z把命令转移到了后台,想要kill该进程
kill %num
jobs
KILL %1
kill pid
jobs -l
kill 4664
这个用在一个命令的最后,可以把这个命令放到后台执行
可以将一个正在前台执行的命令放到后台,并且暂停
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
nohup命令:该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
该命令的一般形式为:nohup command &
使用nohup命令提交作业
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,输出被重定向到myout.file文件中。
比screen好的窗口管理
tumx使用
先安装:
sudo dnf -y install tmux 【Fedora 22】
sudo yum -y install tmux 【Centos或RHEL】
sudo apt-get -y install tmux 【ubuntu】
# 开启新session
tmux
# 开启新session并命名
tmux new -s my_session
# 显示所有session
tmux ls
# 使用session编号接入
tmux attach -t 0
# 使用session名称接入
tmux attach -t <session-name>
tmux a -t name #简写
# 使用session编号kill
tmux kill-session -t 0
# 使用session名称kill
tmux kill-session -t <session-name>
# 使用session编号切换
tmux switch -t 0
# 使用session名称切换
tmux switch -t <session-name>
# 重命名会话
tmux rename-session -t 0 <new-name>
# 选择需要跳转的session会话
C + b s
# 重命名当前会话
C + b $
# 断开当前session
C + b d
# 在当前session中多加一个window
C + b c
# 在一个session中的多个window中作出选择
C + b w
# 关闭当前session中的当前window
C + b x
# 进入tmux翻屏模式, 实现上下翻页
C + b [
### 进入翻屏模式后PgUp PgDn 实现上下翻页(mac可以用fn + ↑ ↓实现上下翻页)
### q 退出翻屏模式
#############
# 其他常用快捷键
##############
C + b ! #关闭一个session中所有窗口
C + b % #将当前窗口分成左右两分
C + b " #将当前窗口分成上下两分
C + b 方向键 #让光标在不同的窗口中跳转
C + b 方向键 #按住C+b不放,同时按住方向键,可以调节光标所在窗口的大小