檔案的增刪改查

檔案目錄:
創建檔案:touch 檔案名
1、創建多個檔案
touch file{1..10}
注:創建10個檔案,檔案名file0,file1 ......file10
2、創建多個目錄
mkdir folder{1..10}
注:一次性創建10個檔案夾,目錄名為folder1, folder2, ......folder10
洗掉檔案:rm -f 檔案名
洗掉目錄:rm -rf 目錄rm
選項:
-f:強制洗掉(force),和 -i 選項相反,使用 -f,系統將不再詢問,而是直接洗掉目標檔案或目錄,
-i:和 -f 正好相反,在洗掉檔案或目錄之前,系統會給出提示資訊,使用 -i 可以有效防止不小心洗掉有用的檔案或目錄,
-r:遞回洗掉,主要用于洗掉目錄,可洗掉指定目錄及包含的所有內容,包括所有的子目錄和檔案,
編輯檔案:vi 檔案名(打開檔案) -> 點擊i進入編輯模式 ->開始編輯 -Esc(退出編輯模式) ->:wq(保存退出)


關于保存退出的一些操作:
保存退出輸入 :wq 然后回車即可,(注意在英文狀態下,并且別忘了冒號)
不保存退出輸入 :q! 然后回車即可,(注意在英文狀態下,并且別忘了冒號)
wq:表示保存退出
wq!:表示強制保存退出
x:表示保存退出
查看檔案: cat [檔案名] 表示顯示檔案內容
查找檔案

1、查找檔案
find / -name 'filename'
2、查找目錄
find / -name 'path' -type d
3、查找內容
find . | xargs grep -ri 'content'
//find . | xargs grep -ril 'content' 只顯示檔案名稱
我是分割線!(關于自己用戶操作中遇到的一些問題和感想)
首先一開始自己進入終端,顯示:
我認為這個是ftz這個用戶,合情合理,然后我使用su命令,需要輸入密碼,我輸入密碼后變成了這個樣子:

然后明顯后面從$變成了#,權限升級了很明顯,但是我就開始疑問,這個顯示是什么意思,按照道理來說root@localhost后面是一個檔案夾的名字,可是我自己很清楚ftz是一個用戶的名字,ftz是一個用戶不是檔案夾呀,然后我開始思索是不是這樣相當于賦予ftz這個用戶管理員的權限呢?
通過網上搜索發現,單獨一個su的命令是切換管理員root用戶,然后我嘗試ls輸出了一下
我發現這個是我的桌面上主檔案夾的內容

咦,我開始好奇,我現在是在哪里,然后我輸入了cd /回傳根目錄的命令,我發現到達了最開始的地方,而且root@localhost后面的ftz消失了,這說明ftz就是一個檔案夾,然后我通過cd home->ls->cd ftz->ls的命令,
加上自己的網上搜索我明白了一件事:我一開始登陸這個系統的時候是用ftz這個用戶,同時我存在于管理員用戶的home這個檔案夾中,也就是說在Linux系統中,為了非管理員用戶開辟的空間存放在home中的對應用戶名的檔案夾中,也就意味著普通用戶本質而言只是人家管理員的一個檔案夾(當時感覺很可愛)然后我通過電腦查資料,了解了一下每一個檔案夾到底存放什么東西
/home
Here’s where your data is stored. Config files specific to users, your Desktop folder(whick makes your desktop what it is), and any data related to your user. Each user will have their own /home/username folder, with the exception of the root user.
/home
這里主要存放你的個人資料,具體每個用戶的設定檔案,用戶的桌面檔案夾,還有用戶的資料都放在這里,每個用戶都有自己的用戶目錄,位置為:/home/用戶名,當然,root用戶除外,

在下面這個博客中看到不同檔案夾作用的
https://blog.csdn.net/longxu0872/article/details/71168340
然后我開始思考,那我要是賦予ftz這個用戶管理員的權限呢?怎樣賦予?
首先一開始我認為,管理這些用戶無論管理員還是普通用戶是依靠 /etc/sudoers這個檔案的,我在網上邊查邊自己嘗試(第一篇看到的文章說需要修改sudoers檔案,在里面將ftz添加在root下面…)
在上圖的100行下面,在root下面按照人家的格式再寫一個ftz ALL=(ALL) ALL這樣的陳述句,然后按照這個方法嘗試了,當時自己心里覺得也說得通,然后我修改了以后wq!然后su ftz切換到ftz用戶然后嘗試使用管理員權限的命令:cat -n /etc/sudoers

顯而易見,權限不夠,咦不對呀,我明明已經修改了sudoers檔案夾然后在root下面添加了ftz了呀,后面也加了ALL=(ALL)看起來很像是管理員權限的陳述句~~~,然后我繼續搜查…
(插入一句,哎,網上的文章真的良莠不齊,坑慘我了…哭了哭了,一堆人抄襲另一堆人,都說不清…)
我看到了第二種回答,也就是需要修改的并不是sudoers這個檔案夾,需要修改的是/etc/passwd這個檔案

里面是這個樣子:


我們在最下面找到了我們的用戶!!!!ftz
然后通過網上的答案了解了,在這個檔案里面,第一行是root?0:0…等等等等,這個意思就是說這個用戶root的userid和groupid,也就是我剛剛明白了用戶組的意思,在Linux系統中,系統不會去關心你這個用戶是什么名字,他會注重的是你這個用戶的userid和groupid,他是通過用戶組來區別不同用戶的,也就是說,我們只需要將我們的普通用戶ftz,最后一行那里,讓ftz的groupid也和root一樣了都變成0(userid肯定不能一樣哈),就意味著可以讓ftz劃分在管理組這個級別中,然后我去進行了嘗試,

然后再次切換到ftz用戶,然后進行高級命令:查看sudoers檔案

成功了!,并不是前面的權限不夠了

,然后通過這個自己摸索的程序,明白了用戶組的概念,更加熟悉了編輯檔案,目錄以及用戶的切換命令,哈哈趕快寫好博客(喝茶喝茶)
我是結束的分割線,繼續上面的學習:
拷貝檔案:


Vim和Vi
什么是 vim?
Vim是從 vi 發展出來的一個文本編輯器,代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式員中被廣泛使用,
簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方, vim 則可以說是程式開發者的一項很好用的工具,
連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程式開發工具而不是文字處理軟體,

一、創建用戶、用戶組
1、創建用戶
#創建名稱為jiajia的用戶
useradd jiajia
2、給用戶設定密碼
#給名稱為xiaozhi的用戶設定密碼
passwd 123456
3、創建組
#創建名稱為jiajiagroup的組
groupadd jiajiagroup
4、為組添加用戶
#把xizohi用戶加入jiajiagroup組
gpasswd -a jiajia jiajiagroup
5、查看組中有哪些用戶
#查看名稱為xiaozhigroup的組中有哪些用戶
groupmems -g jiajiagroup -l

二、洗掉用戶及用戶

1、將用戶退出組
#將名稱為xiaozhi的用戶退出名稱為jiajiagroup的組
gpasswd -d jiajia jiajiagroup
2、洗掉用戶
洗掉用戶會提示用戶被占用
根據行程號,先殺行程
kill -9 83570
此時就可以洗掉用戶了
userdel命令洗掉該用戶時,并不能洗掉該用戶的所有資訊,只是洗掉了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四個檔案里的該賬戶和組的資訊,默認情況下創建一個用戶賬號,會創建一個家目錄(在/home/目錄以用戶名命名)和一個用戶郵箱(在/var/spool/mail目錄以用戶名命名)
find / -name "*jiajia*"

徹底洗掉用戶
rm -rf /home/jiajia/
rm -rf /var/spool/mail/jiajia
3、洗掉組
#洗掉名稱為jiajiagroup的組
groupdel jiajiagroup

最后沒有了!
粘滯權限
關于粘滯權限,粘滯權限其實就是一個特殊的洗掉權限,即“只有創建它的用戶,才可以洗掉,其他用戶可以對它做除了洗掉以外的任何操作”,一般用在臨時檔案目錄,比如系統的tmp檔案夾,很多程式或者用戶都要用到這個檔案夾作為臨時空間,所以大家都能對這個目錄進行讀寫,但大家都不能洗掉這個檔案夾(因為一旦刪了,其他人就沒得用了,只有系統管理員用戶才可以刪)
我是第二個分割線!(關于自己聯網方面出現問題和解決的一些感想)
昨天懵懵懂懂的配置了三次聯網模式,NAT / 橋連接 / 主機模式 ,其實還是有點懵懂,今天學習Linux網路服務,實作讓虛擬機用多種外網的時候發現昨天的“豆腐渣工程”導致聯網失敗了!

ping百度的時候發現失敗了,一拍腦門,準是昨天忘了擦屁股了,搞完三種聯網模式沒有消化好,(哎都怪學校月考!),得虧是查到了一篇好文!(https://blog.csdn.net/weixin_43871127/article/details/102062181)
首先換了聯網方式,改成大家熟悉而又通用的NAT模式

然后來個ifconfig測一下

準是ifcfg-ens33出問題了(趕快去康康)

通過比對:看出來了,昨天改了BOOTPROTO為static,人家原來是dhcp
來一波知識講解:
[root@localhost network-scripts]# cat ifcfg-ens33
TYPE="Ethernet" #網卡型別(通常是Ethemet以太網)
PROXY_METHOD="none" #代理方式:為關閉狀態
BROWSER_ONLY="no" #只是瀏覽器:否
BOOTPROTO="static" #網卡的引導協議【static:靜態IP dhcp:動態IP none:不指定,不指定容易出現各種各樣的網路受限】
DEFROUTE="yes" #默認路由
IPV4_FAILURE_FATAL="no" #是否開啟IPV4致命錯誤檢測
IPV6INIT="yes" #IPV6是否自動初始化:是(現在還未用到IPV6,不會有任何影響)
IPV6_AUTOCONF="yes" #IPV6是否自動配置:是(現在還未用到IPV6,不會有任何影響)
IPV6_DEFROUTE="yes" #IPV6是否可以為默認路由:是(現在還未用到IPV6,不會有任何影響)
IPV6_FAILURE_FATAL="no" #是否開啟IPV6致命錯誤檢測
IPV6_ADDR_GEN_MODE="stable-privacy" #IPV6地址生成模型
NAME="ens33" #網卡物理設備名稱
UUID="ab60d501-535b-49f5-a76b-3336a4120f64"#通用唯一識別碼,每一個網卡都會有,不能重復,否則兩臺linux機器只有一臺可上網
DEVICE="ens33" #網卡設備名稱,必須和‘NAME’值一樣
ONBOOT="yes" #是否開機啟動,要想網卡開機就啟動或通過 `systemctl restart network`控制網卡,必須設定為 `yes`
IPADDR=192.168.137.129 # 本機IP
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.137.2 #默認網關
DNS1=8.8.8.8#
DNS2=8.8.8.5#
ZONE=public#
[root@localhost network-scripts]# service network restart #重啟網卡
Restarting network (via systemctl): [ 確定 ]
[root@localhost network-scripts]#

修改成功后重啟網路服務又出現了問題!!
繼續查找查查查查…
解決方案就是依次輸入:
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
[root@mina0 hadoop]# systemctl restart network
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
[root@mina0 hadoop]# journalctl -xe
10月 26 17:15:57 mina0 network[3308]: 正在打開環回介面: [ 確定 ]
10月 26 17:15:57 mina0 NetworkManager[679]: <info> [1509009357.3386] audit: op="connec
10月 26 17:15:57 mina0 network[3308]: 正在打開介面 ens33: 錯誤:激活連接失敗:No suita
10月 26 17:15:57 mina0 network[3308]: [失敗]
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 network[3308]: RTNETLINK answers: File exists
10月 26 17:15:57 mina0 polkitd[680]: Unregistered Authentication Agent for unix-process
10月 26 17:15:57 mina0 systemd[1]: network.service: control process exited, code=exited
10月 26 17:15:57 mina0 systemd[1]: Failed to start LSB: Bring up/down networking.
-- Subject: Unit network.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit network.service has failed.
--
-- The result is failed.
10月 26 17:15:57 mina0 systemd[1]: Unit network.service entered failed state.
10月 26 17:15:57 mina0 systemd[1]: network.service failed.
解決:
[root@mina0 hadoop]# systemctl stop NetworkManager
[root@mina0 hadoop]# systemctl disable NetworkManager
然后:重啟網卡:
[root@mina0 hadoop]# systemctl restart network
[root@mina0 hadoop]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.36.193 netmask 255.255.255.0 broadcast 192.168.36.255
inet6 fe80::250:56ff:fe3c:7ac8 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:3c:7a:c8 txqueuelen 1000 (Ethernet)
RX packets 28 bytes 8099 (7.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25 bytes 3749 (3.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:a3:37:cb txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
再次ping!

nice!!
感覺CSDN這個任務檔案前后接應很好!!可以復習前面的知識,有很多當初做了其實腦子里面并不是太懂,哈哈慢慢磨練嘍!
第二個分割線結束!
開始下一個任務:給虛擬機安裝圖形界面,并謹慎地嘗試更新內核
:哈哈先不修改內核啦(等完成后面的再回來深研究,萬一西瓜芝麻都丟了~~~)
samba是一種linux和windows之間進行檔案共享的協議,安裝該協議后,可以理解為在linux是插在windows上的一個U盤,
CentOS7中Samba環境搭建
一、安裝Samba
[root@samba-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@samba-server ~]# rpm -qa|grep samba
[root@samba-server ~]# yum install -y samba
二、關閉selinux和防火墻
[root@samba-server ~]# setenforce 0
[root@samba-server ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@samba-server ~]# systemctl stop firewalld
[root@samba-server ~]# systemctl disable firewalld
三、配置Samba組態檔
四、添加durant賬號(如上配置中添加的內容)
root@samba-server ~]# useradd -d /home/durant -s /sbin/nologin durant
五、pdbedit 命令說明
pdbedit 命令用于管理Samba服務的帳戶資訊資料庫,格式為:"pdbedit [選項] 帳戶"
第一次把用戶資訊寫入到資料庫時需要使用-a引數,以后修改用戶密碼、洗掉用戶等等操作就不再需要了,
pdbedit -L :查看samba用戶
pdbedit -a -u user:添加samba用戶
pdbedit -r -u user:修改samba用戶資訊
pdbedit -x -u user:洗掉samba用戶
samba服務資料庫的密碼也可以用 smbpasswd 命令 操作
smbpasswd -a user:添加一個samba用戶
smbpasswd -d user:禁用一個samba用戶
smbpasswd -e user:恢復一個samba用戶
smbpasswd -x user:洗掉一個samba用戶
六、將durant添加為samba用戶
[root@samba-server ~]# pdbedit -a -u durant
new password: //設定durant使用的samba賬號密碼,比如123456
retype new password: //確認密碼
Unix username: durant
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3966910846-3390734216-1763763463-1001
Primary Group SID: S-1-5-21-3966910846-3390734216-1763763463-513
Full Name:
Home Directory: \\samba-server\durant
HomeDir Drive:
Logon Script:
Profile Path: \\samba-server\durant\profile
Domain: SAMBA-SERVER
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Thu, 13 Jun 2019 16:26:31 CST
Password can change: Thu, 13 Jun 2019 16:26:31 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
接著修改samba用戶的家目錄權限
[root@samba-server ~]# chown -Rf durant:durant /home/durant
七、啟動Samba服務
[root@samba-server ~]# systemctl start smb
[root@samba-server ~]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@samba-server ~]# systemctl restart smb
[root@samba-server ~]# systemctl status smb
八、測驗
先往共享路徑/home/durant里添加點內容
[root@samba-server ~]# cd /home/durant/
[root@samba-server durant]# touch test1 test2 test3
[root@samba-server durant]# mkdir a1 a2 a3
[root@samba-server durant]# ls
a1 a2 a3 test1 test2 test3
將samba共享目錄掛載到windows上
1)”Win+E鍵"打開,右鍵“此電腦”選擇“映射網路驅動器”




共享成功
感謝博文:https://blog.csdn.net/wc1695040842/article/details/91866500?ops_request_misc=&request_id=&biz_id=102&spm=1018.2226.3001.4187
(未完成的任務:
通過管道命令實作:監聽指定埠并將內容重定向到指定的文本檔案中
對于粘滯權限 還需要繼續學習
謹慎地嘗試更新內核(這個還沒有學習)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333562.html
標籤:其他
上一篇:小專案需要前后端分離嗎?
