Linux常用命令二
1、用户和用户组
用户:使用操作系统的人
用户组:具有相同权限的一组用户
/etc/passwd 存储用户登录信息
/etc/group 存储用户组信息
useradd 用户名 添加一个用户
userdel 用户名 删除一个用户
groupadd 用户组名 添加一个用户组
groupdel 用户组名 删除一个用户组
usermod -l 新用户名 旧用户名 将用户重命名
usermod -a -G 用户组名 用户名
su 用户名 切换到某个用户
su 切换到root用户
su - 用户名
切换到某个用户,并执行该用户的个人环境变量,在进入该用户家目录(一般用这个居多)
id 用户名 显示该用户信息
passwd 新密码 修改当前用户
2、权限(隐藏文件权限644)
-rwxrw-r-- r读4 w写2 x执行1
第1位代表文件类型:-普通文件 d目录 l软链接文件
第2-4位代表所有者(用u表示)的权限为读写执行
第5-7位代表所属组(用g表示)的权限为读写
第8-10位代表其他人(用o表示)的权限为读
chmod u+x,g-w 文件(夹)名
对文件所有者增加执行权限,对文件所属组剥夺写权限
chmod -R 777 文件(夹)名
对文件所有者所属组其他人赋予读写执行权限,如果该文件有子目录或子文件,则该权限也赋予子文件或子目录
chown 用户名 文件(夹)名 修改文件所有者
chown 用户名:用户组名 文件(夹)名 修改文件所有者和所属组
3、sudo命令:让普通用户有权限执行超级用户才能执行的命令
root用户通过修改/etc/sudoers配置文件,格式如下:
user1 ALL=(root) NOPASSWD: /sbin/shutdown -r now
允许用户user在任何主机上免密码切换成root用户执行/sbin/shutdown -r now命令
sudo 可执行的sudo命令绝对路径 普通用户执行超级命令格式
sudo -l 查看可执行的所有sudo命令
4、进程相关
ps -ef 查看所有进程
kill -9 pid号 杀死pid号对应进程
kill -9 $(pgrep -f txt) 杀死txt进程树
pkill -9 进程名 杀死该进程
netstat -nlp 查看系统服务及对应端口号、程序名
5、软件上传下载相关
yum安装:
yum -y install 包名 安装某个包 -y 自动回答yes
yum -y remove 包名 卸载某个包 -y 自动回答yes
yum search http 搜索和http相关的包
yum list | grep http 查看是否安装http相关的包
rpm包安装:
rpm -ivh --nodeps 包全名
-i(install):安装
-v(verbose):显示详细信息
-h(hash):显示进度
--nodeps:不检测依赖性
rpm包卸载:
rpm --nodeps -e 包全名 --nodeps不验证依赖关系
rpm包查询:
rpm -qa | grep jdk
rpm -ql
参数:
q:query 查询
a:all 所有
l:list 列表
wget下载:
wget 下载链接 在对应链接上下载
与windows交互
从windows上传至Linux: rz
从Linux下载到Windows: sz
执行这两条命令前:
yum -y install lrzsz
6、系统信息查看
df -h 查看文件系统挂载情况
free -m 显示内存情况
top 实时显示系统负载
du -sh [*] 统计当前目录[的子目录/子文件]大小
du -a ./ 递归统计当前目录子目录及子文件大小
###清空系统缓存释放内存
echo 3 > /proc/sys/vm/drop_caches
或者
free -h;find .>/dev/null;free -h
或者
find /mydata/backup/python/ -type f|xargs cat>/dev/null 2>&1
7、文件搜索
find / -name install.log 按名字在根目录下搜索install.log文件
find /var/log -mtime +10 按天数在/var/log目录下搜索10天前修改的文件
find /var/log -mtime -10 按天数在/var/log目录下搜索10天内修改的文件
find /etc -size +20k -a -size -50k 按大小在/etc目录下搜索大于20k并且小于50k的文件
find /etc -size +20k -o -size -50k 按大小在/etc目录下搜索大于20k或者小于50k的文件
8、windows与linux系统交互
从windows上传文件到linux上:rz
从linux下载文件到windows上:sz
以上两个命令的执行需要事先安装好lrzsz包
在linux虚拟机可访问外网的情况下执行:yum -y install lrzsz即 可成功安装
9、定时任务
crontab -l 查看当前运行的作业
crontab -e 以当前用户身份进入crontab 编辑页面,编辑定时任务规则如下:
* * * * * 命令绝对路径
第一个“*”代表一个小时中的第几分钟 范围0-59
第二个“*”代表一天中的第几小时 范围0-23
第三个“*”代表一个月中的第几天 范围1-31
第四个“*”代表一年中的第几个月 范围1-12
第五个“*”代表一个星期中的星期几 范围0-7(0和7都代表星期天)
特殊符号:
* 代表任何时间 第一个为“*”为*时代表每分钟都执行
, 代表不连续时间 0 8,12 * * * 命令 代表每天八点和12点整执行
- 代表连续时间 0 8-12 * * * 命令 代表每天8点,9点,10点,11点,12点整执行
*/n 代表间隔时间 */10 * * * * 命令 代表间隔十分钟执行一次
注意:如果要精确到秒,可以使用shell脚本嵌套sleep命令的形式满足需求
10、后台命令
命令 & 将命令放入后台执行(&会受shell脚本影响,有时候会失效)
nohup 命令 将命令放入后台执行
通常用 nohup 命令 & 的形式将命令放入后台更稳当
screen:
screen -S 建立一个后台会话
screen -r 会话名称或id 进入一个后台会话(一个会话同时只能连接一个用户)
screen -list 查看存在的后台会话
处于后台会话时执行 ctrl+a+d 可退出后台会话
11、系统运行级别
0 关机
1 单用户模式 相当于windows的安全模式,进入系统不用输入密码。
2 不含NFS服务(用于linux间的文件共享)的命令行模式
3 命令行模式,即字符界面
4 系统保留级别
5 图形界面
6 重启
系统的运行级别在/etc/initab文件中可以更改。
12、输出重定向
命令 &>> 文件 将命令输出无论正确还是错误统统追加到对应文件中
命令 >> 文件 2>& 1 将命令输出无论正确还是错误统统追加到对应文件中
2>&左边无空格
命令 >> 文件1 2>> 文件2 将命令正确输出追加到文件1中,错误输出追加到文件2中
2>>左边无空格
补充:
0:标准输入
1:标准输出
2:错误输出
> 追加
>> 覆盖
说明:
&>> 将1、2追加到哪儿去
2>& 1 将错误输出的路径指向标准输出的路径
2>> 错误输出追加到哪儿去
13、通配符
? 匹配一个字符 zxc? 匹配前3字母为zxc的四字母字符串
* 匹配多个字符 zxc* 匹配前3字母为zxc的三字母或三字母以上字符串
[-] 匹配一个字符 [a-z] 匹配一个小写字母
[^-] 匹配一个字符 [^a-z] 不匹配小写字母
14、shell脚本
#!/bin/bash/ -x
表明以下内容为脚本 x表示执行脚本时进行验证
脚本中等于号两端没有空格
执行shell脚本的四种方式
在当前bash进程中执行
source a.sh
. a.sh
在当前bash的子bash中执行
/bin/bash a.sh
./a.sh
15、压缩解压
tar -zxvf xxxxx.tar.gz -C 解压文件保存路径 解压
unzip xxxxx.zip -C 解压文件保存路径 解压
tar -zcf xxxxxxx 压缩成.tar.gz
zip xxxxx 压缩成.zip
16、链接文件(修改其中一个另一个也会改动)
ln [-s] 源文件 链接文件
硬链接:
生成的链接文件与原文件等效(连修改时间都是一致的),相当于cp -p 。
修改链接文件和源文件修改任一都会改变另一的内容。
删除源文件不影响链接文件的使用。
软链接:
相当于windows的快捷方式。
删除原文件链接文件不删除,但是会失效。
17、查看文件元数据
stat + 文件名
命令执行结果分析
modify:数据改变时间
change:元数据改变时间
access:访问时间
当修改文件的内容时,三个属性都会改变,当修改文件的属性,比如用户组或权限时,只有权限会改变。
可以使用touch命令,将文件的这三个时间同步。
18、exec
exec 8>&1 为当前shell创建新的8号文件描述符,指向标准输出1
exec 8<> /dev/tcp/www.baidu.com
为当前shell创建新的8号文件描述符,与百度首页通信
19、sort
补充:常用的两种排序,字典排序,数值排序
sort [选项] filename
-t' ' 行内字符串分隔符为空格
-k2,3 先按第2列排,再按第三列排
-n 按数值排序
-r 倒序
-f 忽略大小写
示例: sort -t' ' -k2,3 -n -r a.txt
20、wc
wc [选项] filename
-c 统计字节数
-m 统计字符数
-w 统计单词数
-l 统计行数
注意:wc命令直接对文件使用时,会将文件名一并打印出来,我们可以读取文件内容作为wc的输入,这样就不会出现文件名啦。
21、cut
cut [选项] 文件
-d 自定义的分隔符,单引号引起
-f 显示第几列
-s 不显示没有被分割的行
示例: cut -d' ' -f2,3 -s a.txt 按空格切割a.txt,显示第2列和第三列 1-3列 f1-3
默认情况下,无论显示第几列,没有分割的行都会作为列显示出来
22、sed行编辑器
sed [options] 'AddressCommand' file ...
options:
-n: 静默模式,不再默认显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r: 表示使用扩展正则表达式
Adress:
可以没有
给定范围
查找指定行/str/ str内部可以是正则
Conmand
d: 删除符合条件的行;
p: 显示符合条件的行;
a \string: 在指定的行后面追加新行,内容为string
\n:可以用于换行
i \string: 在指定的行前面添加新行,内容为string
r FILE: 将指定的文件的内容添加至符合条件的行处
w FILE: 将地址指定的范围内的行另存至指定的文件中;
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
g: 行内全局替换
i: 忽略字符大小写
s///: s###, s@@@
\(\), \1, \2
示例
sed "/d" a.txt 删除第一行
sed "/a \hello world" 在第一行后追加新行,内容为hello world
sed "/[0-9]/p" 打印含有数字的行
将系统运行级别改为图形界面
sed -i "s/\(id:\)[0-6]\(:iditdefault:\)/\15\2" /etc/initab