Linux常用命令

61 篇文章 0 订阅
57 篇文章 3 订阅

Linux常用命令

1. 查找

1.1 grep

grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
格式:grep [option] pattern [file]
可使用 —help 查看更多参数。
使用实例:

ps -ef | grep sshd 					# 查找指定 ssh 服务进程
ps -ef | grep sshd | grep -v grep 	# 查找指定服务进程,排除 gerp 本身
ps -ef | grep sshd –c 				# 查找指定进程个数
cat a.txt | grep -f b.txt 			# 从文件中读取关键词进行搜索 ---- 输出 a.txt 文件中含有从 b.txt 文件中读取出的关键词的内容行
cat a.txt | grep –nf b.txt 			# 从文件中读取关键词进行搜索,显示行号
grep -n 'linux' test.txt 			# 从文件中查找关键词,并显示行号
cat test.txt |grep ^u 				# 找出以 u 开头的行内容
cat test.txt |grep ^[^u] 			# 输出非 u 开头的行内容
cat test.txt |grep hat$ 			# 输出以 hat 结尾的行内容
cat test.txt |grep -E "ed|at" 		# 显示包含 ed 或者 at 字符的内容行
1.2 find

find 命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
实际参数很多,可使用 —help 查看。
使用实例:

find . -name "*.log" -ls 			# 在当前目录查找以.log 结尾的文件,并显示详细信息。
find /root/ -perm 777 				# 查找/root/目录下权限为 777 的文件
find . -type f -name "*.log" 		# 查找当目录,以.log 结尾的普通文件
find . -type d | sort 				# 查找当前所有目录并排序
find . -size +100M 					# 查找当前目录大于 100M 的文件
1.3 locate

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库。之后当寻找时就只需查询这个数据库(/var/lib/locatedb)。
Linux 系统自动创建这个数据库,默认每天自动更新一次,所以使用 locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

# 如果是精简版 CentOS 系统需要安装 locate 命令
yum -y install mlocate
# updatedb 命令来创建 locate 命令依赖的数据库
updatedb

使用实例:

locate /etc/sh		# 搜索 etc 目录下所有以 sh 开头的文件
locate pwd			# 查找和 pwd 相关的所有文件
1.4 whereis

whereis 命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。
whereis 和下 locate 一样,会从数据库中查找数据,而不是像 find 命令那样,通过遍历硬盘来查找。
使用实例:

whereis ls 			# 将和 ls 文件相关的文件都查找出来
					# ls: /bin/ls /usr/share/man/man1/ls.1.gz
whereis -m ls 		# 查找 ls 命令说明文档路径
whereis -s ls 		# 查找 ls 源文件
1.5 which

which 命令的作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档,所以,
不同的 PATH 配置内容所找到的命令会不一样。

使用实例:

which pwd 			# 查找 pwd 命令所在路径
which java 			# 查找 path 中 java 的路径
which 				# 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档,所以,不同的 PATH 配置内容所找到的命令会不一样。

2. 切换用户

创建新用户
adduser 新用户名 -- 可以创建一个新用户,然后输入 passwd 
1. su

su 用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是 root向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。
su 在不加任何参数,默认为切换到 root 用户,但没有转到 root 用户根目录下;su 加参数 - ,表示默认切换到 root 用户,并转到 root 用户根目录下。

su 不足:如果某个用户需要使用 root 权限、则必须要把 root 密码告诉此用户。
退出返回之前的用户:exit

su 用户名(可以是root)    可以切换用户
但是从普通用户切换到root用户时需要输入root的密码。
在root用户下,使用 su 命令直接切换到普通用户
使用 su 直接切换回root用户后,pwd 查询到的地址还是普通用户下进入的地址。
使用 su - 命令切换回root用户时,pwd查询的目录回到/root
2. sudo
sudo:可以让普通用户具有临 时使用 root 权限的权利。
在 /etc/sudoers 配置文件中,可以配置相应的权限。
使用命令: visudo可以打开 /etc/sudoers 文件

sudo 是为所有想使用 root 权限的普通用户设计的。可以让普通用户具有临时使用 root 权限的权利。只需输入自己账户的密码即可。当然这个普通用户必须在/etc/sudoers 文件中有配置项、才具有使用 sudo 的权利。
没有配置权限之前,普通用户无法进行 root 权限操作:

sudo01

使用 root 用户编辑/etc/sudoers 文件,给普通用户授权
命令行输入 visudo,打开/etc/sudoers 文件,加入如下的内容,保存。

sudo02

这样普通用户就可以使用 sudo 执行 root 权限的命令了

sudo03

# 案例:我们想让 hadoop 用户在 node -23主机上以 allen 的身份执行 kill 命令, 就这样编写配置文件:
    hadoop node -23 =( allen ) /bin/kill
# 案例:只允许 hadoop 用户以 root 身份在 node -23 上执行 ls 、cat 命令, 并且执行时候免输入密码。
    hadoop node -23=NOPASSWD: /bin/ls,/bin/cat
    
# 当修改权限后,普通用户执行root权限时,需要在命令前加 sudo 才能成功执行命令

sudo 的工作过程如下:

  1. 当用户执行 sudo 时,系统会主动寻找/etc/sudoers 文件,判断该用户是否有执行 sudo 的权限
  2. 确认用户具有可执行 sudo 的权限后,让用户输入用户自己的密码确认
  3. 若密码输入成功,则开始执行 sudo 后续的命令

如果想要更加精准的控制,就需要理解配置中的含义。
hadoop ALL=(ALL) ALL

  • 第一个 ALL 是指网络中的主机,我们可以指定主机名,这样 hadoop 只可以在此主机上执行后面的命令。
  • 第二个括号里的 ALL 是指目标用户,也就是以谁的身份去执行命令。
  • 最后一个 ALL 是指命令名了。

3.挂载(mount)命令

在 linux 操作系统中,挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。要访问存储设备中的文件,通过访问这个挂载目录来访问。
命令格式:mount [-t vfstype] [-o options] device dir

  • -t vfstype 指定文件系统的类型。mount 会自动选择正确的类型。常用类型有:光盘镜像 iso9660、linux 文件网络共享 nfs 等等。
  • -o options 主要用来描述设备或档案的挂接方式。常用的参数有:
    • loop:用来把一个文件当成硬盘分区挂接上系统
    • ro:采用只读方式挂接设备
    • rw:采用读写方式挂接设备
  • device 要挂接(mount)的设备
  • dir 设备在系统上的挂接点(mount point)
# 案例:挂载光驱
	mkdir /mnt/cdrom
    mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/
# 将设备/dev/cdrom 挂载到 挂载点/mnt/cdrom 中
# 案例:挂载光盘镜像文件(.iso)
    mkdir /mnt/centos
    mount -o loop /root/Centos-6.7.DVD1.iso /mnt/centos
# 案例:卸载 umount
    umount /mnt/cdrom

4. 系统服务管理

service --status-all 		# 查看系统所有的后台服务进程
service sshd status 		# 查看指定的后台服务进程的状态
service sshd stop 
service sshd start
service sshd restart

# 配置后台服务进程的开机自启
chkconfig httpd on 			# 让 httpd 服务开机自启
chkconfig httpd off 		# 让 httpd 服务开机不要自启

5. crontab 配置

crontab 是 Unix 和 Linux 用于设置周期性被执行的指令。通过 crontab 命令,可以在固定间隔时间执行指定的系统指令或 shell 脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

1. crontab 安装:

yum install crontabs

2. 服务操作说明:
service crond start 	## 启动服务
service crond stop 		## 关闭服务
service crond restart 	## 重启服务
service crond reload 	## 重新载入配置
service crond status 	## 查看 crontab 服务状态:
chkconfig crond --list 	## 查看 crontab 服务是否已设置为开机启动
chkconfig crond on 		## 加入开机自动启动
3. 命令格式
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

参数说明:

  • -u user:用来设定某个用户的 crontab 服务
    file:file 是命令文件的名字,表示将 file 做为 crontab 的任务列表文件并载入 crontab。

  • -e:编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。

  • -l:显示某个用户的 crontab 文件内容。如果不指定用户,则表示显示当前用户的 crontab 文件内容。

  • -r:删除定时任务配置,从/var/spool/cron 目录中删除某个用户的 crontab文件,如果不指定用户,则默认删除当前用户的 crontab 文件。

  • -i:在删除用户的 crontab 文件时给确认提示。

    命令示例:

    crontab file [-u user] 		## 用指定的文件替代目前的 crontab。
    crontab -l [-u user] 		## 列出用户目前的 crontab. 
    crontab -e [-u user] 		## 编辑用户目前的 crontab.
    
4. 配置说明、实例
*  *  * *  *  command 
分 时 日 月 周 命令
第 1 列表示分钟 1~59 每分钟用*或者 */1 表示
第 2 列表示小时 0~23(0 表示 0 点)
第 3 列表示日期 1~31 
第 4 列表示月份 1~12 
第 5 列标识号星期 0~6(0 表示星期天)
第 6 列要运行的命令

配置实例:

*/1 * * * * date >> /root/date.txt					# 每分钟执行一次 date 命令
30 21 * * * /usr/local/etc/rc.d/httpd restart 		# 每晚的 21:30 重启 apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart 	# 每月 1、10、22 日的 4 : 45 重启 apache。
10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart 		# 每周六、周日的 1 : 10 重启 apache。
0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart 	# 每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache。
23-7/1 * * * /usr/local/etc/rc.d/httpd restart 		# 晚上 11 点到早上 7 点之间,每隔一小时重启 apache
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值