Linux操作系统学习02
文件的增刪改查
文件目錄:
創建文件:touch 文件名
1、創建多個文件touch file{1..10}注:創建10個文件,文件名file0,file1 ......file102、創建多個目錄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 d3、查找內容
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中的對應用戶名的文件夾中,也就意味著普通用戶本質而言只是人家管理員的一個文件夾(當時感覺很可愛)然后我通過電腦查資料,了解了一下每一個文件夾到底存放什么東西
/homeHere’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 1500inet 192.168.36.193 netmask 255.255.255.0 broadcast 192.168.36.255inet6 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 0TX packets 25 bytes 3749 (3.6 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::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 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 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 0TX 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
(未完成的任務:
通過管道命令實現:監聽指定端口并將內容重定向到指定的文本文件中
對于粘滯權限 還需要繼續學習
謹慎地嘗試更新內核(這個還沒有學習)
)
總結
以上是生活随笔為你收集整理的Linux操作系统学习02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用storm 实时计算_使用Storm
- 下一篇: 无服务器:不费吹灰之力!