linux命令学习笔记

来源:互联网 发布:网络市场监管专项行动 编辑:程序博客网 时间:2024/05/23 19:39

Linux 文件权限设置

文件权限

  1. chmod 664 /home/admin/tex.txt 修改文件权限
  2. chmod g-r /home/admin/tex.txt 去掉文件所属权限组的读权限
  3. chmod o+w /home/admin/tex.txt 增加其他用户的的写权限
  4. chmod u+x /home/admin/tex.txt 增加当前用户的执行权限
  5. chmod u=rwx,g=rx,o=rx home/admin/tex.txt 修改文件权限

更改文件所有者,变更为lingdi用户

chown [用户名] /home/admin/tex.txt

更改文件权限组,变更为lingdi组

chgrp [组名] /home/admin/tex.txt

Linux 用户及用户组设置

查看用户信息

id lingdi

添加用户、设置密码、删除用户密码

  1. useradd [用户名]
  2. passwd [用户名]
  3. passwd [用户名] -d

添加组

groupadd [组名]

创建用户的同时指定将该用户分配到哪个组下

useradd ‐g [组名] [用户名]

用户权限

usermod ‐g [组名] [用户名]
usermod ‐d [目录名] [用户名]. 改变该用户登录的初始目录

查看linux中所有用户信息,可看不可编辑

  1. cat /etc/passwd
  2. vi /etc/passwd 可编辑
    内容格式:注册名:口令:用户id:组标id:用户名:用户主目录:命令解释程序

查看所有组的信息

  1. cat /etc/group
  2. vi /etc/group 可编辑
    内容格式:root:x:0:root,linuxsir ( 用户组root,x是密码段,组ID是0, root用户组下包括root、linuxsir以及GID为0的其它用户)

临时关闭和启用用户

  1. passwd [用户名] –l 关闭
  2. passwd [用户名] –u 打开

删除用户、组

  1. userdel [用户名]
  2. groupdel [组名]

强制删除该用户的主目录和主目录下的所有文件和子目录

usermod –G [组名] [用户名]

操作组中的用户

passwd -d [用户名] [组名]
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

Linux 系统命令

查看命令怎么使用

man [command]

查看命令所在位置

which [command]

查看主机名

hostname

当前用户

  1. whoami :显示的是当前用户下的用户名
  2. who am i :显示的是登录时的用户名
  3. who :显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)

查看系统类型:Linux

uname

查看内核版本:2.6.32-642.13.1.el6.x86_64

uname -r

查看cpu信息

cat /proc/cpuinfo

查看内存信息

cat /proc/meminfo

查看磁盘使用情况

df -lh

查看当前目录所耗用磁盘大小

du -sh /home/lingdi/

查看磁盘信息

fdisk -l

修复磁盘,自动修复

fsck /dev/sda3

查看挂载磁盘信息

mount

挂载磁盘

mount /dev/sbd1 /data01

卸载磁盘

umout /dev/sdb1

看系统内存使用情况

free -m

看各进程内存使用情况

top 【-m 看详细信息】

查看网卡相关信息

cd /etc/sysconfig/network-scripts/

Linux 下软件安装的方式

  1. 第一种方式 : RPM命令
    1) 检查某个软件是否安装
    rpm -qa | grep nginx
    2) 卸载已经安装的软件
    rpm -e —nodeps [上面出现的,多个空格隔开]
    3) 安装软件
    rpm -ivh xxx.rpm

2.第二种方式:压缩包安装
a.解压压缩包后.
b.再配置bin目录到环境变量中去【 /etc/profile】,
c.执行命令:source /etc/profile ,使目录生效

A. tar软件
1) 解压当前目录
tar -zxvf xxx.tar.gz
2)解压到指定目录
tar -zxvf xxx.tar.gz -C /home/lingdi
3.压缩
# tar -zcf xxx.tar.gz /xxxx/xxx.txt

B. zip软件
1) 解压
unzip xxxx.zip
2) 压缩
zip xxx.zip xxxx.txt

第三种方式: yum等其他自动安装命令
缺点:需要配置源,
好处:比较自动化,解决软件包的依赖关系 及 各个软件安装顺序

Linux 下定时任务

crontab基本定义
语法
* * * * * [command]
分 (1-59),每10分钟:*/10
时(0-23),每2小时: */10
日(1-31)
月(1-12)
星期(0-6)

案例:
##每天21:30分执行: 30 21 * * *
##每月的1,11,21号的2:30 : 30 2 1,11,21 * *
##每周六或每周日,1:45执行: 45 1 * * 6,0
##每天20:00 至23:00,每半小时执行一次。0,30 20-23 * * *

创建一个定时任务

crontab -e

$ /1 * * * /bin/date >> /Users/liuhong/date-log.txt
每分钟,写一次时间到date-log.txt 中

查看已有定时任务列表

# crontab -l

## 删除所有的定时任务
# crontab -r

## 删除单个定时任务
# 直接进入定时任务列表文件,直接删除单条

========Linux shell脚本=========

1.脚本文件头
#!/bin/bash
#!/bin/sh

2.脚本参数
19 / 1{9} :第1-9个参数获取方式
10{n>10} :第10个及以后的参数获取方式
#     :参数的个数* :参数字符串
$$ :当前执行脚本的进程号
$! :最后一个后台进程运行的进程号
$? :上一条命令执行正确返回0,其他的表示上一条执行错误

3.数组
## 定义数组
# arr=(lingdi0 lingdi1 lingdi2)

## 输出第三个元素
# ${arr[2]}

## 输出所有元素
# ${arr[*]}

## 输出数组大小#  ${#arr[*]}##赋值 # arr[0]=lingdi

4.时间 date
1)今天
date1=(date +%Y-%m-%d)

2)两天前
date2=(datedate=2daysago+date2=(date –date=‘-2 days’ +%Y-%m-%d)

3)一天后
date3=(datedate=1daysago+date3=(date –date=‘1 days’ +%Y-%m-%d)

显示系统日期时间

date

设置日期和时间

date -s 2015-09-30
date -s 14:42:45

显示日历表

cal 2017
cal 09 2017 九月份

Shell脚本基础

判断文件

test -e [filename]
-e 文件是否存在
-f 文件是否存在,且为file
-d 目录是否存在

说明: test -e filename 和 [ -e filename ] 一样

判断文件的权限

test -e [filename]
-r 文件是否存在,且拥有可读权限
-w 文件是否存在,且拥有可写权限
-x 文件是否存在,且拥有可执行权限

两个整数之前的判定

test [n1] -eq [n2]
-eq 是否相等
-ne 是否不等
-gt n1是否大于n2
-lt n1是否小于n2
-ge n1是否大于等于n2
-le n1是否小于等于n2

判断字符串

test -z [string]
-e 字符串是否为空
-n 字符串是否不为空
test [str] == [string] 是否相等
test [str] = [string] 是否相等
test [str] != [string] 是否不相等

判断语句if案例

n1=1n2=2if [ "$n1" -eq "$n2" ]; then  echo "n1 eq n2"elif [ "$n1" -gt "$n2" ]   echo "n1 gt n2"else   echo "n1 not eq n2"fi

for循环语方式1

for index in 1 2 3 4do    echo ${index}done

for循环语方式2

num=10sum=0for ((index=0;i<${num};i=i+1 ))do   num=$((${num}+${index}))doneecho ${num}

while循环语方式

num = 10i = 0while [ $i -le $num ]do    echo “index${i}done

until循环语方式

 num = 10i = 0until [ $i -gt $num ]do    echo “index${i}”   i=$(($i+1))done

while 读取文件循环语方式

cat ${filename} | while read linedo  echo ${line}done
cat `ls ./*.txt` | while read linedo  echo ${line}done
原创粉丝点击