命令 | 格式 | 参数 | 示例 | 说明 |
---|---|---|---|---|
Ctrl+Alt+T | 打开终端 | |||
ls | ls -参数 查看的文件夹 | grep 部分文件名 | 无 a al | 显示当前文件夹的可见文件 显示当前目录下的所有文件及文件夹包括隐藏的.和..等 显示当前目录下的所有文件及文件夹包括隐藏的.和..等并显示详细信息,详细信息包括大小,属组,创建时间 | |
ls | linux 文件颜色的含义,白色文件代表一般性文件,如文本文件,配置文件,源码文件等; 蓝色代表目录,绿色代表可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其他文件,红色闪烁表示链接的文件有问题了,黄色表示设备文件。 | |||
ls -d .* | 显示当前文件夹的隐藏文件 | |||
ls -a | 显示当前文件夹的所有文件 | |||
ll | 显示当前文件夹的所有文件的详细信息,包含拥有者,属组,操作权限,链接信息 | |||
rm | rm 文件; rm -rf 目录 | -r表示递归操作; -f表示强行删除,不作任何提示 | 删除文件或目录 | |
apt-get | sudo apt-get install 软件名 | apt-get install xxx 安装xxx 。如果带有参数,那么-d 表示仅下载 ,-f 表示强制安装 apt-get remove xxx 卸载xxx apt-get remove –purge softname1 卸载并清除配置 apt-get update 更新软件信息数据库 apt-get upgrade 进行系统升级 apt-cache search 搜索软件包 | sudo apt-get install build-essential | apt-get理论上是要求能够联网,但是如果制作了本地源,就不需要联网,制作本地源可以参考; 使用apt-get方法安装的软件,所有下载的deb包都缓存到了/var/cache/apt/archives目录下了,所以可以把常用的deb包备份出来,甚至做成ISO工具包、刻盘,以后安装Ubuntu时就可以在没有网络环境的情况下进行了; |
dpkg | sudo dpkg -i package.deb | dpkg -i package.deb 安装包 dpkg -r package.deb 删除包 dpkg -r –purge package.deb 连同配置文件一起删除 dpkg -P package.deb 删除包(包括配置文件) dpkg -info package.deb dpkg -L package 列出与该包关联的文件 dpkg -l package.deb 显示该包的版本 dpkg –unpack package.deb 解开 deb 包的内容 dpkg -S keyword 搜索所属的包内容 dpkg -l 列出当前已安装的包 dpkg -c package.deb 列出 deb 包的内容 dpkg –configure package 配置包 | 下面的命令是拷贝archives这个目录到/var/cache/apt/目录下,替换原有的archives enadmin@ubuntu-server:~/ftp$ sudo cp -r archives/ /var/cache/apt/ | |
make install | 配置:这是编译源代码的第一步,通过 ./configure 命令完成。执行此步以便为编译源代码作准备。常用的选项有 –prefix=PREFIX,用以指定程序的安装位置。更多的选项可通过 –help 查询。也有某些程序无需执行此步。 编译:一旦配置通过,可即刻使用 make 指令来执行源代码的编译过程。视软件的具体情况而定,编译所需的时间也各有差异,我们所要做的就是耐心等候和静观其变。此步虽然仅下简单的指令,但有时候所遇到的问题却十分复杂。较常碰到的情形是程序编译到中途却无法圆满结束。此时,需要根据出错提示分析以便找到应对之策。 安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了。 | //1.解压缩tar -zxf nagios-4.0.2.tar.gz //2.进入目录cd nagios-4.0.2 //3.配置 ./configure –prefix=/usr/local/nagios //4.编译make all //5.安装make install && make install-init && make install-commandmode && make install-config | 如果要使用make安装的话,那么必须得安装build-essential这个依赖包,安装方法已经在前面说过了。在安装完毕以后,我们就可以进行源码安装。源码安装大致可以分为三步骤:(./configure)–> 编译(sudo make) –> 安装(sudo make install)。 | |
bin安装 | 直接下载编译好的bin文件,格式如xxx.tar.gz,然后直接解压缩到目标目录,然后配置好环境变量即可 | |||
chmod | chmod [-cfvR] [–help] [–version] mode file | -c或——changes:效果类似“-v”参数,但仅回报更改的部分; -f或–quiet或——silent:不显示错误信息; -R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理; -v或——verbose:显示指令执行过程; mode: u User,即文件或目录的拥有者; g Group,即文件或目录的所属群组; o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围; a All,即全部的用户,包含拥有者,所属群组以及其他用户; r 读取权限,数字代号为“4”; w 写入权限,数字代号为“2”; x 执行或切换权限,数字代号为“1”; - 不具任何权限,数字代号为“0”; s 特殊功能说明:变更文件或目录的权限。 | chmod u+x,g+w f01 //为文件f01设置自己可以执行,组员可以写入的权限; chmod u=rwx,g=rw,o=r f01; chmod 764 f01 ; chmod a+x f01 //对文件f01的u,g,o都设置可执行属性 | chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。 Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內! |
chown | chown [选项]… [所有者][:[组]] 文件. | 必要参数: -c 显示更改的部分的信息 -f 忽略错误信息 -h 修复符号链接 -R 处理指定目录以及其子目录下的所有文件 -v 显示详细的处理信息 -deference 作用于符号链接的指向,而不是链接文件本身 选择参数: –reference=目录或文件,把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组 –from=当前用户:当前群组, 只有当前用户和群组跟指定的用户和群组相同时才进行改变 –help 显示帮助信息 –version 显示版本信息 | 将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie : chown jessie:users file1.txt ; 将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :chown -R lamport:users * ; 要更改文件 program.c 的所有者:chown jim program.c ,program.c的用户访问权限现在应用到 jim。作为所有者,jim 可以使用 要将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build:chown -R john:build /tmp/src | 通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。 |
tar | tar -cvf name.tar directory_to_compress; tar -xvf name.tar; tar -xvf name.tar -C location; | -c代表压缩; -v代表压缩或解压时打印整个过程; -f代表后面跟着文件名; -x代表解压缩;-C后面跟着解压后的目标路径 | tar -xvf archive_name.tar -C /tmp/extract_here/ | Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。 |
zip | zip name.zip directory_to_compress; unzip name.zip | zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.bz2在压缩率方面做得非常好。 | ||
tar.gz | tar -zcvf name.tar.gz directory_to_compress; tar -zxvf name.tar.gz; tar -zxvf name.tar.gz directory_to_decompress | -z代表压缩或解压缩的格式为gz; 其他参数与tar一致; | 与tar相比其实只是多了个指明压缩格式的z参数,并且文件名多了.gz;实际上对于.tar.gz格式的文件解压时即使不写z参数也能正常解压,因为linux系统已经预装了这些工具包,在解压缩时会自动选用合适的工具来解压;tar.gz压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。 | |
.tar.Z | tar Zcvf Name.tar.Z directory_to compress; tar Zcvf name.tar.Z directoory_to decompress | |||
tar.bz2 | tar -jcvf name.tar.bz2 directory_to_compress; tar -jxvf name.tar.bz2; tar -jxvf name.tar.bz2 directory_to _decompress | -j代表压缩格式为bz2 | 这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。 | |
tar.bz | 与tar.bz2除了文件名后缀少了2其他格式一模一样 | |||
unrar | unrar a name.rar directory_to_compress; unrar e name.rar; unrar x name.rar directory_to_compress | a代表解压; e代表解压到当前目录; x代表解压到指定目录 | 可以使用unrar –help来查看相关参数的作用 | |
rar | rar a name.rar; rar e name.rar | |||
top | top top -bn 1 -i -c | 无参数,显示不同进程对cpu、内存等使用情况,可以按ctrl+c退出cpu查看; | 全参数的时候,第三行有cpu使用率的相关情况 us:表示用户空间程序的cpu使用率(没有通过nice调度); sy:表示系统空间的cpu使用率,主要是内核程序; ni:表示用户空间且通过nice调度过的程序的cpu使用率; id:空闲cpu; wa:cpu运行时在等待io的时间; hi:cpu处理硬中断的数量; si:cpu处理软中断的数量 st:被虚拟机偷走的cpu | |
find | find path expression search-term | path 路径,可以不写 expression 搜索方式,如名字、类型、所属人、大小、时间、权限 search-term 查询关键词(文件名) | find -name test.file find /var -name test.file | 不提供路径会搜索整个目录树来查找名为 test.file 的文件,并且会提供其存放位置。find命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话。要显著减少时间,你可以指定搜索的目录。 |
locate | locate interfaces | 使用locate命令在根目录下搜索interfaces文件,比find命令快。因为它查询的是数据库(/var/lib/locatedb),数据库包含本地所有的文件信息。 | ||
whereis | whereis grep使用whereis命令搜索grep二进制文件 | 搜索linux系统中的所有可执行文件即二进制文件。 | ||
which | which grep使用which命令查看grep命令是否存在以及存在的目录 | 查看系统命令是否存在,并返回系统命令所在的位置 | ||
type | type cd查看cd命令是否为系统自带的命令 | 查看某个命令是否为系统自带的命令 | ||
mkdir 目录名 | 新建一个文件夹 | |||
touch 文件名 | 新建一个空文件 | |||
rmdir 目录名 | 删除一个空文件夹,文件夹里有内容则不可用 | |||
rm -rf 目录名 | 删除一个文件夹,里面有内容也可以 | |||
cp 文件名 目标路径 | 拷贝一个文件到目标路径,似乎进入系统文件夹可以从其他地方拷过来,但在普通文件夹却不一定能拷到系统文件夹去 | |||
cp -i | 拷贝,同名文件夹存在时,输出[yes/no]询问是否执行 | |||
cp -f | 强制复制文件,如有同名不询问 | |||
Ubuntu 16.04 LTS 中安装命令的简化
Ubuntu 16.04 LTS | 老版本Ubuntu |
---|---|
apt install 包名 | 替代 apt-get install 包名 |
apt remove 包名 | 替代 apt-get remove 包名 |
apt search 包名 | 替代 apt-cache search 包名 |
apt show 包名 | 替代 apt-cache show 包名 |
apt update | 替代 apt-get update |
apt upgrade | 替代 apt-get upgrade |
apt list –installed |
|
apt list –upgradable | apt-get -u upgrade –assume-no |
apt edit-sources |
|
apt autoremove | 替代 apt-get autoremove |
apt purge 包名 | 替代 apt-get purge 包名 |
yum方式安装:(安装rpm包)
rpm 是linux的一种软件包名称,以.rmp结尾,安装的时候语法为:rpm -ivh。
rpm包的安装有个很大的缺点就是文件的关联性太大,有时装一个软件要安装很多其他的软件包,很麻烦。
所以为此RedHat小红帽开发了yum安装方法,他可以彻底解决这个关联性的问题,很方便,只要配置两个文件即可安装,安装方法是:yum -y install 。
yum并不是一中包,而是安装包的软件
简单的说: rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,
且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。
linux下更多软件安装方法可参考《linux安装软件的几种方法》
如何在linux shell中将执行结果不在屏幕上打印,而是保存到文件中及如何以当前时间命名文件
格式为:执行语句 > 要保存的文件名
比如
python xxx.py > abc.txt
bin/sparksql xxx.txt >abc.txt
- 1
- 2
如何让文件名为当前时间?
$(date -d "today" +"%Y%m%d_%H%M%S").txt#date 是linux中获取时间的命令,参数-d "today"是获取今天的时间。后面是自己想要的日期时间字符串格式。还可以在前后加上其他字符串,比如本例中的'.txt'
- 1
ps -ef | grep xxx命令
此命令表示查看相关进程。如
ps -ef|grep java
#结果为:digger 5350 5312 0 08:46 pts/2 00:00:00 grep --color=auto java
#对应字段:UID PID PPID C STIME TTY TIME CMD
#字段解释:进程所属用户ID 进程ID 父类进程ID CPU占用百分比 进程开始时间 终端位置 cpu时间 执行的命令
- 1
- 2
- 3
- 4
ps:将某个进程显示出来
-A 显示所有程序。
-e 此参数的效果和指定”A”参数相同。
-f 显示UID,PPIP,C与STIME栏位。
grep命令是查找
中间的|是管道命令 是指ps命令与grep同时执行
这条命令的意思是显示有关java有关的进程,包括java和grep java这两个甚至包括ps -ef本身,而grep是查找输出包含想要的字符串的行,也就是说grep java是在所有运行的进程中查找输出包含“java”字符串的输出行,这里面就包含java,和grep java两个进程。
linux系统查看端口占用情况
1、查看端口是否已经打开:
netstat -an | grep 端口号
2、查看端口是被哪个应用程序使用:
netstat -apn | grep 端口号
或者ps -ef | grep 端口号
或者lsof -i:端口号
tail命令 文件内容查看
tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。
注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。
语法
tail(选项)(参数)
选项
--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c<N>或——bytes=<N>:输出文件尾部的N(N为整数)个字节内容;
-f<name/descriptor>或;--follow<nameldescript>:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n<N>或——line=<N>:输出文件的尾部N(N位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
参数
文件列表:指定要显示尾部内容的文件列表。
实例
tail file (显示文件file的最后10行)
tail +20 file (显示文件file的内容,从第20行至文件末尾)
tail -c 10 file (显示文件file的最后10个字符)
tail -n 20 filename 说明:显示filename最后20行。
tail -r -n 10 filename 说明:逆序显示filename最后10行。
- 1
- 2
- 3
- 4
- 5
补充:
跟tail功能相似的命令还有:
cat 从第一行開始显示档案内容。
tac 从最后一行開始显示档案内容。
more 分页显示档案内容。
less 与 more 相似,但支持向前翻页
head 仅仅显示前面几行
tail 仅仅显示后面几行
n 带行号显示档案内容
od 以二进制方式显示档案内容
Linux cat命令详解
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件
$ cat filename
- 1
2.从键盘创建一个文件
$ cat > filename
- 1
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件
$cat file1 file2 > file
- 1
cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
- 1
- 2
- 3
- 4
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容
- 1
- 2
- 3
在linux shell脚本中我们经常见到类似于cat << EOF
的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?
EOF是“end of file”,表示文本结束符。
首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
接下来,简单描述一下几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标准输入结束:
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
注意:输入时是没有'>'的。
3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样:
- 1
- 2
- 3
- 4
更详细参考Linux cat命令详解
ubuntu查看系统信息命令
查看处理核信息
cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id”
Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息,此命令是在/proc/cpuinfo文件下查看model name和 physical id
通过Physical Processor ID来区分单核和双核
2.查看内存大小
cat /proc/meminfo |grep MemTotal
uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备的linux系统信息命令
lsmod # 列出加载的内核模块
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
top # 实时显示进程状态用户
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包
cat /proc/cpuinfo :#查看CPU相关参数的linux系统命令
cat /proc/cpuinfo| grep “processor”| wc -1 #查看核数
cat /proc/partitions :#查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo :#查看linux系统内存信息的linux系统命令
cat /proc/version :#查看版本,类似uname -r
cat /proc/ioports :#查看设备io端口
cat /proc/interrupts :#查看中断
cat /proc/pci :#查看pci设备的信息
cat /proc/swaps :#查看所有swap分区的信息
fdsik -l :#查看磁盘分区
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
shell 脚本命令太长,如何换行
行尾加\
表示下一行和这一行是一个命令行,后面不能有注释、空格。