常用的linux命令大全详解

路径

  • pwd:显示完整路径名
  • cd : 1. 绝对路径:以/开头的 2. 相对路径:不以/开头的
    cd :进入当前用户的家目录
    cd …/ : #退回上一级目录
    cd - :#返回上一次操作
    cd ~ :#家目录
    cd /tmp : 切换到指定目录 (按1次 tab键自动补全 2次打印所有相关的)
    注:cd和下面的符号之间必须有空格;家目录是系统自动给每个用户创建的目录。
    这里写图片描述
    如上图所示,其中/表示根目录,/home/use1表示的是use1的家目录,/home/use2是use2的家目录,选择use1用户。
[use1@localhost Desktop]$ cd ~   //进入家目录
[use1@localhost ~]$ pwd	//显示完整路径名
/home/use1
[use1@localhost ~]$ cd demo1  //选择demo1路径
[use1@localhost demo1]$ pwd
/home/use1/demo1
[use1@localhost demo1]$ cd -  //返回上一个文加夹
/home/use1 
[use1@localhost ~]$ cd ..  //返回上一级目录
[use1@localhost home]$ pwd
/home
  

常用快捷键

命令功能
ctrl + c停止进程
ctrl+l清屏
ctrl + q退出
tab键补全
上下键查找执行过的命令
ctrl +altlinux和Windows之间切换

对文件的操作(一切皆文件)

查看文件或文件夹

ls #显示当前目录下的文件名和文件夹名称
ls -a #查看所有的文件和文件夹,包括隐藏文件,隐藏文件以.开头
ls -l #查看文件和文件夹的详细内容(包括创建时间,权限,大小等信息),简写为ll	
ll -d #查看文件夹和文件夹信息(包括创建时间,权限,大小等信息),不包括名字
ll -h #查看文件和文件夹的信息,和ll的区别是文件大小用k表示
du -sh #查看文件和文件夹大小
ll -t(-rt) #按文件创建的时间进行排序(逆序)
  • 注:ll-h 即为ls -lh是文件的实际大小;
    du -sh显示文件所占用的 block 大小;block默认是4k。

查看文件的内容

cat 文件名 #查看文件的内容(但不适合大文件的读取),当文件内容过长时后面的内容无法查看
more 文件名 #查看文件的内容,以页的形式展示,用空格键翻页,回车键下一行,但翻页后无法查看上一页的内容
tail 文件名 #直接查看文件末尾的内容
tail -n 文件名	#查看文件最后n行的内容
tail -f 文件名  #查看文件的内容
tail -F 文件名  #查看文件的内容
(-f -F有什么区别?)
 less 文件名 	#分页查看index.xml的文件内容,PGUP键查看上一页,PGDN键查看下一页

注意:tail -f 和 tail - F之间的区别
查看命令帮助我么可以看到如下信息:

-f, --follow[={name|descriptor}]
                           output appended data as the file grows;
                           -f, --follow, and --follow=descriptor are
                           equivalent
  -F                       same as --follow=name --retry

使用-f一直查看该文件的内容,如果对文件的内容和进行更改也会显示出来更改的内容,但是如果文件名更改则查看失败,即使文件名再更改回来也不行。
如果是使用-F和-f的区别在于(retry):如果查看的文件更改文件名,但是再把文件名更改回来还可以继续查看改文件的内容。

例:创建aa.txt 使用 -f 和-F进行查看,对文件名进行修改

  • 文件名修改前:

这里写图片描述

  • 文件名修改后(进行了两次修改):

这里写图片描述

创建目录(mkdir)

mkdir filename #创建目录(文件夹)
mkdir filename1 filename2 #创建两个目录
mkdir -p #创建多级目录

创建文件(touch echo)

touch file  #创建一个空文件
echo "123" > aa.txt  #创建aa.txt的同时写入123

使用vi命令也可以

删除目录(rmdir)

rmdir	目录名	#删除一个目录(空目录)	

删除文件(rm)

rm	文件名	#删除一个文件
	# rm abc 
	rm: remove regular empty file `abc'? y

rm -r	--recursive	递归删除
rm -f		强制删除,不用提示
rm -rf		强制递归删除
rm -rf *	#删除所有当前文件夹下的内容(慎用!)

可能出现的错误(估计你要打包走人了!!),这里看不懂先看下面的echo部分

shell脚本:

[root@rzdatahadoop001 ~]# mkdir /home/hadoop/001
[root@rzdatahadoop001 ~]# hpath="/home/hadoop/001"
[root@rzdatahadoop001 ~]# echo $hpath
/home/hadoop/001
[root@rzdatahadoop001 ~]# touch /home/hadoop/001/xxx.log
[root@rzdatahadoop001 ~]# echo $hpath
/home/hadoop/001
[root@rzdatahadoop001 ~]# rm -rf $hpath/*
[root@rzdatahadoop001 ~]# ll /home/hadoop/001/
total 0

#逻辑错误导致hpath复制为""(空)
[root@rzdatahadoop001 ~]# touch /home/hadoop/001/xxx.log
[root@rzdatahadoop001 ~]# hpath=""   
[root@rzdatahadoop001 ~]# echo $hpath
[root@rzdatahadoop001 ~]# rm -rf $hpath/*  ==>rm -rf /*  所有文件都删除了

if [ "${hpath}x" == "x" ];then

	echo "危险!退出!"
	exit
else
	rm -rf $hpath/* 
fi

复制文件(cp)

cp	copy(使用该命令要养成备份的习惯)
	cp  待拷贝文件  拷贝后的文件

移动或重新命名文件(mv)

mv   move
  mv 带剪切文件  剪切后文件(文件名可改变)

覆盖和追加(> >>)

> :覆盖文件中的内容
>> :追加文件中的内容(加在最后)

基本语法:
(1)ls –l >文件 (功能描述:ls列表的内容写入文件a.txt中(覆盖写))
(2)ls –al >>文件 (功能描述:ls列表的内容追加到文件aa.txt的末尾)

输出和输入(echo)

echo “123” :打印123
echo  “123”>文件名 :把该文件的内容修改为123;(“>”符号两边可有空格也可没有)
echo  “123” >>文件名:在该文件的最后追加123

帮助命令(man help)

man 命令 :查看命令的帮助信息(详细)  ,ctrl+z退出查看
命令 --help:查看命令的帮助信息

文件搜索

find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 
find / -user user1 搜索属于用户 'user1' 的文件和目录 
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限 
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备 
locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 
whereis halt 显示一个二进制文件、源码或man的位置 
which halt 显示一个二进制文件或可执行文件的完整路径 

wc命令用法

  • Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
1.命令格式:
wc [选项]文件...

2.命令功能:
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。
如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

3.命令参数:

-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息

权限操作

查看ip

ifconfig :查看虚拟机ip
hostname -i :(前提:配置好用户名和IP的映射关系)查看ip

win下查看IP:ipconfig

环境变量的配置

全局和个人配置文件所在位置:
全局:/etc/profile
个人:~/.bash_profile或者 ~/.bashrc

**注:1. 如果没有.bash_profile,我们可以用用命令: **
cp /etc/skel/.* 用户的家目录
复制该目录下的内容
2.注意.bash_profile的权限问题

生效配置
全局:source /etc/profile
个人:. .bash_profile(.bashrc) 或者 source .bash_profile(.bashrc)

其他常用操作

查看别名(alias)

alias :查看虚拟机中有哪些别名
  设置临时别名:  
     alias rt='cd /home/hadoop'  (=前后没有空格)
  设置永久别名:需要配置到用户的环境变量中,然后执行生效命令
      1. 修改root用户的配置文件:vi /etc/profile
      2. 在最后一行添加:alias rt='cd /home/hadoop' 命令
      3. 执行生效命令:source /etc/profile  

查看历史命令(history )

history  #显示出所有历史记录
history n  #显示出n条记录
!n   #执行第n条记录

管道命令(|)

  • 管道的两边都是命令,左边的命令先执行,执行的结果作为右边命令的输入
history | grep hadoop :会过滤出所有hadoop相关的内容。
怎样查看进程?(*****)   
[root@rzdatahadoop001 ~]# ps -ef | grep ntp
ntp       1393     1  0 11:10 ?        00:00:02 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

ntp :进程运行user
1393 :pid  
1: 父进程id

怎样查看端口号?(*****)
[root@rzdatahadoop001 ~]# netstat -nlp |grep ntp
          
[root@rzdatahadoop001 ~]# ps -ef|grep ntpd
  

问题:怎样查询一个程序(ntp)的端口号、ip ?

  • 第一种:ps -ef|grep ntp 先查询出pid 再根据pid查询端口号和ip
ntp       1393     1  0 14:57 ?        00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
root      2482  2130  0 15:22 pts/0    00:00:00 grep ntp

 [root@zydatahadoop001 ~]# netstat -nlp | grep 1393
udp        0      0 192.168.137.201:123         0.0.0.0:*                               1393/ntpd           
udp        0      0 127.0.0.1:123               0.0.0.0:*                               1393/ntpd           
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               1393/ntpd           
udp        0      0 fe80::20c:29ff:fe71:95ad:123 :::*                                    1393/ntpd           
udp        0      0 ::1:123                     :::*                                    1393/ntpd           
udp        0      0 :::123                      :::*                                    1393/ntpd  

192.168.137.201:123  这就查询出该机器的ip和ntp对应的端口号
  • 第二种:直接查询
[root@zydatahadoop001 ~]# netstat -nlp | grep ntp
udp        0      0 192.168.137.201:123         0.0.0.0:*                               1393/ntpd           
udp        0      0 127.0.0.1:123               0.0.0.0:*                               1393/ntpd           
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               1393/ntpd           
udp        0      0 fe80::20c:29ff:fe71:95ad:123 :::*                                    1393/ntpd           
udp        0      0 ::1:123                     :::*                                    1393/ntpd           
udp        0      0 :::123                      :::*                                    1393/ntpd     

192.168.137.201:123  这就查询出该机器的ip和ntp对应的端口号
  • 查看端口号
lsof -i :6060

时间和日期类

  1. 显示当前时间

     (1)date								(功能描述:显示当前时间)
     (2)date +%Y							(功能描述:显示当前年份)
     (3)date +%m							(功能描述:显示当前月份)
     (4)date +%d							(功能描述:显示当前是哪一天)
     (5)date +%Y%m%d   date +%Y/%m/%d …	(功能描述:显示当前年月日各种格式 )
     (6)date "+%Y-%m-%d %H:%M:%S"		(功能描述:显示年月日时分秒)
    
  2. 显示非当前时间

     (1)date -d '1 days ago'			(功能描述:显示前一天日期)
     (2)date -d yesterday +%Y%m%d	(同上)
     (3)date -d next-day +%Y%m%d	(功能描述:显示明天日期)
     (4)date -d 'next monday'			(功能描述:显示下周一时间)
    
  3. 设置系统时间

  • 基本语法:
    date -s 字符串时间
  • 案例
    [root@rzdatahadoop001 ~]# date -s "2017-06-19 20:52:18"
  1. cal查看日历
  • 基本语法:
    cal [选项] (功能描述:不加选项,显示本月日历)
  • 选项:
    -3 ,显示系统前一个月,当前月,下一个月的日历
    具体某一年,显示这一年的日历。
    2)案例:
[root@rzdatahadoop001 ~]# cal
[root@rzdatahadoop001 ~]# cal -3
[root@rzdatahadoop001 ~]# cal 2016

用户、用户组的常用命令:(IT运维)

  • 添加用户(useradd)
[root@rzdatahadoop001 ~]# useradd test  添加一个用户(test)
  • 查询用户信息(id 用户名)
[root@rzdatahadoop001 ~]# id test       查询该用户。
uid=501(test) gid=501(test) groups=501(test)
gid:主组
groups:所在组
  • passwd 设置用户密码
    基本语法:
    passwd 用户名 (功能描述:设置用户密码)

  • 删除用户(userdel)

[root@rzdatahadoop001 ~]# userdel test  删除该用户
[root@rzdatahadoop001 ~]# 
[root@rzdatahadoop001 ~]# id test  
id: ruoze: No such user
[root@rzdatahadoop001 ~]# useradd test  这时我们再添加test会出现下面的错误在家目录已经存在了
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[root@rzdatahadoop001 ~]# 
[root@rzdatahadoop001 ~]# ll /home  我们查询家目录
total 8
drwx------. 27 jepson jepson 4096 Dec  2 12:00 hadoop
drwx------.  4 ruoze  ruoze  4096 Dec  2 21:21 test  (该用户还在)
[root@rzdatahadoop001 ~]# 
[root@rzdatahadoop001 ~]# 


[root@rzdatahadoop001 ~]# cat /etc/passwd | grep test (利用管道查询该用户信息) 
 /etc/passwd :该目录下存放用户信息
test:x:501:501::/home/test:/bin/bash
[root@rzdatahadoop001 ~]# 
[root@rzdatahadoop001 ~]# cat /etc/group |grep test
test:x:501:
  • 添加一个用户到一个新的用户组(usermod)
[root@rzdatahadoop001 ~]# usermod -a -G bigdata test  
[root@rzdatahadoop001 ~]# id test
uid=501(test) gid=501(test) groups=501(test),502(bigdata)
[root@rzdatahadoop001 ~]# 
[root@rzdatahadoop001 ~]# 
[root@rzdatahadoop001 ~]# usermod -g bigdata test
[root@rzdatahadoop001 ~]# id test
uid=501(test) gid=502(bigdata) groups=502(bigdata)
  • 修改密码
[root@rzdatahadoop001 ~]# passwd test

如何切换用户

su test  切换到test用户
su - test  切换到test用户
exit  退出用户

两者有什么区别呢?

当前是root用户,使用su切换用户:
 [root@zydatahadoop001 home]# ll   查看家目录下所在用户
total 4
drwx------. 27 grace grace 4096 Dec  5  2017 grace
[root@zydatahadoop001 home]# su grace  使用su切换到grace用户
[grace@zydatahadoop001 home]$ pwd   查看当前所在位置
/home
[grace@zydatahadoop001 home]$ exit   退出用户
exit

使用su - 切换用户:
[root@zydatahadoop001 home]# su - grace 使用su - 切换到grace用户
[grace@zydatahadoop001 ~]$ pwd  查看当前所在位置
/home/grace

可以看出使用su -切换用户会进入其用户的家目录下而是用su则不会改变。
当我们使用su -切换用户同时也会执行用户的配置文件(/home/grace/.bash_profile) 一般使用su - 切换用户

who 查看登录用户信息

(1)whoami			(功能描述:显示自身用户名称)
  (2)who am i		(功能描述:显示登录用户的用户名)
(3)who			(功能描述:看当前有哪些用户登录到了本台机器上)

sudo命令,给普通用户设置root权限

使用Linux系统时,经常会被要求使用超级权限,如果拥有root账户那还好,可以直接进行任何操作,但是这并不一个好方法,也不推荐使用。root的权限太过大了,慎用!!!

  • 修改/etc/sudoers 配置文件
修改/etc/sudoers,为一个用户加sudo权限,添加一行  
[root@rzdatahadoop001 ~]# vi /etc/sudoers
用户名  ALL=(root)      NOPASSWD:ALL  (添加这一行内容)
     NOPASSWD:ALL  表示使用sudo命令时不用输入密码
测试效果:
[grace@rzdatahadoop001 ~]$ ls -l /root
ls: cannot open directory /root: Permission denied (出现:Permission denied 代表权限问题)
[grace@rzdatahadoop001 ~]$ sudo ls -l /root
total 120

文件权限

文件的权限位是从第二位到第十位
r: read		读
w: write	写
x: execute	执行
-: 代表在这一位没有这个权限
-rw-r--r--. 1 root root     4 Dec  2 12:29 xxx.log    存在一个xxx.log文件
第一位: -:代表文件 d:代表文件夹 l:代表连接
第一组: rw-  root这个用户对这个文件只有读写权限
第二组: r--  root这个组的所有用户对这个文件只有读权限
第三组: r--  其他用户组的所有用户组对这个文件只有读权限

修改文件或文件夹所属用户和用户组(chown)

  • chown: 修改文件夹或文件的所属的用户及用户组
chown 用户名:组名 文件名
chown -R test:test /0001   -R:参数代表对文件夹的修改
chown  test:test /root/xxx.log  即修改用户也修改了用户组
chown 用户名 文件名
chown  test /root/xxx.log   只修改用户
chgrp	change group :修改所在组
chgrp 组名 文件名
chgrp test /root/xxx.log

修改文件权限(chmod)

  • chmod:修改文件权限

使用数字的方式进行修改

chmod 数字 文件名
r	4	2^2
w	2	2^1
x	1	2^0
	将对应的数字相加,就是最终的权限。
rw-r--r-- ==》 644
777 =》 rwxrwxrwx
文件夹 : -R 递归--》文件夹(如果修改文件夹需要带上参数-R)

chmod -R 777 /0001  对文件夹进行修改权限 变为:rwxrwxrwx
chmod  777 /root/xxx.log  对文件进行权限修改 变为:rwxrwxrwx 

对RPM包的操作

  • 查询:
rpm -qa   查询所有安装在linux上的软件
rpm -qa | grep sudo    查询在操作系统上安装的sudo软件
  • 卸载:
rpm -e 软件名	
rpm -e sudo 删除sudo软件,会同时删除/etc/sudoers文件,但是系统会自动生成一个
/etc/sudoers.rpmsave 文件备份源文件

rpm的依赖问题
	在linux操作系统中使用rpm对软件进行安装或卸载的时候,会有软件之间的
	依赖问题存在,比如:安装a软件,要先安装b软件和c软件。。。
	如果想要强行安装或卸载而不考虑依赖问题,那么需要使用到--nodeps参数
	  --nodeps      do not verify package dependencies
	rpm -e --nodeps 软件名	#强行卸载这个软件  

YUM

首先要保证上网环境,开源镜像是系统默认的。
安装软件:
yum [-y] install 软件名
-y: 在安装过程中自动输入yes

  • 查询:
	yum list
		查询yum源上拥有的软件
	# yum list installed | more  
		查询在本机上已经安装的软件包
	# yum list updates | more
		查询可以更新的软件包
  • 卸载软件包
	yum [-y] remove 软件名
	-y: 在卸载的过程中自动输入yes

wget下载网络资源

  • wget:从网络上下载资源,支持HTTP HTTPS FTP这些协议
  • 语法:
	wget 网络地址
		#将网络上的文件下载下来后,存储在当前目录下
	wget -O 文件名 网络地址
		#网络上的文件下载下来后,直接存在某个文件中
	wget -b 网络地址
		#在后台下载网络文件

压缩和解压

在windows中,使用一款压缩软件就能全部搞定压缩和解压缩的问题
在linux中,一款压缩软件不能适用于所有压缩的文件

  • tar(常用)
	打包压缩命令
		使用tar进行打包压缩的文件以.tar.gz结尾
	压缩文件:
		tar -zcvf filename.tar.gz file1 file2 ...
	解压缩文件:
		tar -zxvf filename.tar.gz
		tar -zxvf filename.tar.gz -C 目录	#解压缩到指定目录下
	
	参数:
	-z, --gzip, --gunzip, --ungzip   filter the archive through gzip
	-c, --create               create a new archive
	-x, --extract, --get       extract files from an archive
	-v, --verbose              verbosely list files processed
	-f, --file=ARCHIVE         use archive file or device ARCHIVE
	
	
	特点:既可以进行压缩,也可以进行解压缩
			源文件保留

硬盘、内存、系统情况查看

df -h  查看硬盘使用情况
free -m  查看内存使用情况
top   查看系统情况
  • df查看磁盘
    基本语法:df 参数
    (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
参数功能
-a列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k以 KBytes 的容量显示各文件系统;
-m以 MBytes 的容量显示各文件系统;
-h以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H以 M=1000K 取代 M=1024K 的进位方式;
-T显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i不用硬盘容量,而以 inode 的数量来显示
  • top
    基本命令:
    top [选项]
选项功能
-d 秒数指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i使top不显示任何闲置或者僵死进程。
-p通过指定监控进程ID来仅仅监控某个进程的状态。
-s使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

(2)操作选项:

	P:		以CPU使用率排序,默认就是此项 
	M:		以内存的使用率排序 
	N:		以PID排序 
	q:		退出top

fdisk查看分区

  • 基本语法:fdisk –l (功能描述:查看磁盘分区详情)
    注意:在root用户下才能使用
  • 功能说明:
    (1)Linux分区
    这个硬盘是20G的,有255个磁面;63个扇区;2610个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(约为)=8.225280M(约为);
DeviceBootStartEndBlocksIdSystem
分区序列引导从X磁柱开始到Y磁柱结束容量分区类型ID分区类型
[grace@zydatahadoop001 ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005e654

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1332    10485760   83  Linux
/dev/sda3            1332        1593     2097152   82  Linux swap / Solaris

windows与linux交互(常用)

  • 首先需要安装lrzsz
    yum -y install lrzsz
  • rz : 从window上传到linux
    输入rz命令会弹出窗口,这时就可以选择需要上传的文件
  • sz :从linux下载到window上
    格式:sz 文件名
    上传下载的路径可以使用sourceCRT进行指定

作业调度(crontab)

查看当前用户下哪些作业: crontab -l
添加、编辑:crontab -e

这时可能会使用shell脚本执行命令

后台执行命令

&
	nohup
	screen(yum install -y screen)

工作:
	./test.sh &
	nohup ./test.sh &      --》生成nohup.out
	nohup ./test.sh>test.log 2>&1 &



screen:
screen -list 查看会话
screen -S xxx 建立一个后台的会话
screen -r xxx/id 进入会话
退出会话: ctrl+a+d  --》[detached] 分离

软连接 (ln -s)

应用场景:
在/A/test.sh 需要自行的shell脚本,现在想移动到/B/ 目录下,但是我此时的访问路径还是/A/test.sh ,这时候就可以使用软连接:

  • 创建 A,B目录 ,并在A目录下创建test.sh脚本
[grace@zydatahadoop001 ~]$ ll
total 40
drwxrwxr-x. 2 grace grace 4096 Dec 19 03:32 A
drwxrwxr-x. 2 grace grace 4096 Dec 19 03:26 B
drwxr-xr-x. 5 grace grace 4096 Dec  2 01:32 Desktop
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Documents
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Downloads
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Music
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Pictures
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Public
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Templates
drwxr-xr-x. 2 grace grace 4096 Dec  1 17:57 Videos
[grace@zydatahadoop001 ~]$ cat A/test.sh 
#!/bin/sh
date
  • 将/A/test.sh移动到 /B/目录下
[grace@zydatahadoop001 ~]$ mv A/test.sh B/
[grace@zydatahadoop001 ~]$ cd B
[grace@zydatahadoop001 B]$ ll
total 4
-rwxrwxrwx. 1 grace grace 15 Dec 19 03:32 test.sh
  • 创建软连接
[grace@zydatahadoop001 B]$ ln -s /home/grace/B/test.sh /home/grace/A/test.sh
[grace@zydatahadoop001 B]$ ll
total 4
-rwxrwxrwx. 1 grace grace 15 Dec 19 03:32 test.sh

[grace@zydatahadoop001 ~]$ cd A
[grace@zydatahadoop001 A]$ ll
total 0
lrwxrwxrwx. 1 grace grace 21 Dec 19 03:37 test.sh -> /home/grace/B/test.sh

此时并不因为test.sh文件移动而修改执行命令:

[grace@zydatahadoop001 ~]$ A/test.sh 
Tue Dec 19 03:51:19 CST 2017
成功打印信息

vi

vi命令是UNIX操作系统和
类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

vi的编辑模式和命令模式

  • 编辑模式:完成对文本的编辑。
  • 命令模式:实现对文件的操作。
  • 尾行模式:使用esc进入到命令模式后,保存文件或者退出时,要先进入尾行模式使用shift+:。
三种模式之间的切换:

vi filename :进入命令模式;
使用“A”、“a”、“O”、“o”、“I”、“i”键,切换到编辑模式;
使用“esc”键,从编辑模式切换到命令模式;
在命令模式中shift+:进入尾行模式。

如何切换到编辑模式

A:在当前光标的行末添加文本;
a: 在当前光标的字符后添加文本;
I:在当前光标的行首插入文本;
i:在当前光标的字符前插入文本;
O:在当前光标的行前插入一行空格;
o: 在当前光标的行后插入一行空格。

命令模式下的操作

gg:光标停留在第一行第一个字符;
G:光标停留在最后一行第一个字符;
dd:剪切光标所在一行内容;
dG:删除光标所在行即下面所有行
ndd(数字+dd):剪切光标下方n行;
D:从光标所在的位置剪切到该行的末尾;
p:粘贴
yy:复制一行;
nyy(数字+yy):复制光标下方n行;
shift+$:光标移动到该行的最后一个字符。

尾行模式下的操作

wq:在命令模式下,执行存盘退出操作;
w:在命令模式下,执行存盘操作;
q:在命令模式下,执行退出vi操作;
q!:在命令模式下,执行强制退出vi操作;
wq!:强制保存+退出。

如果是只读文件,你想往里面写东西,会报: ‘readonly’ option is set (add ! to override)

搜索命令

在命令模式下,搜索一个字符串string
/string
n	继续搜索下一个;
N	搜索上一个出现位置。

系统管理操作

centos 6
1. 防火墙
命令功能
service iptables status(功能描述:查看防火墙状态)
chkconfig iptables –list(功能描述:查看防火墙开机启动状态)(双横线)
service iptables stop(功能描述:临时关闭防火墙)
chkconfig iptables off(功能描述:关闭防火墙开机启动)
chkconfig iptables on(功能描述:开启防火墙开机启动)
2. 关机、重启

在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机 。
正确的关机流程为:sync > shutdown > reboot > halt

  • 基本语法:
    (1)sync (功能描述:将数据由内存同步到硬盘中)
    (2)shutdown [选项] 时间
    选项:
    -h:关机
    -r:重启
    (3)halt (功能描述:关闭系统,等同于shutdown –h now 和 poweroff)
    (4)reboot (功能描述:就是重启,等同于 shutdown –r now)
CoentOS7

CentOS中防火墙程序主要是firewall和iptables,CentOS7中firewall服务已经默认安装好了,而iptables服务需要自己用yum install iptabes-services来安装。

1.ContOS7使用firewall进行防火墙操作

查看防火墙状态
firewall-cmd    --state

关闭防火墙
systemctl stop firewalld.service

开启防火墙
sysremctl start firewalld.service

禁止防火墙自启动
systemctl disable firewalld.service
  1. systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
  1. 查看系统版本及位数
查看内核版本:uname -a
查看系统版本:cat /etc/os-release  (但是,centos6里没有这个文件,所以这个方法不适用)
或者 rpm -q centos-release
查看操作系统位数:getconf LONG_BIT
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值