Linux07_文件操作

[root@sc-changsha wuxia]# file /dev/sda1  查看文件的类型
d  -->目录  directory
l  --》链接文件  link
-  --》普通的文件
c  --》字符设备文件   character
b  --》块设备文件     block
s  --》socket文件    socket  套接字(槽)
p  --》管道文件      pipe 

进程和进程通信的方式:
1.信号量
2.信号
3.共享内存
4.管道 pipe---->ps aux|grep bash
5.socket 套接字(接口,槽)--->文件
6.消息队列

[root@sc-changsha wuxia]# yum install mariadb mariadb-server -y
[root@sc-changsha wuxia]# service mariadb start
Redirecting to /bin/systemctl start mariadb.service
[root@sc-changsha wuxia]#
[root@sc-changsha wuxia]# ps aux|grep mysqld
mysql     16686  1.0  4.8 1756668 88924 ?       Ssl  10:12   0:00 /usr/libexec/mysqld --basedir=/usr
root      16750  0.0  0.0  12320  1104 pts/0    S+   10:12   0:00 grep --color=auto mysqld
[root@sc-changsha wuxia]#

mysqld----->mysql的守护进程(DAEMON)
守护进程:一直在内存里运行的程序,除非人为停止,不然一直运行
mysql是一个连接到mysql数据库里的客户端命令
-uroot指定使用root用户连接(这是mysql数据库里的root,不是Linux系统里的root)
-p指定密码,默认密码为空

[root@sc-changsha wuxia]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

MariaDB [(none)]> exit
Bye
[root@sc-changsha wuxia]#
[root@sc-changsha wuxia]# cd /var/lib/mysql/
[root@sc-changsha mysql]# ll
总用量 122936
-rw-rw----. 1 mysql mysql    16384 6月  28 10:12 aria_log.00000001
-rw-rw----. 1 mysql mysql       52 6月  28 10:12 aria_log_control
-rw-rw----. 1 mysql mysql      972 6月  28 10:12 ib_buffer_pool
-rw-rw----. 1 mysql mysql 12582912 6月  28 10:12 ibdata1
-rw-rw----. 1 mysql mysql 50331648 6月  28 10:12 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 6月  28 10:12 ib_logfile1
-rw-rw----. 1 mysql mysql 12582912 6月  28 10:12 ibtmp1
-rw-rw----. 1 mysql mysql        0 6月  28 10:12 multi-master.info
drwx------. 2 mysql mysql     4096 6月  28 10:12 mysql
srwxrwxrwx. 1 mysql mysql        0 6月  28 10:12 mysql.sock
-rw-rw----. 1 mysql mysql       16 6月  28 10:12 mysql_upgrade_info
drwx------. 2 mysql mysql       20 6月  28 10:12 performance_schema
-rw-rw----. 1 mysql mysql    24576 6月  28 10:12 tc.log
[root@sc-changsha mysql]#

kill -l 查看信号
kill -9 使用该进程杀死第9个信号

[root@sc-changsha mysql]# kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@sc-changsha mysql]# kill -9 12345
-bash: kill: (12345) - 没有那个进程
[root@sc-changsha mysql]#

cat - 显示文件内容concatenate files and print on the standard output
1.连接文件---可以将多个文件的内容一起读取出来,然后连接到一起输出到屏幕

[root@localhost lianxi]# ls
andrea.py  xh.py
[root@localhost lianxi]# cat xh.py andrea.py
#!/usr/bin/python
import os
name = 'an'
path = '/root/lianxi/'
for i in range(1,101):
    wen = name + str(i)
    jia =os.path.exists(path)
    if jia:
        print('文件夹已存在')
    else:
        os.mkdir(path + wen)
        print('创建成功')
print("this is andrea")

2.输出文件的内容到屏幕(标准输出)
cat命令本质是一行一行从文件里读取内容,输出到屏幕上
-n 输出行号 number
-n, --number
number all output lines

here document 文档就在这里
用来生成指定内容的文件,文件里的内容是我们可以指定的---》写脚本的时候特别方便
用来生成一个服务的配置文件---mysql
<< EOF----》end of file文件结束的符号,<<指输入的时候----这个结束符号是自定义的(也可以改成END等,必须是大写)

[root@localhost ~]# cat >xie.txt <<EOF
> xie
> yu
> qi
> changsha
> EOF
[root@localhost ~]# cat xie.txt
xie
yu
qi
changsha

tac是将cat命令输出的内容倒序显示(最后一行在第一行显示,以此类推)---无-n选项

[root@localhost lianxi]# cat xhh.py
#!/usr/bin/python
import os
name = 'an'
path = '/root/lianxi/'
for i in range(1,101):
    wen = name + str(i)
    jia =os.path.exists(path)
    if jia:
        print('文件夹已存在')
    else:
        os.mkdir(path + wen)
        print('创建成功')
[root@localhost lianxi]# tac cat xhh.py
tac: 以读模式打开 'cat' 时失败: 没有那个文件或目录
        print('创建成功')
        os.mkdir(path + wen)
    else:
        print('文件夹已存在')
    if jia:
    jia =os.path.exists(path)
    wen = name + str(i)
for i in range(1,101):
path = '/root/lianxi/'
name = 'an'
import os
#!/usr/bin/python
[root@sc-changsha lianxi]# curl   -O ftp://alpha.gnu.org/gnu/coreutils/coreutils-4.5.1.tar.bz2
curl是Linux字符界面的浏览器
-O 是一个下载使用的选项(大写O)

输出重定向--》会覆盖文件里面的内容

追加输出重定向 --》不会覆盖文件里的内容,只是在文件的末尾追加
例如:将file2附加到file1:cat file2 >> file1

time + 命令---》查看这条命令执行消耗了多长时间

[root@localhost ~]# time cat wuxia
cat: wuxia: 是一个目录

real    0m0.002s-----主要看这个参数
user    0m0.001s
sys 0m0.000s

页 page
page up 上一页
page down 下一页
more less 分页命令

more命令:全屏方式分页显示文件内容----显示到最后会自动退出
交互操作方法:enter键向下逐行滚动
空格键向下逐页滚动,按b向上翻一屏
按q退出

[root@localhost lianxi]# cat fengdy3000.py
with open("watermelon.txt","a+") as f:
    for i in range(3000):
        f.write(f"{i} panjinhao 迟到罚西瓜一个不低于五斤\n")

[root@localhost lianxi]# cat -n watermelon.txt | more
     1  0 panjinhao 迟到罚西瓜一个不低于五斤
     2  1 panjinhao 迟到罚西瓜一个不低于五斤
     3  2 panjinhao 迟到罚西瓜一个不低于五斤
     4  3 panjinhao 迟到罚西瓜一个不低于五斤

less命令:与more命令相同,但扩展功能更多---显示完不会自动退出,按q退出
交互操作方法:
与more命令基本类似,但个别操作会有些出入
【page down】【page up】上翻下翻页
查找内容:?关键字
/关键字

head命令:查看文件开头一部分内容(默认10行)-----连续的行

[root@localhost lianxi]# head  watermelon.txt |tail -1
9 panjinhao 迟到罚西瓜一个不低于五斤
[root@localhost lianxi]# head -20 watermelon.txt |tail -11
9 panjinhao 迟到罚西瓜一个不低于五斤
10 panjinhao 迟到罚西瓜一个不低于五斤
11 panjinhao 迟到罚西瓜一个不低于五斤
12 panjinhao 迟到罚西瓜一个不低于五斤
13 panjinhao 迟到罚西瓜一个不低于五斤
14 panjinhao 迟到罚西瓜一个不低于五斤
15 panjinhao 迟到罚西瓜一个不低于五斤
16 panjinhao 迟到罚西瓜一个不低于五斤
17 panjinhao 迟到罚西瓜一个不低于五斤
18 panjinhao 迟到罚西瓜一个不低于五斤
19 panjinhao 迟到罚西瓜一个不低于五斤

tail命令
tail -f动态监控文件末尾内容的变化---查看日志,用来排查故障(按CTRL+C强制结束)
日志文件:记录一个程序在执行的过程中发生的事情

sed 可以修改和查看文件内容的命令
-n 不符合要求的行,不显示
1p 根据号行输出 p 输出print
[root@localhost lianxi]# sed -n '1p;3p;5p' watermelon.txt
1 panjinhao 迟到罚西瓜一个不低于五斤
3 panjinhao 迟到罚西瓜一个不低于五斤
5 panjinhao 迟到罚西瓜一个不低于五斤
-n不符合要求的行不显示
1p根据行号输出,p指print
;命令连接符号
[root@localhost lianxi]# sed -n '1,5p' watermelon.txt
1 panjinhao 迟到罚西瓜一个不低于五斤
2 panjinhao 迟到罚西瓜一个不低于五斤
3 panjinhao 迟到罚西瓜一个不低于五斤
4 panjinhao 迟到罚西瓜一个不低于五斤
5 panjinhao 迟到罚西瓜一个不低于五斤

[root@localhost lianxi]# cat watermelon.txt |sed -n '1,5p'
1 panjinhao 迟到罚西瓜一个不低于五斤
2 panjinhao 迟到罚西瓜一个不低于五斤
3 panjinhao 迟到罚西瓜一个不低于五斤
4 panjinhao 迟到罚西瓜一个不低于五斤
5 panjinhao 迟到罚西瓜一个不低于五斤

[root@localhost lianxi]# head -n 5 watermelon.txt
[root@localhost lianxi]# head -5 watermelon.txt
这两个作用一样

; 命令连接符号,可在一行连续的输出命令

查看mariadb数据库软件的日志
开启一个终端

[root@sc-changsha mariadb]# tail -f mariadb.log
另外一个终端
[root@sc-changsha ~]# service mariadb restart
Redirecting to /bin/systemctl restart mariadb.service
[root@sc-changsha ~]#
都是显示末尾3行
  tail -3 watermelon.txt
  tail -n -3 watermelon.txt
   tail -n 3 watermelon.txt

[root@sc-changsha lianxi]# ps aux|tail -n +2  从第2行开始显示到末尾
root          1  0.0  0.7 178928 13664 ?        Ss   6月27   0:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root          2  0.0  0.0      0     0 ?        S    6月27

[root@sc-changsha lianxi]# df|tail -n +2
devtmpfs              906584       0   906584    0% /dev
tmpfs                 924204       0   924204    0% /dev/shm
tmpfs                 924204    8872   915332    1% /run
tmpfs                 924204       0   924204    0% /sys/fs/cgroup
/dev/mapper/cl-root 17811456 2106192 15705264   12% /
/dev/sda1             999320  138320   792188   15% /boot
tmpfs                 184840       0   184840    0% /run/user/0
[root@sc-changsha lianxi]# df|tail -n +2|wc -l
7
[root@sc-changsha lianxi]#

wc统计命令---统计一个文件里有多少行,单词,字节
[root@localhost lianxi]# wc watermelon.txt
3000 9000 154893 watermelon.txt
[root@localhost lianxi]# wc -l watermelon.txt
3000 watermelon.txt
-l指lines,只输出多少行
-c指bytes,输出多少字节
-w指words 输出多少单词
-L统计长度

varname=$(命令) 将命令的执行结果赋值给varname variable 变量

[root@sc-changsha lianxi]# passwd_len=$(echo $user_passwd|wc -L)
[root@sc-changsha lianxi]# echo $passwd_len
13
[root@sc-changsha lianxi]#

history -c清除以前使用过的历史命令,不想让其他人看到你输入过的命令

awk截取一行里的某个(些)字段/列
列和列之间默认是空白和tab作为分隔
$1代表第一个字段
print是awk里的输出命令
, 是分隔符号
‘{}’是固定语法
df |awk '{print $1,$4}'

ssh是远程登陆命令
ssh andrea@192.168.0.55使用andrea这个用户登录192.168.0.55

[root@sc-changsha lianxi]# useradd yalin
[root@sc-changsha lianxi]# passwd yalin
更改用户 yalin 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

验证yalin这个用户的密码是否正确?
[root@sc-changsha lianxi]# ssh yalin@192.168.0.55 使用yalin这个用户登录192.168.0.55

yalin@192.168.0.55's password:
Permission denied, please try again.
yalin@192.168.0.55's password:
Last failed login: Sun Jun 28 17:15:44 CST 2020 from 192.168.0.55 on ssh:notty
There was 1 failed login attempt since the last successful login.
[yalin@sc-changsha ~]$
[yalin@sc-changsha ~]$ exit 退出登录
注销
Connection to 192.168.0.55 closed.
[root@sc-changsha lianxi]#

非交互式设置密码
[root@sc-changsha lianxi]# echo 123456 |passwd gushuai --stdin
更改用户 gushuai 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sc-changsha lianxi]# echo $?
0
[root@sc-changsha lianxi]#

标准输出:输出屏幕 standard output
标准输入:从键盘输入 standard input --->stdin
--stdin 作用:告诉passwd命令,管道符号传递过来的内容,就把它当作从键盘接受的输入(标准输入)对待,就可以了

[root@sc-changsha ~]# read  -p "please input your name:"   username
please input your name:huangxy
[root@sc-changsha ~]# echo $username
huangxy
[root@sc-changsha ~]#

read 接受用户输入的命令
-p 后面接提醒字符串 prompt 提示
username 是变量名,read接受用户输入的内容会赋值给这个变量username

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值