目录
一、常用命令
二、系统命令
三、用户和组
四、权限
五、文件相关命令
六、查找
七、正则表达式
八、输入输出重定向
九、进程控制
十、其他命令
1、远程文件复制:scp
2、locate查找
3、which命令
4、设置或显示环境变量:export
5、修改主机名&ip地址
十一、yum安装命令
十二、rpm
十三、Linux的基本配置
十四、关闭防火墙
1、暂时关闭防火墙
2、如何查看自己的防火墙属于 iptables 还是 firewalld
3、永久关闭防火墙(通过命令)
一、常用命令
1、在/hadoop目录下创建src和WebRoot两个文件夹
分别创建:mkdir /hadoop/src mkdir /hadoop/WebRoot
同时创建:mkdir /hadoop/{src,WebRoot}
2、进入到/hadoop目录,在该目录下创建.classpath和README文件
分别创建:touch .classpath touch README
同时创建:touch {.classpath,README}
3、在/hadoop目录下面创建一个test.txt文件,同时写入内容"this is test"
echo "this is test" > test.txt
4、向README文件追加写入"please read me first"
echo "please read me first" >> README
5、将test.txt的内容追加到README文件中
cat test.txt >> README
6、进入到/hadoop-bak目录,将test.txt移动到src目录下,并修改文件名为Student.java
mv test.txt src/Student.java
7、在src目录下创建一个struts.xml
> struts.xml
8、返回到/hadoop目录,查看一下README文件有多单词,多少个少行
wc -w README
wc -l README
9、返回到根目录,将/hadoop目录先打包,再用gzip压缩
分步完成:tar -cvf hadoop.tar hadoop gzip hadoop.tar
一步完成:tar -zcvf hadoop.tar.gz hadoop
10、将其解压缩,再取消打包
分步完成:gzip -d hadoop.tar.gz 或 gunzip hadoop.tar.gz
一步完成:tar -zxvf hadoop.tar.gz
二、系统命令
1、查看主机名
hostname
2、查看系统信息
uname -a
uname -r
3、日期
date
date +%Y-%m-%d
date +%T
date +%Y-%m-%d" "%T
4、日历
cal 2012
5、查看文件信息
file filename
6、查看文件大小
du -h
du -ah
7、查看分区
df -h
8、关机
shutdown -h now /init 0
shutdown -r now /reboot
三、用户和组
1、添加一个tom用户,设置它属于users组,并添加注释信息
分步完成:useradd tom
usermod -g users tom
usermod -c "hr tom" tom
一步完成:useradd -g users -c "hr tom" tom
2、添加一个jerry用户并设置密码
useradd jerry
passwd jerry
四、权限
1、创建c.txt文件所有人都可以写和执行
chmod 666 c.txt
2、将/hadoop目录下的所有文件与子目录的拥有者设为root,用户拥有组为users
chown -R root:users /hadoop
3、将当前目录下的所有文件与子目录的用户皆设为hadoop,组设为users
chown -R hadoop:users *
五、文件相关命令
1、移动
mv a.txt /ect/
改名
mv b.txt a.txt
移动并改名
mv a.txt ../b.txt
2、拷贝并改名
cp a.txt /etc/b.txt
3、将一个文件的内容复制到里另一个文件中
cat a.txt > b.txt
追加内容
cat a.txt >> b.txt
4、将所有的java语言程式拷贝至finished子目录中:
cp *.java finished
六、查找
1.查找可执行的命令:
which ls
2.查找可执行的命令和帮助的位置:
whereis ls
3.查找文件(需要更新库:updatedb)
locate hadoop.txt
4.从某个文件夹开始查找
find -name "hadooop*"
find -name "hadooop*" -ls
5.查找并删除
find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;
6.查找用户为hadoop的文件
find /usr -user hadoop -ls
7.查找用户为hadoop并且(-a)拥有组为root的文件
find /usr -user hadoop -a -group root -ls
8.查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d
9.查找权限为777的文件
find / -perm -777 -type d -ls
10.显示命令历史
history
11.grep
grep hadoop /etc/password
七、打包与压缩
1.gzip压缩
gzip a.txt
2.解压
gunzip a.txt.gz
gzip -d a.txt.gz
3.bzip2压缩
bzip2 a
4.解压
bunzip2 a.bz2
bzip2 -d a.bz2
5.将当前目录的文件打包
tar -cvf bak.tar .
将/etc/password追加文件到bak.tar中(r)
t ar -rvf bak.tar /etc/password
6.解压
tar -xvf bak.tar
7.打包并压缩gzip
tar -zcvf a.tar.gz
8.解压缩
tar -zxvf a.tar.gz
解压到/usr/下
tar -zxvf a.tar.gz -C /usr
9.查看压缩包内容
tar -ztvf a.tar.gz
zip/unzip
10.打包并压缩成bz2
tar -jcvf a.tar.bz2
11.解压bz2
tar -jxvf a.tar.bz2
七、正则表达式
规则:
. : 任意一个字符
a* : 任意多个a(零个或多个a)
a? : 零个或一个a
a+ : 一个或多个a
.* : 任意多个任意字符
\. : 转义.
\<h.*p\> :以h开头,p结尾的一个单词
o\{2\} : o重复两次
grep '^i.\{18\}n$' /usr/share/dict/words
查找不是以#开头的行
grep -v '^#' a.txt | grep -v '^$'
以h或r开头的
grep '^[hr]' /etc/passwd
不是以h和r开头的
grep '^[^hr]' /etc/passwd
不是以h到r开头的
grep '^[^h-r]' /etc/passwd
八、输入输出重定向
1.新建一个文件
touch a.txt
> b.txt
2.错误重定向:2>
find /etc -name zhaoxing.txt 2> error.txt
3.将正确或错误的信息都输入到log.txt中
find /etc -name passwd > /tmp/log.txt 2>&1
find /etc -name passwd &> /tmp/log.txt
4.追加>>
5.将小写转为大写(输入重定向)
tr "a-z" "A-Z" < /etc/passwd
6.自动创建文件
cat > log.txt << EXIT
> ccc
> ddd
> EXI
7.查看/etc下的文件有多少个?
ls -l /etc/ | grep '^d' | wc -l
8.查看/etc下的文件有多少个,并将文件详情输入到result.txt中
ls -l /etc/ | grep '^d' | tee result.txt | wc -l
九、进程控制
1.查看用户最近登录情况
last
lastlog
2.查看硬盘使用情况
df
3.查看文件大小
du
4.查看内存使用情况
free
5.查看文件系统
/proc
6.查看日志
ls /var/log/
7.查看系统报错日志
tail /var/log/messages
8.查看进程
top
9.结束进程
kill 1234
kill -9 4333
十、其他命令
1、远程文件复制:scp
scp 命令用于 Linux 之间复制文件和目录,scp是 secure copy 的缩写是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
复制文件
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
复制文件夹
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
实例:
scp /home/space/music/1.mp3 root@xiaoxiaoming.xyz:/home/root/others/music
scp /home/space/music/1.mp3 root@xiaoxiaoming.xyz:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 xiaoxiaoming.xyz:/home/root/others/music
scp /home/space/music/1.mp3 xiaoxiaoming.xyz:/home/root/others/music/001.mp3
scp -r /home/space/music/ root@xiaoxiaoming.xyz:/home/root/others/
scp -r /home/space/music/ xiaoxiaoming.xyz:/home/root/others/
2、locate查找
locate命令会去保存文档和目录名称的数据库内,查找文件或目录。
一般情况我们只需要输入locate your_file_name 即可查找指定文件。
参数:
-d或–database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/mlocate目录里,文档名为mlocate.db。
查找passwd文件,输入以下命令:
locate passwd
locate与find的区别: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/mlocate/mlocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
3、which命令
which查找$PATH中设置命令及安装文件目录所在位置
python@ubuntu:/var/lib/mlocate$ which locate
/usr/bin/locate
4、设置或显示环境变量:export
在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。
export [-fnp][变量名称]=[变量设置值]
# export MYENV=7 //定义环境变量并赋值
# export -p //列出当前的环境变量
5、修改主机名&ip地址
显示主机名:hostname
临时修改:hostname xxx
永久修改:
对于Ubuntu 系统:vim /etc/hostname
对于centos系统:vim /etc/sysconfig/network
在此配置文件中添加一条HOSTNAME=node1
针对centos7系统,可以使用如下命令
hostnamectl set-hostname xxx
一般需要重开shell甚至重启操作系统才能生效。
十一、yum安装命令
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
更新国内yum源,网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
首先备份/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/
CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
运行以下命令生成缓存
yum clean all
yum makecache
实例:
列出所有可更新的软件清单命令:yum check-update
更新所有软件命令:yum update
仅安装指定的软件命令:yum install <package_name>
仅更新指定的软件命令:yum update <package_name>
显示包信息:yum info <package_name>
列出所有可安裝的软件清单命令:yum list
删除软件包命令:yum remove <package_name>
查找软件包 命令:yum search <keyword>
清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
十二、rpm
RPM是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。
常见用法:
rpm -ivh <rpm包名> 安装软件
rpm -e <rpm包名> 卸载安装
rpm -qi <rpm包名> 显示软件安装信息
rpm -qa | grep xxx 查询软件是否安装(包括相关依赖)
rpm -Uvh <rpm包名> 升级一个rpm
具体参数详解:
-i, --install 安装包
-v, --verbose 列出更多详细信息,安装进度
-h, --hash 安装时列出hash标记 (与 -v连用)
-e, --erase 卸载安装包
-U, --upgrade=+ 升级包
–replacepkge 无论软件包是否已被安装,都强行安装软件包
–test 安装测试,并不实际安装
–nodeps 忽略软件包的依赖关系强行安装
–force 忽略软件包及文件的冲突
-q,–query:
-a, --all 查询/校验所有的安装包
-p, --package 查询/校验一个安装文件
-l, --list 列出安装文件
-d, --docfiles 列出所有文档文件
-f, --file 查询/校验安装包中所包含的文件
# rpm -hvi dejagnu-1.4.2-10.noarch.rpm
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 签名:NOKEY, key ID db42a60e
准备...
########################################### [100%]
# rpm -qi dejagnu-1.4.2-10.noarch.rpm
【第1次更新 教程、类似命令关联】
十三、Linux的基本配置
1.修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop1
2.修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.101
NETMASK=255.255.255.0
service network restart
3.修改ip地址和主机名的映射关系
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.101 hadoop1
关闭iptables并设置其开机启动/不启动
service iptables stop
chkconfig iptables on
chkconfig iptables off
十四、关闭防火墙
1、暂时关闭防火墙
禁⽤防⽕墙 :
systemctl stop firewalld
启动/关闭防火墙:
查看firewalld状态:
systemctl status firewalld #查看防火墙状态
显示running,既防火墙开启了
2、如何查看自己的防火墙属于 iptables 还是 firewalld
sudo firewall-cmd --state
iptables防火墙,则会出现内容:
iptables: Firewall is not running.
iptables: Firewall is running. //如果启动了会出现这个
firewalld 防火墙,则会出现内容:
[root@bedo19c /]# sudo firewall-cmd --state
running
3、永久关闭防火墙(通过命令)
1、对于 iptables 防火墙:
sudo service iptables stop
sudo chkconfig iptables off
2、对于 firewalld 防火墙:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
3、永久关闭防火墙(通过配置文件):
1、对于 iptables 防火墙:
然后将文件中的所有规则都删除,保存并退出文件。这将完全禁用 iptables 防火墙。
sudo vi /etc/sysconfig/iptables
2、对于 firewalld 防火墙:
在该文件中找到 Enabled 字段,并将其值从 yes 修改为 no。然后保存并退出文件。这将完全禁用 firewalld 防火墙
sudo vi /etc/firewalld/firewalld.conf